2024 03 18 HackerNews

2024-03-18 Hacker News Top Stories #

一句话摘要 #

  1. How web bloat impacts users with slow devices 网络过度臃肿对使用慢速设备的用户造成严重影响,尤其是在加载现代网站时。
  2. The return of the frame pointers 文章讨论了帧指针在调试和性能分析中的重要性,以及 Fedora 和 Ubuntu 重新启用帧指针的影响。
  3. Hackintosh is almost dead 黑苹果(Hackintosh)面临严重困境,由于苹果最新macOS移除了对旧款WiFi/Bt卡的支持,导致可靠的WiFi驱动支持几乎绝迹。
  4. LLM4Decompile: Decompiling Binary Code with LLM LLM4Decompile项目使用大型语言模型对二进制代码进行反编译,旨在创建首个专注于反编译的开源大型语言模型。
  5. Debloat non-rooted Android devices 这个项目提供了一个跨平台的GUI工具,使用Rust编写,通过ADB清理非Root的安卓设备,提高隐私、安全性和电池寿命。
  6. Fifty Things you can do with a Software Defined Radio 文章介绍了作者通过软件定义无线电(SDR)进行的五十项实验,展示了SDR技术的多样性和应用潜力。
  7. How Microchips Work 网站提供关于微芯片工作原理的详细技术文章,内容包括CPU内部结构、逻辑门级别到系统级别的全面解释。
  8. When Armor Met Lips 文章讲述了五亿年前一种名为Plectronoceras的小生物,以及它们如何因海豹的进化而逐渐消失。
  9. Nanofont3x4: Smallest readable 3x4 font with lowercase Nanofont3x4项目提供了世界上最小的可读的3x4字体,包含小写字母和所有ASCII符号,探索字形的本质和可读性。
  10. Low-tech Magazine underscores the potential of past technologies Low-tech Magazine网站探讨如何利用低技术和可持续方法解决现代问题,包括建立独立的光伏系统等内容。

How web bloat impacts users with slow devices #

https://danluu.com/slow-device/

这篇文章讨论了网络过度臃肿对使用慢速设备的用户造成的影响。文章指出,尽管宽带速度在不断增加,但仍有许多用户无法获得宽带速度,使得现代网络对于使用慢速互联网的人来说难以使用。文章提到,尽管带宽增长远远超过了网页臃肿的增长,使得这个问题比 2017 年时减轻了一些,但对于网络连接质量较差的人来说,仍然是一个严重问题。

文章还探讨了 CPU 性能对于网络应用程序的影响,指出尽管越来越多的网页对于低端连接的用户变得可访问,但对于低端设备的用户来说,即使他们有高端连接,许多网页也变得无法访问。作者通过在不同设备上测试各种网站和平台的性能,展示了在慢速设备上加载这些网站的挑战,以及不同设备之间性能差异的情况。

文章还提到了一些现代网站的设计技巧,如动态加载页面等,这些技巧使得在低端设备上的用户体验变得更加困难。作者强调了 CPU 时间作为一个重要指标,因为它与用户在慢速设备上的可用性感知高度相关。

总的来说,文章强调了网络过度臃肿对于使用慢速设备的用户造成的严重影响,以及在设计网站时需要考虑到不同设备性能差异的重要性。


HN 评论 519 comments | 作者:jasondavies | 1 day ago #

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

  • 一些用户表示在使用较慢的 Android 手机浏览网页时,加载速度非常慢,即使是只有文本和图片的页面也会加载困难,主要原因是网页过于臃肿,充斥着大量的跟踪器和广告。
  • 一些公司会故意破坏网页以迫使用户使用应用程序,例如 Nike 和一些欧洲航空公司,这种做法可能会损害品牌形象。
  • 一些大公司的网站设计存在问题,例如 Slack,如果在 Firefox(iOS)上禁用“请求桌面站点”功能,会强制用户下载应用程序。
  • 一些社交媒体网站的移动浏览体验较差,例如 Reddit,用户需要通过修改 URL 才能使用。
  • 一些用户表示现代网络离不开广告拦截,但广告拦截也会导致网页体验下降。
  • 一些开发者提出了改进网页加载方式的建议,例如实现虚拟滚动条等技术。
  • 一些用户认为网页开发人员对效率不够重视,导致网页过于臃肿,缺乏效率。
  • 一些用户认为在网页设计中应更注重效率,而不是追求繁杂的功能和设计。

