2023 12 16 HackerNews

Database Fundamentals #

https://tontinton.com/posts/database-fundementals/

这篇文章是作者对数据库基础知识的总结,主要关注数据库工程师在设计数据库时需要考虑的基本问题。文章以一个简单的 bash 函数为例,介绍了数据库的耐久性、原子性、隔离性和性能等方面的问题,并讨论了如何改进 bash 函数以实现 ACID 特性。此外,文章还介绍了存储引擎的概念,包括可变 B 树和不可变 LSM 树,并提到了布隆过滤器和写前日志等技术。

文章的内容比较详细,涵盖了数据库基础知识的多个方面。如果您对数据库的基本原理和设计有兴趣,可以阅读全文以获取更多信息。


HN 评论 110 comments | 作者:tontinton | 10 hours ago #

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

帖子中的评论主要涉及了一些技术细节和观点,包括对文章中一个方法的错误指出、RocksDB 的优化、学习数据库的建议等。

以下是帖子评论的摘要:

有人指出了文章中一个方法的错误,并提供了正确的解释和修正建议。

文章作者回应说,这个错误是故意忽略的,因为在他的数据库中已经处理了这个问题。

有人询问 RocksDB 的优化措施,作者回答称 RocksDB 在处理删除记录方面进行了一些优化。

有人建议学习数据库时应该了解 B 树的原理和优缺点,并指出添加索引并不是解决性能问题的唯一方法。

有人补充说,在现代,学习面向列的数据库策略也很有价值,例如延迟元组材料化、延迟执行、线性扫描与二分查找等。

还有一些关于数据库设计和分布式系统的讨论,包括分布式系统的定义、分布式数据库的优劣势等。

请注意,这只是对帖子评论的摘要,具体内容可能更加详细和复杂。如果您对特定评论或观点有更详细的问题,请提供相关内容,我将尽力回答。


Pipe Dreams: The life and times of Yahoo Pipes #

https://retool.com/pipes

这篇文章是关于 Yahoo Pipes 的。Yahoo Pipes 是一个在 2007 年推出的服务,它提供了一个平台,让用户可以通过可视化编程来创建和处理信息流。用户可以从各种来源获取数据,并通过拖放元素、合并、过滤和处理数据来创建自己的信息流。Yahoo Pipes 的目标是让非开发人员也能够轻松地创建和定制自己的信息流。然而,尽管 Yahoo Pipes 在当时引起了很大的关注和兴趣,但它最终没有实现预期的成功,并在后来停止了服务。

这篇文章提供了关于 Yahoo Pipes 的背景故事、开发过程和设计理念的详细信息。它还介绍了 Yahoo Pipes 的功能和用途,并讨论了它在当时的互联网文化中的重要性。文章还提到了 Yahoo Pipes 的技术挑战和限制,以及它在用户和开发者社区中的影响。

总的来说,这篇文章提供了关于 Yahoo Pipes 的全面介绍,包括它的起源、功能和影响。如果你想了解更多关于 Yahoo Pipes 的信息,我建议你阅读全文。


HN 评论 112 comments | 作者:type0 | 21 hours ago #

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

有人对 Retool 的设计和执行给予了赞赏,认为它们在讲述这个故事时付出了很大的努力,并且以高质量的内容和精美的插图展示了故事。

有人怀念 Yahoo Pipes,并表示它在过去的网络环境中非常有用。

有人提到了一些类似于 Yahoo Pipes 的替代工具,如 AWS Steps、n8n io、Node-RED 等。

有人对 Retool 的网页性能表示不满,认为在某些设备上页面加载缓慢或不可用。

有人讨论了 Yahoo Pipes 失败的原因,认为它没有足够大的团队和明确的使命,无法吸引企业用户。

这些是评论中的一些观点摘要,涵盖了对 Yahoo Pipes 的怀念、对类似工具的讨论以及对 Retool 的评价。


How Lego builds a new Lego set #

https://www.theverge.com/c/23991049/lego-ideas-polaroid-onestep-behind-the-scenes-price

Marc Corfmat 是一位青少年时期就开始参加 Lego 的设计比赛的参赛者。他和他的兄弟 Nick 从小就开始构建自定义的 Lego 模型,有时在加利福尼亚,有时在他们在法国 La Rochelle 的祖父母家度假时。他们在 YouTube 上分享他们的模型,并将他们的作品发布到 Lego 的网站上,但是来自 Lego 世界的兴趣来得很慢,如果有的话。

然而,在 2020 年,兄弟俩开始有了一些运气。Lego Ideas 计划为粉丝们提供了将他们的设计变为现实的机会,为那些能够说服 10,000 名同行和 Lego 集团的人提供了名声和小小的财富,即净销售额的 1%。经过三年和 18 个提交,Marc 终于以《阿凡达:最后的气宗》为基础的设计清除了 10,000 票的障碍。一个月后,他的《丁丁历险记》的想法被选为员工推荐。下一年,他基于《极地特快车》的设计也获得了 10,000 票。

然后…什么都没有发生。《丁丁历险记》的票数下降了,Lego 拒绝了他备受喜爱的《阿凡达》和《极地特快车》的想法。公司从不透露为什么拒绝了一个创意提交,只是说决定因素包括“可玩性”和“品牌适配性”,以及许可另一家公司知识产权的困难。

然后,他决定尝试一种在他的脑海中一直存在的想法:一个类似于他的姐姐 Mia 喜欢使用的即时相机的 Polaroid。Marc 自己并不是一个 Polaroid 的忠实拥护者,但他喜欢原始的 1977 年 Polaroid OneStep 的标志性外观。彩虹条纹相机已经在他的内心中存在了很长时间,但当他看到 2020 年的 Lego 迷你兵团套装引入了适合他目的的完美尺寸的镜头环时,他决定开始构建。

Marc 的最初的数字设计包括镜头周围的卡车轮胎。

Marc 的最终数字渲染图显示了相机正面的一个开放的胶片舱和侧面的一个突出的拨盘,以便您可以拍出照片。

一些 Marc 的物理原型,采用了不同的镜头设计。

Marc 的 Lego Polaroid 粉丝设计的动画显示它将照片积木推入和推出。

当他按下快门按钮时,Lego Polaroid 会从插槽中拍出一张照片。

Lego 今天开始预订其基于 Marc 自制模型的经典彩虹条纹 Polaroid OneStep SX-70 即时相机的复制品。Lego 向 The Verge 发送了一台相机供我们组装和玩耍,并且我将在后面解释,这款售价为 80 美元/80 欧元/70 英镑的套装令人愉快。Lego 还授予我们多次采访的机会,讨论 Lego 如何将一个粉丝制作的设计变成一个可以销售的产品。

整个过程中,Lego 的设计师们通过一系列步骤来复制原始的粉丝创作,以了解哪些部分有效,哪些部分不行。在 Lego 的丹麦比隆德总部,设计师们在一个名为“Brick Library”的房间里走过,这个房间里摆满了按颜色和形状分类的零件,就像超市的货架一样。他们可以拿走他们需要的任何东西。

Lego Ideas 计划的创意负责人 Jordan David Scott 表示,创建一个真正的 Lego 套装并不是一系列简单的步骤。尽管 Marc 的 Polaroid 套装构建得很好,但每个套装都必须经过严格的质量控制,这必然导致了一些更改。即使是经验丰富的 Lego 设计师也不得不回到绘图板上,一次又一次地更换零件,以通过质量控制。此外,Lego 还有一系列与设计师直接合作的团队,包括功能测试部门、安全部门、工程部门和纺织部门。甚至还有一个专门的“构建说明”部门和一个“模型质量”团队,他们与设计师一起坐在一起,观察他们的构建过程。他们确保构建过程保持有趣,说明书合理,模型稳定到足够不容易在构建过程中断裂。在设计师 James May 的话中,这就像设计过程的最后一次考试。