The return of the frame pointers #

https://www.brendangregg.com/blog/2024-03-17/the-return-of-the-frame-pointers.html

这篇博文讨论了“帧指针”的重要性以及它们在调试和性能分析中的作用。

作者指出,一些调试器和性能分析工具在处理缺少帧指针的系统时可能会出现问题。文章详细介绍了帧指针的概念,以及它们如何帮助外部性能分析工具和调试器进行堆栈跟踪。作者还回顾了帧指针在过去几年中的变化,包括一些大型公司如何启用帧指针以及它们的影响。

最后,文章展望了未来可能出现的新技术,以及帧指针在性能优化中的作用。文章强调了 Fedora 和 Ubuntu 最近重新启用帧指针的重要性,并指出这一举措对于改善 CPU 和 Off-CPU flame graphs 的可视化效果以及其他新功能的实现具有积极意义。


HN 评论 195 comments | 作者:mfiguiere | 20 hours ago #

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

  • 有人认为省略堆栈帧指针会使调试变得更加困难,导致调试错误变得指数级更难。
  • 有人提到 Fedora 一直在努力保持启用帧指针,认为帧指针的实际测量开销不到 1%。
  • 有人认为帧指针的开销不到 1% 这一说法可能不适用于所有工作负载,指出 Linux 内核人员称启用帧指针会带来 5-10% 的开销。
  • 有人指出最近的测试显示帧指针的开销不到 1%,并且强调了改进性能和分析的好处。
  • 有人讨论了在 Intel 设计 8086 时使用两个单独寄存器的决定,认为使用单个寄存器作为堆栈指针和帧指针会更简单。
  • 有人谈到了开源软件中对收集遥测数据的文化抵制,认为用户对于谷歌、微软或亚马逊等公司悄悄收集数据并不反感,但对于开源项目搜集数据则持反对态度。
  • 有人讨论了持续性的性能分析和隐私问题,强调了开源项目中数据收集的透明度和隐私保护的重要性。
  • 有人提到 OCaml 5 中的堆栈帧指针问题,以及在未来版本中保持启用帧指针的必要性。
  • 有人讨论了 ARM 和 x86 架构中帧指针的使用情况,以及在 IoT 设备中帧指针的适用性。
  • 有人谈到 Python 中关于帧指针的修复和 Fedora 中的相关变更。

Hackintosh is almost dead #

https://aplus.rs/2024/hackintosh-almost-dead/

这篇文章讨论了 Hackintosh(黑苹果)的现状。

作者在 2020 年初开始尝试在非苹果硬件上运行 macOS,并建立了几台黑苹果电脑,但最近发现黑苹果面临严重困境。苹果在最新的 macOS 14 中彻底移除了对旧款 WiFi/Bt 卡的驱动支持,这些卡是许多完全功能的黑苹果构建的关键组成部分。

尽管有一些希望 OpenIntelWireless 可以取代这些卡,但苹果持续清理和重写他们的驱动程序堆栈,使得黑苹果面临可靠的 WiFi 驱动支持几乎绝迹。

作者认为,缺乏可靠的 WiFi 驱动程序可能会成为黑苹果的绊脚石,使得黑苹果面临无法解决的问题。最终,作者决定放弃黑苹果,转向购买苹果官方硬件。


HN 评论 498 comments | 作者:ingve | 1 day ago #

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

评论中的观点大致可以归纳为以下几类:

  • 对于 Linux 和开源软件的支持和认可,认为拥有和控制权是重要的,学习的时间是值得的;
  • 对于专有技术的抵触和不愿意过多投入时间,认为专有技术可能会限制自己的能力和自由;
  • 对于 Hackintosh 和类似项目的看法,认为它们在一定程度上促进了技术发展和创新,但也存在一些困难和挑战;
  • 对于个人使用操作系统的选择和体验,有人更倾向于 Linux 因为其稳定性和自定义性,而有人则更喜欢 Mac 或 Windows 因为其易用性和商业软件支持。