Lego 的设计师 May 告诉我,他的主要任务是构建 Polaroid 套装,这意味着在几个月的时间里,他要多次构建 Lego 相机,有些是数字模型,有些是完美无缺的实物模型,还有一些是以随机颜色构建的实物模型,用于压力测试。其中一个模型被放入烤箱中,以模拟在特别炎热的国家中放置的套装;另一个模型则被机器人手臂戳击,以测试其活动部件。May 说他不计算“草稿”的数量,因为每个套装都是一个忒修斯之船,同样的设计不断演变,因为零件被更换以满足 Lego 的标准。

在 Lego Polaroid 的设计中,团队面临的一个特殊挑战是来自 Polaroid 首席执行官的要求。当 Lego 找上门时,Polaroid 首席执行官 Oskar Smolokowski 毫不犹豫地接受了。他通过电子邮件告诉我:“我是一个(业余)Lego 粉丝,每年只建造几套,所以这不是我需要考虑的决定!”他说,他几乎立即接受了 Lego 的提议,但他对 Lego 是否支付了多少费用并没有回答我的问题。他写道:“我们觉得没有必要进行任何谈判,这对我们来说是公平和双赢的。”

但是 Polaroid 的首席执行官提出了一个要求:他希望 Lego Polaroid 的大红色快门按钮能够有所作为。他回忆道:“我真的希望相机尽可能像相机一样。”首席执行官在第一次 Lego / Polaroid 启动会议上提出了这个想法,Scott 记得。

Lego 还没有完全准备好承诺这一点。Scott 回忆说:“我说是的…我们可以研究一下?”Marc 的设计已经可以通过转动拨盘来弹出一张照片,Lego 已经成功地复制了这个功能。拨盘肯定是备选方案。

但是 Scott 决定向之前曾参与移动式 Lego 打字机设计的 May 发起挑战,让他让按钮起作用。在与 Lego 的机械友好的 Technic 积木专门团队的帮助下,他们决定使用一对与滑动臂连接的小橡皮筋来弹出照片。


HN 评论 208 comments | 作者:sohkamyung | 13 hours ago #

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

帖子中的评论主要涉及 Lego Duplo(Lego 的一种系列)和其他一些相关话题,例如 Lego Quatro 和 Lego 的设计审核过程。以下是评论的摘要:

有人提到他购买了很多 Lego Duplo 套装,并表示它们非常有趣。

Lego Duplo 是 Lego 的一种系列,它的积木比普通 Lego 积木大一倍,因此可以与普通 Lego 积木兼容。

还提到了 Lego Quatro,它的积木比普通 Lego 积木大四倍,但仍与其他套装兼容。

有人提到了一种更大的 Lego 套装,可能是指 Lego Soft Starter Set,但具体尺寸不确定。

有人讨论了 Lego Duplo 和 Lego 积木的疼痛感受,有人认为 Lego 积木的边缘更锐利,而有人认为 Lego Duplo 的面积更大,所以疼痛感更轻。

还提到了其他一些与 Lego Duplo 和 Lego Quatro 相关的讨论,例如它们与其他套装的兼容性以及在模型中使用它们的一些创意。

这只是帖子中的一些评论摘要,如果您对特定评论感兴趣,可以点击链接查看完整的帖子和评论。


Suspects can refuse to provide phone passcodes to police, court rules #

https://arstechnica.com/tech-policy/2023/12/suspects-can-refuse-to-provide-phone-passcodes-to-police-court-rules/

根据《Ars Technica》的报道,犯罪嫌疑人可以拒绝向警方提供手机解锁密码,这是根据美国宪法第五修正案中的自我指控特权。

这是犹他州最高法院今天发布的一项一致裁决。该裁决涉及到一起绑架和袭击前女友的案件,嫌疑人 Alfonso Valdez 拒绝向警方提供手机解锁密码。在审判中,检察官引用了警探关于 Valdez 拒绝提供密码的证词,并在闭庭陈述中辩称 Valdez 的拒绝和手机上缺乏证据削弱了他的辩护。陪审团判定 Valdez 有罪。上诉法院推翻了这一判决,并同意 Valdez 在第五修正案下有权拒绝提供密码,并认为州政府在审判中违反了他的权利。犹他州最高法院确认了上诉法院的裁决。

这个裁决可能会引起美国最高法院的关注,因为它涉及到设备密码的法律问题。目前,关于设备密码的案例法律非常混乱,没有一个明确的法律规定。这个案件可能成为一个解决这个问题的好机会。

这个裁决强调了设备密码的普遍性,以及如何将第五修正案的自我指控特权应用于执法机构解锁设备和解密内容的努力。犹他州最高法院表示,根据已经确立的第五修正案原则,提供手机解锁密码是一种证言性的沟通方式。


HN 评论 212 comments | 作者:thunderbong | 6 hours ago #

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

有人建议不要在手机上存储任何可能涉及犯罪的内容,并推荐使用没有生物特征识别、遥测、公共云和企业间谍软件的紧凑型 Linux 设备。

有人指出加密手机市场的混乱,并提到了一个关于此问题的播客。

有人问如何判断手机上的内容是否涉及犯罪。

有人讨论了涉及加密数据或秘密代码的法庭案例,以及是否可以强迫嫌疑人解释代码的含义。

有人提到了密码学的历史和相关的法律问题。

有人讨论了关于数字证据调查的法律问题,以及第五修正案中的自我证明权利如何适用于解锁手机。

有人提到了战时审查的情况,以及在某些情况下禁止传输涉嫌代码。

有人讨论了使用其他语言或加密方式来隐藏内容的可能性。

有人讨论了警方是否可以强迫嫌疑人提供解密方法的问题。

有人提到了使用 Rosetta Stone 来解释加密内容的情况。

有人讨论了警方可能通过解码语言和后续行动的相关性来解密内容。

有人讨论了过去的情况,即如果警方无法破解加密,嫌疑人不需要解释,而现在则可能需要解释。

有人提到了使用密码切换配置文件并对其进行加密的情况。

有人讨论了与警方互动时的最佳策略,以及是否应该提供解锁密码。

有人提到了使用可否认性密码的概念,以及对于某些加密货币硬件钱包的应用。

有人讨论了使用虚假密码来误导调查人员的可能性。

有人提到了在面对美国情报机构时,你已经被假定有罪,手机上的保护措施不会有任何作用。

有人提到了关于锁屏通知的问题,以及如何处理伪装/第二个配置文件的通知。

有人提到了英国的相关法律,要求嫌疑人在命令下提供密码。

有人讨论了英国警方过度使用这些权力的问题,并指出嫌疑人有权拒绝提供密码。

有人提到了澳大利亚一些州的类似规定,以及拒绝提供密码可能面临的刑事处罚。

有人对政府强迫嫌疑人自证其罪的做法表示不满。

有人讨论了关于自证权利的问题,以及澳大利亚是否有类似的宪法保护。

有人指出这个判决只适用于犹他州,其他州有不同的判决。

有人提到了使用生物特征识别和密码的问题。

有人讨论了使用数字密码的可能性。

有人讨论了数字密码的可能性和安全性。

有人讨论了警方可能使用的破解方法,包括离线暴力破解、比对哈希值和克隆设备硬盘等。

有人讨论了手机硬件安全模块(HSM)的工作原理和保护措施。


I bricked my Christmas lights #

https://www.whizzy.org/2023-12-14-bricked-xmas/

作者通过逆向工程了解了蓝牙低功耗(Bluetooth LE)LED 灯控制器,并分享了他在连接 LED 灯到家庭自动化系统时遇到的问题。文章提供了一些步骤和技巧,以及作者的个人经验。

作者首先介绍了他逆向工程廉价的 LED 灯带,成功将其连接到 Home Assistant。然后,作者尝试连接另一组可寻址的 LED 灯带,但在此过程中遇到了问题。

文章详细描述了逆向工程的步骤,包括分析通过蓝牙发送给设备的字节、重放攻击、反编译 Android 应用程序以获取更多信息等。作者还分享了一些关于解密和加密数据的经验。

最后,作者提到他的灯带在尝试逆向工程过程中变得无法使用,但他仍然能够使用这些灯带的标准可寻址 LED。