LLM4Decompile: Decompiling Binary Code with LLM #

https://github.com/albertan017/LLM4Decompile

这个 GitHub 地址( https://github.com/albertan017/LLM4Decompile)包含了一个名为 LLM4Decompile 的项目,旨在使用大型语言模型对二进制代码进行反编译。

项目的目标是创建并发布首个专注于反编译的开源大型语言模型,并通过构建首个专注于重新编译性和重新执行性的反编译基准来评估其能力。项目首先编译了来自 AnghaBench 的一百万个 C 代码样本,使用不同配置的 GCC 将其转换为汇编代码,形成了一个包含 40 亿令牌的汇编源代码对数据集。然后,使用这个数据集对领先的代码 LLM 模型 DeepSeek-Coder 进行微调。接着构建了评估基准 Decompile-Eval,基于 HumanEval 问题和测试样本。评估从两个角度进行:反编译的代码是否能够成功重新编译,以及是否通过所有测试用例的断言。

该项目提供了不同大小的模型,包括 1.3 亿到 33 亿参数的模型,并已在 Hugging Face 上提供了这些模型。其中包括 llm4decompile-1.3b、llm4decompile-6.7b、llm4decompile-33b、llm4decompile-6.7b-nsp 和 llm4decompile-6.7b-uo 等模型。项目还提供了使用模型的示例,包括预处理和反编译步骤。

此外,项目还包括 Decompile-Eval,其中数据存储在 llm4decompile/decompile-eval/decompile-eval.json 中,使用 JSON 列表格式。评估可以在单个 GPU 和单个进程上运行,也可以使用 TGI(速度更快,支持多个 GPU 和多进程)运行。项目还提到了未来的计划,包括 LLM4Binary 和 Decompiler-ALL 等。

整个项目的代码存储库使用 MIT 许可证。如果有任何问题,可以提出问题。


HN 评论 79 comments | 作者:Davidbrcz | 14 hours ago #

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

  • 有关重新执行性和重新编译性的讨论,强调语法恢复和语义保留的重要性。
  • 讨论了使用 LLM 进行反编译的可靠性,提出了识别幻觉的难题。
  • 强调通过多次往返编译源代码和二进制代码来降低信息损失的重要性。
  • 讨论了在训练中使用多个确定性构建环境以增强模型鲁棒性的关键性。
  • 提出了使用 GAN 进行训练,强调生成的代码不必完全相同,只需生成无法区分的描述即可。
  • 讨论了 ML 算法的可靠性,指出在大多数情况下能够节省大量时间。
  • 探讨了通过训练数据集来验证 LLM 输出的可行性。
  • 讨论了使用形式验证工具来检查 LLM 输出的正确性。
  • 提出了使用大量 C 代码作为合成训练数据的潜在好处。
  • 讨论了通过训练分类器进行作者归因的可能性。
  • 讨论了 LLM 在反编译 Python 字节码方面的潜在益处和动机。

Debloat non-rooted Android devices #

https://github.com/0x192/universal-android-debloater

这个项目是一个跨平台的 GUI 工具,使用 Rust 编写,利用 ADB 来清理非 Root 的安卓设备。

它旨在通过移除不必要和隐晦的系统应用来提高隐私、安全性和电池寿命。该项目是对 UAD 项目的完全重写,旨在提高隐私和电池性能。清理系统应用还有助于减少攻击面,提高安全性。软件尽可能详细地记录了软件包,以便更好地理解哪些可以删除,哪些不可以。

使用该软件不会导致设备变砖,但如果删除了关键系统包可能导致设备无限重启,需要进行恢复出厂设置。软件支持卸载/禁用和恢复/启用系统包,多用户支持,导出/导入选择,多设备支持等功能。

此外,软件提供了通用的去除列表,包括 GFAM(Google/Facebook/Amazon/Microsoft)、AOSP、制造商(OEM)、移动运营商等。详细使用说明和贡献方式可在项目页面找到。


HN 评论 197 comments | 作者:zikohh | 23 hours ago #

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

  • 有人对三星手机预装的应用程序和数据收集表示担忧;
  • 一些人认为三星手机的数据收集行为可能涉及国家安全风险;
  • 一些人认为用户对数据收集问题并不在意;
  • 有人提出应加强相关立法;
  • 一些人认为手机制造商和银行应提供更安全的解决方案。

Fifty Things you can do with a Software Defined Radio #

https://blinry.org/50-things-with-sdr/

这篇文章介绍了作者通过软件定义无线电(Software Defined Radio,SDR)进行的五十项实验。

SDR 是一种依赖计算机进行大部分数据处理的无线电,可以探测比普通调频收音机更广泛的电磁波范围。作者使用 USB 接收器和天线套件展开了一周的探索之旅,发现了许多有趣的应用,包括收听 FM 广播、接收飞机通信、追踪飞机位置、接收数字广播、追踪船只位置、探测 GSM 信号、接收卫星信号、欣赏 TETRA 信号、监听出租车调度、追踪气象气球、接收业余无线电信号、接收数字模式信号等。

作者还分享了自己的探索过程和一些有趣的发现,展示了 SDR 技术的多样性和应用潜力。


HN 评论 20 comments | 作者:Timothee | 1 day ago #

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

  • SDR 的多功能性:从读取燃气表数据到接收飞行数据,展示了 SDR 的广泛应用。
  • 图像加载速度问题:建议压缩图像、使用缓存头和 CDN,以提高网页性能。
  • ADC 灵敏度和位深度:ADC 的灵敏度受多种因素影响,位深度在整体重要性中并不占主导地位。
  • SDR 在不同领域的应用:从频率和相位分析到家庭自动化项目,SDR 技术在各个领域都有应用。
  • SDR 用于实时监测公用事业表数据,帮助用户跟踪用电情况。
  • SDR 技术在无线电通信、LTE/5G 塔建设等方面的应用。
  • SDR 在个人兴趣和职业发展中的作用。
  • 法律规定对于接收和传输无线电信号的限制,以及欧洲对隐私保护的态度。

How Microchips Work #

https://exclusivearchitecture.com/03-technical-articles-IC-00-table-of-contents.html

这个网站是关于 Exclusive Architecture 的技术文章部分,内容包括光学和电子原理以及设备的详细描述和解释。其中一些插图已经在《Popular Mechanics》杂志和 Google 的 AI 博客上印刷过。主要内容如下:

  • 微芯片的工作原理
  • 概述
  • CPU 的内部结构
  • 设备级别
  • 电路级别
  • 逻辑门级别
  • 电阻-晶体管逻辑
  • CMOS 逻辑
  • 寄存器传输级别
  • 多路复用器和解复用器
  • 编码器和译码器
  • 算术逻辑单元(ALU)
  • 锁存器
  • 触发器
  • 寄存器
  • 总线系统
  • 微架构级别
  • 系统级别
  • 封装
  • 术语表

Exclusive Architecture 是 Markus Kohlpaintner 的私人网站和摄影博客,专注于创意和现代技术。网站链接包括首页、摄影、平面设计、技术文章、评论和旅行博客等。网站设计和编程由 Markus Kohlpaintner 完成。


HN 评论 30 comments | 作者:pbamotra | 19 hours ago #

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

  • 有评论指出硅是半导体的理想材料,能够轻松地在导带和价带之间传递能量,使其易于导电。
  • 另一观点提到硅氧化物几乎完全匹配硅的晶格,是构建绝缘特性的关键。
  • 评论中提到硅氧化物在硅上生长,形成良好的绝缘层,是硅时代的默默英雄。
  • 有人认为硅是完美适合制造微电子的元素,平衡了多种性能。
  • 还有评论指出,光学计算机可能会更好。
  • 有人提到,从理论上发明 MOS 晶体管到实际生长足够好的氧化物之间经历了很长时间。
  • 评论中还提到,消除电缆管理是一个重要突破,使技术革命加速发展。
  • 有人感叹 50 年前将这篇文章交付给 TI 和英特尔等研发实验室会有怎样的影响。
  • 评论中还提到了"Nand 2 Tetris"课程和 NandGame。
  • 有人赞扬文章中插图的清晰度。

When Armor Met Lips #

https://crookedtimber.org/2024/03/16/occasional-paper-when-armor-met-lips

这篇名为“Occasional paper: When Armor Met Lips”的文章讲述了大约五亿年前的一种名为 Plectronoceras 的小生物。它约 2 厘米长,有一个锥形壳和一堆触手。这是一种头足类动物,是章鱼和鱿鱼的早期成员,是一种“有甲壳”的头足类动物,大部分柔软的身体被那个坚硬的小壳保护着。文章回顾了五亿年前的晚寒武纪时期,介绍了生命刚刚开始复杂化,海洋中的生物种类有限,没有鱼类,只有无脊椎动物。在这个时代,有许多奇异的外星生物,其中包括贝壳加触手的设计。

文章提到了鸦片鱼,它们是一种有甲壳的头足类动物,这种设计似乎独立进化了几次。这种设计结合了软体动物的两个最佳特征:坚硬的保护壳和抓握的触手。有甲壳的头足类动物自由游动,通过在壳内充气来漂浮,它们大多数时候速度较慢,但可以突然加速,足以捕食或躲避危险。然而,大约三千万年前,有一种新型食肉动物进化出了可以分离贝壳内的肉的进食器官,这就是海豹。海豹有嘴唇、腮和有力的舌头,可以轻松地吸食贝壳内的美味肉类。这种“吸食进食”技术让海豹成为了有甲壳的头足类动物的天敌,导致它们逐渐消失,而现代鸦头鱼的分布范围正好是这些吸食动物尚未到达的地方。

这篇文章通过讲述进化中的故事,展示了生物之间的相互作用和适应性,揭示了生物演化中的精彩和神秘之处。


HN 评论 21 comments | 作者:akkartik | 7 hours ago #

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

  • 有评论讨论海豹可能在寒冷地区进化,并可能通过火山冬季跨越海洋到达其他地区;
  • 有人提出海豹可能在不同地点独立进化,或者一群海豹花了几百万年从北极到南极,开始主导当地生态系统;
  • 讨论海豹的进化来源和旅行方式,包括海豹的游泳速度和距离,以及他们是如何跨越赤道海域的;
  • 有人喜欢作者的写作风格,并询问如何找到更多作者 Doug Muir 的作品;
  • 有评论者期待文章会演变成克苏鲁风格的史诗,但最终发现是关于海豹的故事;
  • 讨论谁在保护我们免受克苏鲁式恐怖的影响,有人认为是无知,有人认为是海豹;
  • 有人分享关于 Voyager 1 的链接;
  • 有人讨论关于鹦鹉螺和海豹的笑话;
  • 有人讨论“地质迷”是否应该是“古生物学迷”;
  • 讨论文章的脚注和作者的幽默脚注。

Nanofont3x4: Smallest readable 3x4 font with lowercase #

https://github.com/Michaelangel007/nanofont3x4

这个 GitHub 地址包含了一个名为"nanofont3x4"的项目,提供了世界上最小的可读的 3x4 字体,其中包含小写字母和所有 ASCII 符号。项目的目的是挑战性地创建可读性最小的小写字体,以探索字形的本质和可读性。

项目中包括了 3x3 的大写字母和 2x2 的小写字母,其中有 9 个小写字母被设计为 2x2 大小。作者解释了设计过程中的挑战和思考,以及一些难以阅读的单词,如包含’co’或’x’的单词。项目还展示了字体的纹理图集和不同输出方式的示例。此外,项目提到了相关工作和其他尝试创建小字体的人员。

整体而言,这个项目旨在挑战极限,探索字体设计的可能性,同时提供了一些有趣的见解和思考。


HN 评论 62 comments | 作者:lsferreira42 | 7 hours ago #

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

  • 有人认为 3x4 字体的可读性令人惊讶,只需 12 位即可读取二进制数据。
  • 有人分享 MonteCarlo 程序员字体的喜爱。
  • 有人讨论字体选择对项目规划软件中文本密度的影响。
  • 有人认为 5x7 是最小尺寸,超过这个尺寸字符就难以辨认。
  • 有人提到 Atari ST 使用的 6x6 字体。
  • 有人分享 DSLinux 使用的 4x6 字体在终端上的出人意料的可用性。
  • 有人讨论在不同语言环境下字体的可读性挑战。
  • 有人分享关于字体文件大小和网络连接速度的讨论。
  • 有人提到 3x4 字体的上档字母令人印象深刻,但小写字母几乎无法辨认。
  • 有人分享在 C64 上使用小字体的经历。
  • 有人提到 3x4 字体的大图像和压缩后的文件大小。
  • 有人讨论在有限空间中显示日志或调试信息的挑战。
  • 有人分享在电子墨水屏幕项目中工作的经历。
  • 有人讨论小字体的应用场景和实用性。
  • 有人分享在高中时使用激光打印机打印小字体书籍的经历。
  • 有人讨论关于字体可读性的不同看法。
  • 有人质疑 3x4 字体的可读性。
  • 有人讨论字体的可读性标准。
  • 有人分享对“可读性”一词的不同理解。

Low-tech Magazine underscores the potential of past technologies #

https://solar.lowtechmagazine.com/

这个网站是一个由太阳能供电的网站,有时可能会离线。

它包含关于低技术解决方案、高技术问题、过时技术等内容。其中一篇文章介绍了如何建立一个独立的光伏系统,可以为几乎任何设备提供电力。

另一篇文章介绍了一个展览中使用的自行车发电机,并探讨了塑料垃圾在燃料箱中的应用。网站还提到了使用太阳能板而无需备用基础设施的直接太阳能发电方法,以及人力驱动的空气压缩机和能量存储系统。

此外,还有关于重建太阳能供电网站、自行车的可持续性、替代枪支和箭的讨论等内容。整个网站的理念是探讨如何利用低技术和可持续方法解决现代问题。


HN 评论 63 comments | 作者:logtempo | 23 hours ago #

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

  • 有人认为现代科技更新换代频繁,但并未带来生活质量的显著提升,甚至感觉被迫不断升级设备,倾向于从事低科技爱好,如手工艺制作。
  • 有人觉得现代科技并未带来实质性改进,反而出现退步,软件更新后功能减少,应用程序变得更糟,社交媒体尤其如此。
  • 建议尝试将 Linux 作为日常驱动器,因为使用 Linux 后感觉解放,不再受到类似问题的困扰。
  • 有人认为现代笔记本电脑的启动过程是反低科技的,硬件和软件的复杂性不断增加,使得整个系统变得庞大且难以控制。
  • 讨论了现代硬件、软件和工程的复杂性,认为随着技术的进步,复杂性不断增加,变得难以控制。
  • 有人持有对过去技术的怀旧情绪,认为现代计算机变得更糟,举例说明旧笔记本电脑的性能优势。
  • 讨论了 DNA 中的未使用部分,以及对现代技术复杂性的看法。
  • 有人提到了 1963 年已经有类似观点的表达。
  • 讨论了现代计算机的复杂性主要是为了向后兼容和满足不同设计理念,以及制造商为了自身利益而增加不必要功能所致。
  • 讨论了技术的社会性,认为技术不仅仅是机械的,还包含社会因素,导致了专业化和系统性的挑战。
  • 讨论了低科技哲学的多方面,包括简单实用、生态关怀、技术关系、技术主权和可持续性等。
  • 有人认为人们对现代技术的抱怨并非实际复杂性,而是表面可见部分,缺乏了解和怀旧情绪。
  • 讨论了现代技术的复杂性主要是为了满足企业利益,以及对开放平台的影响。
  • 讨论了技术的社会性和政治经济学,强调了分配财富的重要性。
  • 讨论了“如果我能,我应该吗?”的问题,强调在没有选择的情况下,问题就不存在。
  • 讨论了“减少增长”作为一种经济学理论,强调了当前系统的批判性和分配财富的重要性。