总结摘要:文章讲述了作者逆向工程 LED 灯控制器的经历,分享了逆向工程的步骤和技巧,并提到了在尝试逆向工程过程中灯带损坏的问题。

请注意,这只是对文章的摘要,具体内容请参考原文。


HN 评论 37 comments | 作者:willcooke | 7 hours ago #

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

有人指出帖子中的十六进制数据中的"54 55 52 4E"代表了大写字母"T U R N",这可能是一个命令。

有人建议检查电源供应是否出现故障,因为灯的亮度被限制在了 0x1f,可能是由于电源故障引起的。

有人提到可以将灯的控制器替换为 ESP8266 等设备,并使用开源的可寻址 LED 控制器来控制灯光。

有人讨论了如何逆向工程 Govee 品牌的灯光,并提到了使用 BLE 或 WiFi 进行控制的方法。

还有其他一些评论提到了与圣诞灯相关的技术和创意。

这些评论提供了对帖子内容的不同观点和建议。


Oxlint – Faster than ESLint #

https://oxc-project.github.io/blog/2023-12-12-announcing-oxlint.html

这篇文章是关于 Oxc 项目宣布推出了一个名为"oxlint"的 JavaScript 代码检查工具。以下是对文章的摘要:

Oxlint 是一个 JavaScript 代码检查工具,旨在捕捉错误或无用代码,而无需任何配置。

它比 ESLint 快 50-100 倍,并且在实际应用中已经取得了显著的性能提升。

Oxlint 默认检查错误、冗余或混乱的代码,优先考虑正确性而不是琐碎的规则。

它易于使用,可以在几秒钟内运行在大型代码库上。

Oxlint 还提供了增强的诊断功能,帮助用户更好地理解代码问题。

目前,Oxlint 正在整合来自 TypeScript、React、Jest、Unicorn、JSX-a11y 和 Import 等常用插件的规则。

Oxlint 是一个独立的代码检查工具,无需管理插件依赖或处理版本兼容性问题。

更多关于 oxlint 的信息可以在提供的链接中找到。


HN 评论 186 comments | 作者:pritambarhate | 15 hours ago #

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

这篇帖子是关于一个名为 Oxlint 的工具,它声称比 ESLint 更快。以下是评论的摘要:

用户 austin-cheney 表示,当 Oxlint 支持自定义规则时,它将变得非常棒,因为他有很多自定义的 ESLint 规则,并且他认为 ESLint 有太多的 NPM 依赖。

用户 kristiandupont 认为,对于新的代码检查工具(包括 Bun 和其他工具),最重要的是它是否支持第三方规则和自定义规则。他认为 ESLint 是不可或缺的,因为它可以支持第三方规则和自定义规则。

用户 WhitneyLand 认为将逻辑添加到代码检查工具中会模糊关注点的分离,增加不必要的复杂性,类似于额外的编程语言。他认为代码检查工具应该是与开发无关的,它应该是一种增强代码质量的层次,而不是代码功能的基本部分。

用户 bakkoting 指出,ESLint 和 TypeScript 是 JavaScript 的事实上的静态分析工具。如果要进行自定义静态分析,需要使用自定义的 ESLint 插件。他认为可能有其他工具可以进行可插拔的静态分析,但事实上并没有这样的工具,放弃项目特定的静态分析将失去太多。

用户 dm33tri 提到 Oxlint 正在开发自定义规则的功能,使用了 trustfall 查询引擎和 YAML 定义。

用户 obi1kenobi 表示,Rust 的 semver linter cargo-semver-checks 也使用了 Trustfall 查询。他还提到自己是 Trustfall 的维护者,并分享了关于如何使用 Trustfall 的优化 API 实现 2000 倍加速的演讲链接。

用户 DanielHB 指出,为了使 ESLint 支持预转译的 JS 的特定风格,不仅需要依赖,还需要更新 ESLint 解析器。

用户 robertlagrant 表示,他不确定是否有办法解决这个问题。

用户 crossroadsguy 认为这是一个 NPM/Node 的问题,他认为依赖情况可能会导致焦虑,尤其是在同时处理两个 React Native 项目和一个 Web 项目时。

用户 art0rz 表示,他希望能够加快工作流程,使用一个更快的 ESLint 替代方案,但他的 ESLint 配置通常非常定制化,其中包含了在其他解决方案中(尚未)提供的规则和插件,这使得这些替代方案对他来说不可行。他认为这些替代方案要达到插件/规则的平衡还需要一段时间。

用户 brundolf 表示,尽管有很多具有令人印象深刻的基准测试的 Rust 或 Go linters 出现,但在它们具备插拔式兼容性之前,它们不太可能取代 ESLint。

用户 maccard 问用户是否愿意删除自定义配置,以便更接近这些工具支持的工作流程。他认为 Go 的一个伟大之处在于你可以有自己的观点,但如果你不同意 go fmt 或 go build,那么你的观点是错误的。

用户 bsnnkv 认为这是 Go 和 Rust 等生态系统的真正生产力超能力之一。

用户 IshKebab 表示,Python 和 JavaScript 也有类似好的格式化工具(只要你的同事不坚持使用 yapf 而不是 Black,尽管 yapf 会产生非确定性的输出!)。他认为在自动格式化方面,Rust 可能比 Prettier 稍逊一筹。他还提到了几个 Rust 的替代格式化工具。

用户 Aissen 引用了一位用户的评论,该用户表示使用 Oxlint 比使用 ESLint 快 50-100 倍。他还提到他们以前的代码检查设置需要 75 分钟才能运行,所以他们在 CI 中使用了 40 多个工作器。与此相比,Oxlint 在单个工作器上对相同的代码库进行检查只需要大约 10 秒钟。

用户 Kyro38 问用户之前的 75 分钟中有多少时间是由 @typescript-eslint 引起的,因为需要解析 TS AST 会带来巨大的开销。

这些评论主要涉及到 Oxlint 相对于 ESLint 的速度、自定义规则的支持、代码检查工具的复杂性、静态分析工具的选择以及其他相关讨论。


WebP is so great except it’s not (2021) #

https://eng.aurelienpierre.com/2021/10/webp-is-so-great-except-its-not/

作者是一位负责任的网页设计师,他将自己的照片库转换为 WebP 格式,因为 WordPress 终于接受了 image/webp MIME 类型的媒体上传,并且自 2020 年 9 月以来的所有新版网络浏览器(甚至包括苹果的 Safari)都可以显示 WebP 格式。然而,作者发现 WebP 并不像宣传的那样完美。

WebP 在文件大小方面表现出色,与 JPEG 相比,可以节省 15% 的空间,Google 甚至声称可以节省 25-34%。有许多 WordPress 插件可以将旧的媒体库实时转换为 WebP 格式,但大多数插件都作为 SaaS(软件即服务)运行,并在其自己的服务器上进行转换,因此需要支付一定的费用。这些插件声称它们的“激进”压缩因子对 99% 的图片都是安全的。

然而,作者发现在某些情况下,WebP 格式的压缩会导致图片出现明显的色带效果,尤其是在具有大面积平滑渐变背景的照片中。这些平滑渐变背景是摄影师有意创造的,以在不分散注意力的情况下为前景/主题提供有机纹理。作者进行了一系列测试,发现在某些情况下,WebP 格式的质量设置需要高于 JPEG 格式才能获得类似的效果,而且 WebP 格式的文件大小也比 JPEG 格式大。

作者指出,所有 Google 关于 WebP 的宣传都是基于对图像数据集的平均 SSIM(结构相似性指标)和平均比特重量的测量。然而,对于摄影师来说,他们更关心的是视觉输出的稳定性和质量,而不仅仅是平均值。作者认为 WebP 在这方面的表现并不令人满意。

此外,作者还指出 WebP 的设计存在问题,由于 WebP 必须是 RGB 或 RGBalpha 格式,因此无法保存单通道的单色灰度图像,这导致了一些额外的色度偏移。作者建议在图像中添加抖动或少量噪点,以确保平滑渐变保持平滑,无论经历多少次重新压缩。

总结来说,作者建议对于重视图像质量的用户,应该坚持使用 JPEG 格式,并在图像中添加抖动或噪点。此外,不建议将旧的 JPEG 图像转换为 WebP 格式,因为在某些情况下,WebP 的压缩效果并不理想。同时,作者呼吁开发人员和技术人员与实际的艺术家进行交流,以更好地理解他们的挑战和优先事项。


HN 评论 352 comments | 作者:enz | 14 hours ago #

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

有人认为 WebP 图像在转换后会出现渐变失真的问题,特别是在背景中。他们建议在需要减少带宽和加载时间的情况下使用 WebP,但在需要保持图像质量的情况下使用其他格式(如 JPEG 和 PNG)。

有人表示他们在 WebP 图像中看不到明显的差异,可能是因为他们使用的显示器质量较低或者他们的眼睛对这些细节不敏感。

一些人认为 WebP 图像在某些情况下会出现明显的色阶问题,特别是在背景中。他们指出,这种问题在 WebP 图像中更为明显,而在 JPEG 图像中较少。

也有人提到,WebP 图像的质量可能会受到编码器或设置的影响,不同的编码器可能会产生不同的结果。

还有人指出,WebP 图像在一些显示器上可能会出现明显的色带效应,而在其他显示器上可能不明显。

有人认为 WebP 图像的问题可能与显示器的像素密度和色彩配置有关,一些显示器可能无法显示出图像的细微差异。

也有人提到,WebP 图像在某些情况下可能会出现明显的色阶问题,特别是在背景中。他们指出,这种问题在 WebP 图像中更为明显,而在 JPEG 图像中较少。

这些观点涵盖了对 WebP 图像质量和可见差异的不同看法。请注意,这些观点是基于帖子评论的摘要,可能不代表所有人的观点。


Prompt engineering #

https://platform.openai.com/docs/guides/prompt-engineering

本文是 OpenAI 平台上的一篇文章,介绍了如何进行 Prompt Engineering(提示工程),以获得更好的结果。Prompt Engineering 是指通过优化提示的方式,使得大型语言模型(如 GPT-4)能够更好地完成任务。文章提供了一些策略和技巧,可以根据具体情况进行组合使用,以获得最佳效果。

文章中介绍了六种策略,包括:

写清楚的指令:在提示中清楚地表达你的要求,避免让模型猜测你的意图。

提供参考文本:如果你可以提供与当前查询相关的可信信息,可以指示模型使用这些信息来生成答案。

将复杂任务分解为简单子任务:将复杂任务分解为一系列简单的子任务,以降低错误率并提高效率。

给模型一些时间“思考”:在要求模型回答之前,给予模型一些时间来思考问题,以提高回答的准确性。

使用外部工具:通过使用其他工具的输出来弥补模型的不足,以获得更好的结果。

系统地测试变化:对于对提示进行修改以提高性能的情况,可以通过定义全面的测试套件来确保变化对性能的影响是积极的。

文章还提供了每种策略的具体技巧和示例,以及一些常用的参数设置建议。

总的来说,Prompt Engineering 是一种优化大型语言模型性能的方法,通过合理设计和优化提示,可以获得更好的结果。


HN 评论 159 comments | 作者:tosh | 7 hours ago #

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

以下是评论的观点摘要:

有人认为示例中的 prompt 过于礼貌和对话式,更严格的命令可能会取得更好的效果。

有人提到使用函数调用/结构化数据支持可以比仅使用系统 prompt 更强大,但需要类似的技能。

有人分享了一些关于 prompt 工程的经验和技巧,例如使用威胁、全大写字母等方式来指导模型的回答。

有人讨论了关于模型行为和人类感知的问题,以及如何编写更好的 prompt 来引导模型的回答。

有人分享了一些关于 prompt 工程的资源和技巧。

有人提到了与 Google 搜索中的关键词查询相似的思路,认为未来可能会回归到更高效的交互方式。

这些是帖子中的一些主要观点,涉及到 prompt 工程的技巧、模型行为和人类交互等方面。帖子中还有其他评论,您可以通过访问提供的链接查看完整的讨论内容。