【HN中文日报】科技圈大事件!SQLite 神器、PDF 瑞士军刀、树莓派黑科技...还有你不知道的 LaTeX 秘密!

意外富翁 · 3个月前 · News · 28 · 0

今天 Hacker News 社区聊了啥? NO.20251013

今天这份日报简直信息量爆炸!从开发者必备的在线 SQL 编辑器 SQLiteOnline,到 PDF 文件处理神器 pdfly,再到树莓派 5 玩转 NVMe SSD 的骚操作,让你一次性掌握各种实用工具和技术。还有关于 LaTeX 源码泄露隐私的惊人发现,以及现代 Linux 游戏开发工具的硬核指南!快来一起看看,别错过任何一个提升技能的机会!

Hacker News 中文精选


SQLite Online:一款拥有11年历史的在线SQL编辑器

SQLiteOnline.com 是一款由一位开发者独立维护了 11 年的在线 SQL 编辑器,它不断增长并添加新功能。该工具提供多种数据库连接选项,包括 SQLite、DuckDB、PGLite、MariaDB、PostgreSQL 和 MS SQL。

该编辑器提供了多种功能,例如数据库的导入导出,支持通过 URL 远程下载数据库或 SQL 脚本。 此外,它还支持使用虚拟表直接查询外部数据源,这对于跨多个 API 和数据集的联合查询非常有用。 用户可以通过订阅来支持该项目的持续发展。

SQLiteOnline 提供了多种便捷功能,比如代码自动补全、多种颜色主题、快速滚动百万行数据表,以及创建数据库公开链接分享等。它还支持通过简短代码快速生成 SQL 语句,例如 s* tableName 可以快速生成 SELECT * FROM tableName。 此外,右键单击鼠标可以打开许多附加功能,方便用户操作。

该工具还提供了一些示例数据库链接,例如 Chinook、NorthWind 和 Sakila,方便用户快速上手体验。 同时也提供了通过 URL 导入远程 SQL 脚本的功能,极大地提高了使用的便捷性。


PDFly:PDF 文件的瑞士军刀

pdfly 是一个基于 Python 的 CLI 工具,旨在简化 PDF 文件的操作,它基于 fpdf2pypdf 库,提供了丰富的功能。

pdfly 提供了多种实用功能,包括显示 PDF 元数据、合并和提取页面、删除页面、将图像转换为 PDF、压缩文档以及创建小册子等。使用 pdfly metapdfly pagemeta 命令可以方便地查看 PDF 文件的元数据,例如文件名、大小、创建和修改时间等。pdfly cat 命令可以将多个 PDF 文件合并成一个,或者提取特定页面。pdfly rm 命令可以删除 PDF 文件中的指定页面。pdfly x2pdf 命令可以将图像文件转换为 PDF 文档,而 pdfly compress 命令则可以压缩 PDF 文件的大小。此外,pdfly 还支持创建小册子,通过 pdfly 2-uppdfly booklet 命令可以轻松实现。

pdfly 还具备内容提取功能,例如 pdfly extract-images 可以从 PDF 文件中提取图像,pdfly extract-annotated-text 可以提取带注释的文本。更厉害的是,pdfly update-offsets 命令可以修复手动编辑后损坏的 PDF 文件,使其能够再次被 PDF 阅读器打开。

最新发布的 0.5.0 版本引入了更多令人兴奋的功能,包括 PDF 签名和签名验证、提取带注释的页面以及旋转页面等。pdfly sign 命令可以轻松地对 PDF 文档进行签名,而 pdfly check-sign 命令则可以验证 PDF 文档的签名。pdfly extract-annotated-pages 命令可以从 PDF 文件中提取所有带注释的页面。pdfly rotate 命令可以旋转 PDF 文档中的特定页面。

pdfly 项目正在积极开发中,未来还会增加更多功能,欢迎大家提供反馈、报告 Bug 和提出功能建议。

评论区有用户提到,Python 领域存在大量功能重叠的 PDF 工具库,其他语言中也有类似情况。


家庭实验室新发现:树莓派 5 使用 NVMe SSD、Proxmox 备份服务器死锁等

本文分享了作者在家庭实验室中折腾的新发现,包括树莓派 5 支持 NVMe SSD,以及 Proxmox 备份服务器可能出现的死锁问题等。适合对家庭服务器和自托管感兴趣的开发者和技术爱好者阅读。

文章首先介绍了作者的家庭网络环境,包含 Proxmox 集群、TrueNAS 备份机、树莓派 5 等设备。接着,作者分享了在使用树莓派 5 作为 Proxmox 节点时遇到的问题:系统运行缓慢,SSH 登录耗时很长。经过排查,发现是 SD 卡老化导致的。

然而,作者意外发现树莓派 5 竟然支持 NVMe SSD!通过一个简单的 PCIe 适配器,就可以让树莓派 5 使用 NVMe SSD 作为启动盘,大大提升了性能。作者还提到,虽然使用 NVMe SSD 可以解决 SD 卡老化的问题,但也需要注意散热,最好加装散热片。

此外,文章还提到了 Proxmox 备份服务器(PBS)可能出现的死锁问题。作者发现,在高负载情况下,PBS 可能会因为资源竞争而导致死锁。解决办法也很简单,就是限制 PBS 的并发任务数量。最后,作者还分享了一些其他的零碎知识,比如 CyberPower UPS 自带管理软件,以及自己很喜欢 Mealie 这款膳食管理应用。

总的来说,这篇文章内容丰富,涵盖了硬件、虚拟化、备份等多个方面,对于搭建家庭实验室的玩家来说,具有一定的参考价值。


巴塔哥尼亚古代狩猎采集者对伤残人士的关怀

一项研究表明,在古代巴塔哥尼亚地区,狩猎采集者会照顾受伤和残疾的同伴,这体现了早期人类社会中的互助精神。该研究分析了大约 4000 年到 250 年前的晚全新世时期,生活在巴塔哥尼亚的 189 位猎人骨骼,共计 3179 块骨骼元素,来自 25 个考古遗址。

研究发现,约 20% 的个体经历过某种形式的骨骼创伤,程度从轻微到严重不等。男性和女性的受伤数量相似,成年人比儿童更容易受伤。大多数损伤是意外造成的,但也有可能是人际暴力造成的,不过很难区分。

研究将损伤分为轻度护理、中度护理和重度护理三种类型。轻度护理占大多数,通常只需要适度护理,不会对群体动态产生重大影响,例如鼻骨骨折、颅骨凹陷、肋骨骨折等,通常几周内就能痊愈。中度护理约占 18%,需要三到五个月的恢复时间,例如手臂和上肢骨折,可能会影响群体动态,限制工具生产、屠宰、攀爬和研磨植物材料等日常活动。重度护理约占 13%,可能需要六个月甚至终生的照顾和关注。

其中一个特别严重的案例是一位髋关节严重受损的个体,股骨头和髋臼错位变形。这种损伤可能是由摔倒或重物撞击造成的,也可能是由儿童疾病 Legg-Calvé-Perthes 病引起的,这种疾病会破坏髋部的血液供应,导致骨骼退化和关节逐渐变形。骨骼显示出完全愈合的迹象,表明他们不仅得到了照顾,而且在受伤后还活了很多年。这项研究揭示了古代社会对弱势群体的关爱,也反映了早期人类社会中互助合作的重要性。


使用 Cine Remote 无线控制你的佳能相机

Cine Remote 是一个开源项目,它允许用户通过简单易用的界面无线控制佳能相机。该项目基于佳能相机的浏览器远程 API,为开发者和摄影爱好者提供了一个方便的控制方案。

Cine Remote 的核心在于利用了佳能相机自带的浏览器远程 API,这意味着用户无需安装额外的驱动或软件,只需通过浏览器即可与相机建立连接。这个项目提供了一个用户友好的界面,让用户可以轻松调整相机的各项参数,如光圈、快门速度、ISO 等,并进行远程拍摄。它采用 MIT 许可证,鼓励用户自由使用、修改和分发。对于需要在远程控制相机进行拍摄的场景,例如野生动物摄影、延时摄影或工作室拍摄等,Cine Remote 提供了一个经济高效的解决方案。

该项目在 GitHub 上开源,吸引了一些开发者关注,目前有 26 个 star 和 3 个 fork。虽然 Issue 和 Pull Request 数量不多,但表明该项目还处于积极开发和完善阶段。通过参与开源社区,用户可以共同改进 Cine Remote,使其功能更加强大,兼容性更广泛。


矩阵:你的图形学好朋友

本文旨在帮助初级图形程序员理解矩阵,避免被16个看似随机的数字所迷惑。文章通过形象化的方式,将矩阵与3D空间中的变换联系起来,帮助读者理解矩阵的实际意义。

文章的核心思想是将 OpenGL 矩阵视为一个 4x4 的数组,并将其分解为四个列向量。对于只处理刚体的矩阵,可以忽略最后一行 (0, 0, 0, 1)。右边一列的前三个元素代表平移,而前三列的前三个元素则代表旋转。理解这些数字的关键在于想象一个位于原点的单位立方体,观察经过矩阵变换后,立方体的坐标轴发生了怎样的变化。例如,(1,0,0) 变换后的坐标就是 (m[0], m[1], m[2])。通过这种方式,可以直观地理解矩阵所代表的旋转和平移。

文章还介绍了如何利用矩阵实现缩放、拉伸和错切等效果。关键仍然是想象单位立方体的坐标轴如何变化,并将这些变化写入矩阵。文章还提到了单位矩阵,它不进行任何变换,是理解矩阵概念的基础。总而言之,文章强调以图形化的方式理解矩阵,避免陷入复杂的数学公式,从而更轻松地掌握矩阵在图形编程中的应用。

评论区中,有人认为文章将线性代数的概念描述得过于简单,仿佛是作者自己独立发现的,而实际上这些都是数学的基础知识。也有人指出,矩阵在内存中的布局方式并没有数学上的必然性,只是 OpenGL 的一种约定。还有人对文章的标题产生了误解,以为会涉及到其他领域的内容。


美国创新引擎:科学研究与初创企业的关系

本文探讨了科学研究在美国创新生态系统中的核心作用,以及科学家、工程师、企业家和风险投资家如何共同推动经济发展和技术进步。

文章首先区分了科学家、工程师、企业家和风险投资家的角色。科学家探索事物运作的原理,通过实验验证假设,推动人类知识进步。科学家分为理论研究者和实验研究者,前者构建模型和理论,后者设计实验验证理论。基础科学旨在探索自然规律,而应用科学则将基础科学的发现应用于实际问题。文章强调,美国在二战后将研发资金投入大学,而非仅限于政府实验室,这一独特举措使其在科学和发明领域占据主导地位。20世纪,企业研发中心也曾是基础研究的重要场所,但随着时代发展,研究型大学逐渐取代企业,成为基础研究的主要阵地。美国拥有542所研究型大学,这些大学的科研人员通过实验、发表论文、申请专利等方式创造新知识,并获得政府、基金会和企业的资助。文章还提到,虽然20世纪应用科学家不直接创办公司,但21世纪,特别是在生命科学领域,越来越多的应用科学家从实验室中孵化出初创企业。

由于文章没有评论内容,因此无法进行评论分析。


智能手机与专注当下:如何在数字时代保持临在感

这篇文章探讨了现代人过度依赖智能手机的问题,以及如何通过一些策略减少手机使用,从而更专注于现实生活,提升幸福感。

作者首先引用数据指出,人们每天花费大量时间在手机上,这占据了他们大部分的空闲时间。作者表达了自己对于这种现象的担忧,认为智能手机虽然提供了便利,但也带来了过多的干扰,使人难以专注于当下。为了解决这个问题,作者分享了自己管理数字生活的经验,例如关闭通知、放弃社交媒体等。他将手机比作“口袋里的饼干”,强调我们需要避免让自己沉迷于无意义的娱乐中。

作者还提到,无聊是创造力和自我反思的温床,而智能手机却让人不断寻求刺激,避免无聊。他分享了自己通过关闭YouTube观看历史、使用广告拦截器等方法,减少在手机上浪费的时间。最终,作者认为,虽然这些方法可能看起来有些极端,但它们确实帮助他成为了一个更专注、更乐观的人,拥有更多的时间去享受生活。总而言之,作者提倡通过主动管理数字生活,减少对智能手机的依赖,从而更好地体验生活的美好。

由于没有评论内容,这里跳过评论分析。


Jeep 4xe 混动车型因软件更新变砖

Jeep Wrangler 4xe 混动车型车主在周末安装 OTA 软件更新后被困,原因是汽车制造商推送了一个 Uconnect 信息娱乐系统的远程信息处理更新,但该更新显然尚未准备就绪,导致汽车在行驶时失去动力并最终抛锚。

这次出问题的软件更新并非立即让车辆报废,而是在行驶过程中出现故障,这使得问题更加严重。部分车主在论坛、Reddit 帖子和 YouTube 上详细描述了他们的遭遇。一些车主在离家很近的地方以低速行驶时遇到了问题,但也有人声称在高速公路上经历了动力系统故障。

在收到问题报告后,Jeep 已经撤回了该更新,但此时软件已经下载到许多车主的汽车上。Jeep 的一名代表表示,他们正在积极努力尽快发布修复程序。同时,建议已经下载更新的车主忽略它,不要安装。目前尚不清楚有多少车辆受到了影响。

这次事件再次凸显了 OTA 软件更新的风险,尤其是在汽车等复杂系统中。虽然 OTA 更新可以方便地为车辆添加新功能和修复错误,但如果更新没有经过充分的测试,可能会导致严重的问题。车主在安装 OTA 更新之前应该谨慎,并确保他们了解更新可能带来的风险。

目前没有评论区内容。


Wireguard FPGA:使用开源工具在 FPGA 上实现全速 VPN

该项目旨在利用低成本 Artix7 FPGA 和开源工具链,实现 Wireguard VPN 的全速硬件加速,为追求安全和隐私的用户提供一个开放的审查平台。该项目目标是弥补现有 Wireguard 软硬件方案的不足,提供一个真正开源且经济高效的硬件 VPN 解决方案。

Wireguard 作为一种现代、安全的数据隧道和加密方法,正逐渐取代 OpenVPN/IPSec 等传统方案。虽然已经存在 Wireguard 的软硬件实现,但软件性能通常低于线路速度,而现有的硬件方案又过于昂贵,并且基于专有的闭源 IP 模块和工具。该项目旨在通过使用 SystemVerilog HDL 编写的 FPGA 开源实现来弥补这些差距。

该项目选择 Alinx 低成本开发板,无需 PC 主机即可独立运行,并使用 Artix7 FPGA,该 FPGA 受益于开源工具的支持。所有固件均采用通用的 Verilog/System Verilog 编写,力求实现真正的开源。

该项目也面临诸多挑战,包括软硬件划分、接口、交互和工作负载分配,软硬件协同开发、集成和调试,以及实际高速测试。此外,SystemVerilog 的开源工具支持程度,以及这些工具的质量也存在不确定性。项目还面临资金方面的挑战。

该项目分为多个阶段,目前处于第一阶段,主要目标是概念验证,并非完整的产品。后续阶段将致力于提高效率和整体可用性,例如增加通道数量、使用 GUI 应用程序简化管理等。该项目借鉴了 Blackwire 项目的经验,Blackwire 是一个基于 AMD/Xilinx AlveoU50 PC 加速卡 (SmartNIC) 的 100Gbps Wireguard 硬件实现,但其硬件平台昂贵,且使用 SpinalHDL 编写,并依赖闭源 Vivado 工具链。

该项目参考了多个开源项目,包括 Netbird、Tailscale、Linux Kernel 等 Wireguard 软件实现,以及 Blackwire 100Gbps Wireguard、Corundum 开源 FPGA-NIC 平台、ChaCha20-Poly1305 开源加密 RTL 等硬件项目。

目前该项目仍在进行中,各阶段的任务完成情况会及时更新。


arXiv 论文揭示 LaTeX 源码中的信息泄露风险

这篇 arXiv 论文《You Have Been LaTeXpOsEd: A Systematic Analysis of Information Leakage in Preprint Archives Using Large Language Models》深入探讨了预印本平台(如 arXiv)上 LaTeX 源码可能导致的严重信息泄露问题。论文通过大规模安全审计,分析了超过 1.2TB 的 arXiv 提交数据,揭示了隐藏在非引用文件和 LaTeX 注释中的敏感信息。

研究团队开发了一个名为 LaTeXpOsEd 的四阶段框架,该框架结合了模式匹配、逻辑过滤、传统信息收集技术以及大型语言模型 (LLM),用于发现这些隐藏的泄露信息。为了评估 LLM 在秘密检测方面的能力,他们还创建了一个名为 LLMSec-DB 的基准测试,并在 25 个最先进的模型上进行了测试。

分析结果令人震惊,发现了大量的个人身份信息 (PII) 泄露、带有 GPS 标签的 EXIF 文件、公开的 Google Drive 和 Dropbox 文件夹、可编辑的私有 SharePoint 链接、暴露的 GitHub 和 Google 凭据以及云 API 密钥。此外,研究还发现了作者之间的保密通信、内部意见分歧以及会议提交凭据,这些信息的泄露可能对研究人员和机构的声誉造成严重损害。

论文作者呼吁研究界和预印本平台运营者立即采取行动,弥补这些隐藏的安全漏洞。为了支持开放科学,他们公开了研究中使用的所有脚本和方法,但出于伦理考虑,隐瞒了可能被滥用的敏感发现。项目源代码和相关材料已在 GitHub 上发布。

总而言之,这项研究强调了预印本平台在加速科学交流的同时,也带来了潜在的安全风险,并提出了利用 LLM 进行大规模安全审计的新方法。对于研究人员和平台运营者来说,了解这些风险并采取适当的保护措施至关重要。


CLOCKSS:学术出版机构和图书馆合作的数字 preservation 服务

CLOCKSS (Controlled LOCKSS) 是一个由学术出版机构和研究图书馆共同合作的全球性数字 preservation 服务,旨在确保学术成果的长期保存。该组织通过其获奖的 LOCKSS 软件,为图书馆和出版商提供服务,保证学术成果的安全可靠 preservation。

CLOCKSS 的核心在于构建一个可持续的在线 archive,确保数字学术成果的长期存在。只有在发生特定的“触发”事件时,用户才能访问 archive 中的数字内容。该组织在全球领先的研究图书馆设有 12 个 archive 节点,保存期刊文章、书籍以及相关数据、图像、软件、视频和网络 archive 的权威版本。

CLOCKSS 强调其 preservation 内容由研究图书馆选择,并由信誉良好的学术出版商进行质量保证。他们利用 LOCKSS 技术以原始数字格式保存学术内容,并将其迁移到新格式,以确保内容始终可用。该组织还为所有触发的出版物分配 Creative Commons Open Access 许可,以确保它们始终保持开放并供所有人使用。

CLOCKSS 与图书馆、出版商以及学术界的其他关键利益相关者合作,通过其可信赖的数字 preservation 解决方案来降低学术内容面临的风险。 通过共同努力,可以降低所有人的成本和压力。该组织由图书馆和出版商组成的董事会管理,是一个财务安全、独立的非营利组织。


MPTCP:Linux 上的多路径 TCP 技术

MPTCP (Multipath TCP) 是对标准 TCP 的扩展,它允许多个网络接口同时用于单个连接,从而实现带宽聚合、链路切换和最佳路径选择。该技术通过创建多个子流 (subflow),每个子流都是一个标准的 TCP 连接,来实现数据在多个接口上的传输。

MPTCP 的核心概念包括:

  • 子流 (Subflow): 通过不同的网络接口建立的 TCP 连接,用于数据传输。
  • 路径管理器 (Path Manager): 负责子流的创建、删除和地址通告。Linux 内核提供了两种路径管理器:内核态和用户态,用户态路径管理器允许更灵活的连接管理策略。
  • 数据包调度器 (Packet Scheduler): 决定如何将数据包分配到不同的子流上,以优化带宽利用率或降低延迟。

MPTCP 的主要特性包括:

  • 支持 IPPROTO_MPTCP 协议,允许应用程序创建 MPTCP 套接字。
  • 如果对端或中间设备不支持 MPTCP,可以回退到标准 TCP 连接。
  • 提供内核态和用户态两种路径管理方式。
  • 支持常用的 TCP 套接字选项。
  • 提供调试功能,包括 MIB 计数器、诊断支持和跟踪点。

MPTCP 提供了多种使用场景,例如:

  • 无缝切换 (Seamless handovers):在不同网络路径之间切换时保持连接不中断,例如在智能手机上从 Wi-Fi 切换到蜂窝网络。
  • 最佳网络选择 (Best network selection):根据延迟、丢包率、成本或带宽等条件选择最佳可用路径。
  • 网络聚合 (Network aggregation):同时使用多个网络路径以提高吞吐量,例如将固定网络和移动网络组合在一起以更快地发送文件。

该项目由 MPTCP 社区维护,包括内核开发、Multipath TCP Daemon (mptcpd) 和 Packetdrill 等。mptcpd 守护程序可以实现完整的用户空间路径管理,或控制内核中的路径管理器。iproute2 和 Network Manager 等项目也集成了 MPTCP 相关的功能。


加州即将停止使用煤炭发电

加州计划在下个月停止从犹他州 Intermountain 发电厂购买电力,这标志着该州在减少对煤炭依赖方面迈出了重要一步。此举被认为是加州应对气候变化的关键举措之一,象征着该州在能源转型上的决心。

Intermountain 发电厂是加州最后一个主要的煤炭电力来源。停止购买该电厂的电力意味着加州将基本结束对煤炭发电的依赖。加州一直在积极推动可再生能源的发展,例如太阳能、风能和地热能,以取代传统的化石燃料。尽管加州在可再生能源方面取得了显著进展,但完全摆脱化石燃料仍然面临挑战。

加州能源结构的转型也引发了一些讨论,包括电力供应的稳定性和成本问题。有人担心,在完全过渡到可再生能源之前,加州可能会面临电力短缺或电价上涨的风险。同时,也有人认为,通过技术创新和政策支持,加州可以克服这些挑战,实现可持续的能源未来。


自制互联网天气站:低成本方案

本文介绍了一种低成本的自制互联网天气站方案,适合对DIY和数据共享感兴趣的科技爱好者。作者利用现成的廉价硬件和开源软件,将一个简单的无线温度计连接到互联网,并通过APRS和Mastodon分享天气数据。

文章详细介绍了搭建该天气站所需的硬件和软件。硬件方面,作者选择了一个Temu上的无线室内/室外温度计和一个RTL-SDR接收器。软件方面,使用了rtl_433来解码433MHz频段的信号,并用PowerShell编写脚本来解析数据并上传到APRS和Mastodon。文章还提供了PowerShell脚本的链接,方便读者参考。

作者还分享了如何配置rtl_433,使其输出JSON格式的数据,并通过UDP发送到本地端口。此外,还介绍了如何使用aprs-weather-submit工具将天气数据发送到APRS服务器,以及如何创建一个Mastodon机器人账号来发布天气信息。为了避免刷屏,作者还在脚本中加入了限制,确保每小时最多发布一次。

通过这个项目,作者展示了如何利用廉价的硬件和开源软件,将一个简单的温度计变成一个功能完善的互联网天气站,并与世界分享数据。这个项目不仅具有实用价值,也体现了业余无线电爱好者的黑客精神。


现代 Linux 游戏开发工具指南

本文深入探讨了 Linux 系统下游戏开发所使用的现代工具,为游戏开发者提供了一份详尽的参考。文章旨在帮助开发者了解并掌握这些工具,从而提升在 Linux 平台上进行游戏开发的工作效率。

文章首先概述了 Linux 在游戏开发中的优势,例如其开源性、灵活性以及强大的命令行工具。随后,文章详细介绍了各种现代 Linux 工具,包括但不限于性能分析工具,如 perfFlameGraph,它们可以帮助开发者定位性能瓶颈并进行优化;容器化技术,如 Docker,用于创建一致的开发和部署环境;以及自动化构建工具,如 Make 和 CMake,用于简化构建流程。此外,文章还提到了文本处理工具,例如 sedawkgrep,它们在处理游戏资源和脚本时非常有用。对于调试,文章推荐了 GDB 和 LLDB,并介绍了它们在游戏开发中的应用技巧。最后,文章还涉及了版本控制系统 Git,强调了其在团队协作中的重要性。总而言之,文章覆盖了游戏开发中常用的各类工具,并提供了实际的应用示例,帮助开发者更好地理解和使用它们。


CRT 显示器、像素艺术和信号质量:再谈“桃子”梗图

本文探讨了 CRT 显示器对像素艺术的影响,以及流行的“桃子”梗图如何误导了人们对 CRT 显示效果的认知。文章强调了信号质量的重要性,并展示了不同连接方式(VGA、复合、RGB)下,同一图像在不同显示器上的效果差异。

作者首先回顾了自己之前关于 CRT 屏幕对像素艺术影响的文章,并指出其中关于信号质量的观点可能表达不够清晰。他以“桃子”梗图为例,批评这种将放大后的像素精灵图与 CRT 屏幕照片进行对比的方式,认为这种对比忽略了照片的失焦、观看距离以及连接方式等重要因素。作者指出,该梗图通常使用 S-Video 或复合视频信号,这些信号质量不如 RGB。

为了更直观地展示信号质量的影响,作者使用 Amiga 1200 作为图像源,在同一台 LCD 电视上分别通过 VGA 和复合连接显示“桃子”精灵图。结果显示,复合连接导致图像模糊、色彩溢出,以及细节丢失。随后,作者又在自己的 Commodore 1084S CRT 上进行了类似的实验,同样证实了 RGB 连接能够呈现更清晰的像素和更高的色彩还原度。

文章还展示了通过 RGB SCART 连接到 47 英寸 Philips 平板电视上的“桃子”精灵图,并观察到 A/D 转换伪像。此外,作者还分享了 Netflix 字幕在 LCD 显示器上的照片,旨在说明通过近距离摄影很难准确地传达屏幕的观看体验。文章最后以 Metal Slug 和 Sonic 瀑布为例,强调了 CRT 显示器在呈现特定视觉效果方面的优势,但同时也指出,即使是高质量的照片也无法完全捕捉到 CRT 屏幕的独特魅力。

总而言之,文章旨在纠正人们对 CRT 显示效果的一些误解,强调信号质量的重要性,并提醒人们在评估 CRT 显示器时要考虑观看距离和连接方式等因素。


MicroPythonOS:面向微控制器的类Android操作系统

MicroPythonOS 是一款轻量级操作系统,专为 ESP32 等微控制器和桌面系统设计,提供类似 Android 的触摸屏 UI 和应用商店。它具备快速、通用等特性,并支持 OTA 更新。

这款操作系统基于 MicroPython,易于开发,并具有跨平台兼容性。它针对资源受限的设备进行了优化,启动速度快,支持触摸屏和手势操作。MicroPythonOS 的关键特性包括:支持触摸屏、IMU 和摄像头,以及快速轻量级的性能。开发者可以利用它构建智能家居控制器等物联网设备,创建交互式教育工具,开发去中心化支付系统,设计便携式触摸屏设备,驱动机器人,制作智能穿戴设备,以及轻松进行 DIY 项目原型设计。

评论区对 MicroPythonOS 提出了不同的看法。有人关注功耗问题,特别是对于使用太阳能和电池供电的设备,希望了解该系统在功耗方面的表现。另一些人则对项目的可靠性表示担忧,因为在资源受限的环境中使用堆可能会导致内存碎片问题。还有人质疑该系统是否真的适用于微控制器,认为它可能更适合性能更强的设备。同时,也有用户提到了类似的项目 MicroHydra,并建议开发者修复 REPL 应用的 bug。此外,有人询问该系统是否能在 M5Stack Tab5 或 CARDPUTER 上运行,还有人对其背后的团队表示担忧,认为其隐藏项目成员信息和使用离岸主机是为了规避版权问题。当然,也有人认为 MicroPythonOS 是一个学习嵌入式系统的好平台,即使它可能不适用于所有生产环境。最后,有人希望看到该系统的 WASM 版本,以便支持更多编程语言。


Tauri 绑定 Python:Pyo3 实现

pytauri 是一个通过 Pyo3 实现的 Python 绑定,用于 Tauri 框架。Tauri 是一个使用 Web 技术构建跨平台桌面应用的框架,而 pytauri 使得开发者可以使用 Python 来编写 Tauri 应用的后端逻辑。

这个项目允许开发者利用 Python 的强大功能和丰富的库生态系统,同时享受 Tauri 带来的跨平台优势和性能。它使用 Apache-2.0 许可,是一个开源项目,目前在 GitHub 上有 645 个 star 和 11 个 fork,表明它在社区中具有一定的受欢迎程度。通过 pytauri,开发者可以创建混合应用,将 Python 的后端能力与 Web 前端结合起来。该项目还包含 13 个 issue 和 15 个 pull request,显示着积极的开发和维护状态。此外,项目还包含 Actions 和 Projects,表明了其自动化构建和项目管理实践。

该项目提供了一套工具和接口,使得 Python 代码可以与 Tauri 应用的前端进行交互,从而实现诸如数据处理、业务逻辑和系统集成等功能。通过 Pyo3,pytauri 实现了 Python 和 Rust 之间的桥梁,使得两者可以高效地协同工作。


Ask HN: 大家都在做什么?(2025年10月)

这期“Ask HN”汇集了各种有趣的个人项目,从食品安全检测到开发工具,再到算法学习和医疗AI应用,涵盖了技术领域的多个方面。 很多人都在利用业余时间构建有价值的工具和资源,解决实际问题,并乐在其中。

具体来说,有人在做一个名为 Laboratory.love 的项目,旨在通过众筹的方式,对食品中的内分泌干扰物进行独立实验室检测,提高供应链的透明度。 还有人开发了 MAKID,一个与文件系统无缝集成的 Ableton Live 项目管理器。 另一个人构建了一个免费的电子签名工具 Inkless,解决了 DocuSign 价格高昂的问题。 还有人致力于降低合成生物学中酶的成本,例如 PCR 反应所需的酶。 此外,还有开发者在业余时间开发 3D 体素游戏引擎,并编写元编程语言来生成编辑器 UI。 还有开发者构建了一个本地医疗 AI 应用,用于分析医学图像并生成诊断报告。 还有人在编写一本关于算法的书,旨在实现 1000 种算法,并提供测试用例、Python 和 C 语言的实现以及 Lean 中的形式化证明。 此外,还有人正在开发一个开源的 Heroku/Fly.io/Render 替代方案 Canine,构建在 Kubernetes 之上。

评论区里,大家分享了各自正在进行的项目,展现了技术社区的多样性和创造力。 很多人都在关注解决实际问题的项目,例如食品安全、开发效率和医疗诊断。 也有人关注基础技术和教育资源,例如算法学习和开源 PaaS 平台。 评论中还提到了使用embedding vectors和Hungarian算法实现高质量的“语义软连接”的新方法。 总体而言,评论区反映了技术社区积极探索和创新的精神。


使用 Shell 脚本 gsay 从 Google 获取英语单词发音

本文介绍了一个名为 gsay 的简单 Shell 脚本,它可以从 Google 搜索中抓取英语单词的发音,并支持英式和美式发音。该脚本可以查询 2020 年和 2024 年的音频文件,并默认启用缓存以提高效率。gsay 依赖于 curl 和一个无头 mp3 播放器(如 ffplaympvpw-play)。

该脚本通过模拟用户在 Google 上搜索单词时的行为,提取 Google 搜索结果页面顶部 "answer box" 中显示的音频文件。用户可以使用不同的选项来指定所需的数据库年份(2020 或 2024)和口音(gb 或 us)。 脚本还允许只打印发音链接而不播放音频,并禁用缓存模式。

文章还提到,早期版本的脚本支持抓取模式,但由于 Google 的限制,目前已不可用。此外,作者还提供了一些使用示例,例如批量获取 Oxford 3000 词汇表中的单词发音。

评论区中,有用户询问 Google 发音的来源,并推荐了剑桥学习词典的发音。 另一位用户分享了一个类似的浏览器脚本,可以快速检查美式和英式发音,该脚本也依赖于 Google 提供的 Oxford 词典的授权副本。 这种基于浏览器的方法提供了一种无需安装脚本即可访问发音的替代方案。


使用树莓派和 Twilio 构建儿童友好型国际电话系统

本文介绍了如何使用树莓派、Twilio 和现成的硬件组件构建一个名为 Téléfonefix 的儿童友好型电话系统,该系统允许儿童安全地与本地和国际的亲戚通话。该系统的主要特点是不使用屏幕,而是使用物理电话,并根据规则集允许或拒绝呼叫,例如只允许呼叫成人控制的号码,并考虑时区和作息时间。

文章详细介绍了 Téléfonefix 的硬件和软件架构。硬件方面,需要一个带 RJ11 接口的电话(作者使用了一款老年人电话,方便儿童使用速拨键),一个模拟电话适配器(Grandstream HT801),以及一个运行 Asterisk 软件 PBX 的树莓派。软件方面,使用 Twilio 购买电话号码,并创建一个 Elastic SIP Trunk。

文章还提供了使用 Ansible 自动化配置 Téléfonefix 的方法,包括配置 DHCP 服务器为 HT801 分配固定 IP 地址,安装 Docker 并部署 Asterisk 容器,以及配置 Asterisk 的 extensions.conf 文件来处理呼叫路由和号码转换。其中,allo-wed 脚本用于根据配置文件将速拨键号码转换为实际电话号码,并根据规则集判断是否允许呼叫。

最后,文章还介绍了如何生成 Asterisk 语音提示,以便在呼叫连接、不允许呼叫或线路繁忙时向用户播放自定义语音消息。通过这种方式,Téléfonefix 可以为儿童提供一个安全、易用且有趣的国际通话体验。


内存安全的两条路径:CHERI 与 OMA

本文探讨了应对日益严峻的网络安全威胁的两种硬件架构方案:CHERI(Capability Hardware Enhanced RISC Instructions)和 OMA(Object Memory Architecture)。这两种方案都旨在从硬件层面解决内存安全问题,但实现路径有所不同。

文章指出,当前的网络安全形势十分严峻,网络攻击造成的经济损失巨大,甚至造成了人员伤亡。Verizon 2025 年的数据泄露调查报告显示,凭证滥用和漏洞利用仍然是主要的攻击手段,而大约 70% 的软件漏洞都源于内存安全问题。传统的软件修补方式效果不佳,而重写所有软件为内存安全语言又不切实际。

CHERI 通过扩展现有的指令集架构,引入了硬件强制执行的 Capabilities 概念。一个 CHERI Capability 是一种胖指针,它不仅包含内存地址,还包含边界信息、权限和有效性元数据。每次内存访问都会根据这些约束进行硬件检查,从而在漏洞被利用之前捕获违规行为。CHERI 提供了强大的引用和空间安全保证,同时保持了与现有分页内存架构的兼容性。但 CHERI 的 Capability 较大,在一个 64 位系统上,一个 CHERI 指针需要 129 位,这会带来一些限制。

OMA 由布里斯托大学率先提出,目前正由 Doubtless Computing 进行商业化。与 CHERI 不同,OMA 采用了不同的方法来实现内存安全。文章深入探讨了这两种架构的差异,并强调了理解这些差异的重要性,因为它们将影响未来几十年计算的安全性和性能特征。

总而言之,文章强调了内存安全问题的重要性,并介绍了两种有希望的硬件解决方案,为读者理解未来计算安全的发展方向提供了有价值的见解。


探索历史人物:英国宫廷侏儒杰弗里·哈德森

这篇文章介绍了杰弗里·哈德森,一位生活在17世纪英国的著名侏儒,他在亨利埃塔·玛丽亚王后的宫廷中担任要职。哈德森的一生充满了戏剧性,从他早年的崛起,到在宫廷中的生活,再到后来的内战、决斗、被奴役以及最终的贫困和死亡,都极具传奇色彩。

哈德森的职业生涯始于白金汉公爵的家庭,在那里他作为一种“奇观”被展示。他身高仅18英寸,被装在一个馅饼里献给王后,这使他一举成名。在王后的宫廷中,哈德森不仅是玩伴,还是一个备受宠爱的人物,经常穿着华丽的服装,并在各种娱乐活动中扮演角色。

然而,哈德森的生活并非一帆风顺。随着内战的爆发,宫廷解散,哈德森也失去了庇护。后来,他卷入了一场决斗,并因此被迫逃离英国。在海上,他被海盗俘虏并被卖为奴隶,直到后来才被赎回。晚年的哈德森生活贫困,最终在默默无闻中去世。

尽管哈德森身材矮小,但他的一生却充满了冒险和挑战。他不仅是宫廷中的一个独特人物,也见证了英国历史上一个动荡的时期。他的故事反映了那个时代的社会风貌和个人命运的无常。


Emacs agent-shell:通过 ACP 协议与 AI 智能体交互

本文介绍了 agent-shell,一个基于 Emacs 的原生 shell,它利用 ACP(Agent Client Protocol)协议实现与各种 AI 智能体的交互。agent-shell 基于 comint-mode,提供了一个统一的 Emacs 缓冲区界面,让用户可以像使用其他 Emacs 缓冲区一样与 AI 智能体交互,无需在字符和行模式之间切换。

文章强调了 agent-shell 的智能体无关性,通过 ACP 协议,用户只需配置客户端即可与不同的智能体通信,享受一致的体验。文章展示了如何配置 Gemini CLI 和 Claude Code 智能体,并鼓励用户尝试其他智能体并提交 pull request。

为了方便开发,作者还添加了流量缓冲区,用于检查 ACP 协议的通信流量,并支持保存和回放流量,以便在不依赖付费智能体的情况下进行调试和测试。文章还提到了未来的一些计划,例如改进用户体验,完善 ACP 协议的支持,以及开发一个基于 n/p 键的快速 diff 缓冲区。

agent-shellacp.el 库都已在 GitHub 上发布。作者呼吁用户试用这些工具,并根据需要提交错误报告或功能请求。同时,作者也希望用户能够通过赞助来支持这些项目的开发,因为这需要时间和金钱。

评论区里,用户 @kleinishere 赞扬了 Xenodium 对 Emacs 社区的贡献,并推荐了他的博客和 iOS 应用 Journelly。作者 @xenodium 补充说明了 agent-shell 可以与 Claude Code, Gemini CLI, Codex, 和 Goose 等智能体交互,并再次呼吁大家赞助该项目。这些评论反映了社区对 Emacs 工具和 AI 智能体集成的兴趣,以及对开发者贡献的认可和支持。


2025年度鸟类摄影师大赛:规划与耐心的完美结合

2025年度鸟类摄影师大赛展示了摄影师们为捕捉世界各地鸟类的精彩瞬间所付出的努力,其中Liron Gertsman拍摄的日食背景下的军舰鸟照片荣获大奖。

本次大赛收到了来自全球摄影师的超过33000份参赛作品,还包括三个青少年组别,大赛不仅关注摄影艺术,还将超过5000英镑捐赠给了Birds on the Brink,用于支持基层鸟类保护工作。获奖作品涵盖了城市鸟类、最佳肖像、鸟类栖息地等多个类别,展现了鸟类的多样行为和生存环境,例如Steffen Foerster拍摄的血淋淋的巨海燕,以及Luca Lorenz在瑞士阿尔卑斯山暴风雪中拍摄的高山兀鹫,Benoit Henrion拍摄的栖息在法国教堂里的谷仓猫头鹰,还有Baiju Patil在印度万寿菊上飞舞的燕子,每一幅作品都令人印象深刻。Liron Gertsman获奖作品,展现了他花费一年多的时间计划,并在墨西哥锡那罗亚海岸进行了一周的实地考察,最终捕捉到军舰鸟飞越日全食的瞬间。其他获奖作品同样精彩,例如Steffen Foerster拍摄的“血腥海燕”,展现了海鸟饱餐后的场景,以及Sasha Jumanca拍摄的“在野生花丛上优雅飞行”的欧洲蜂鸟。

你可以在大赛网站上欣赏所有获奖作品,并购买由普林斯顿大学出版社出版的年度最佳照片集,同时,2026年的比赛已经开放报名。


HTTP/3 详解:一篇深入解析 HTTP/3 协议的指南

本文档 "HTTP/3 explained" 旨在深入浅出地介绍 HTTP/3 协议及其底层 QUIC 协议,涵盖了从 QUIC 的设计动机到 HTTP/3 的具体实现等多个方面。它不仅解释了为什么需要 QUIC 和 HTTP/3,还详细阐述了它们的工作原理、关键特性以及与 HTTP/2 的比较。

文章首先探讨了 QUIC 协议出现的原因,包括解决 TCP 的队头阻塞(Head-of-Line Blocking)问题、减少延迟、以及克服协议僵化(Ossification)等挑战。QUIC 基于 UDP,并集成了 TLS 1.3,从而在提供可靠传输的同时,也保证了安全性。文章还详细介绍了 QUIC 的连接管理、流(Streams)的概念、以及 0-RTT 连接等特性,这些特性共同作用,旨在提升网络传输的效率和用户体验。

接下来,文章深入探讨了 HTTP/3 协议本身,包括如何通过 Alt-Svc 头部进行协议升级、HTTP/3 如何利用 QUIC 的流来实现多路复用、以及 HTTP/3 的优先级控制和服务器推送等功能。此外,文章还对比了 HTTP/3 和 HTTP/2 的差异,并讨论了 HTTP/3 面临的一些常见批评。

最后,文章还提供了 HTTP/3 和 QUIC 相关的规范链接,并展望了 QUIC 的未来发展方向。总而言之,这份文档为想要了解 HTTP/3 和 QUIC 协议的开发者和技术爱好者提供了一个全面而深入的资源。


正式验证的代码在实践中出错的三种方式

本文探讨了即使经过形式验证的代码,在实际应用中仍然可能出现错误的三种常见原因,强调了“正确”的定义在形式化方法中的特殊性。

文章首先指出,在形式化方法中,“正确”指的是代码符合规范 (spec)。这个规范是对代码属性的更高层描述,通常无法直接实现。作者通过 inc :: Int -> Int 的 Haskell 例子,说明类型签名本身就是一种规范,但形式验证可以验证类型检查器无法验证的任意属性,例如 inc(x) > x。即使代码通过了形式验证,仍然存在出错的可能性。

第一种可能性是证明无效,也就是证明过程本身存在问题,无法证明代码确实符合规范。这种情况在纸笔验证中比较常见,但在形式验证中相对罕见。不过,如果定理证明器本身存在 bug,或者为了方便而使用了“假设此语句为真”的特性,并且编译器允许编译带有证明假设的代码,那么仍然可能编译出不正确的代码。

第二种可能性是属性错误,即代码符合了给定的规范,但规范本身并没有涵盖所有需要的属性。Leftpad 的例子就属于这种情况,它证明了 len(leftpad(c, n, s)) == max(n, len(s)),但这只是视觉对齐的一个粗略代理。更强的属性,例如"leftpad(c, n, s) 将占用屏幕上的 n 个空格或 s 占用的字符数(如果超过 n)",可能难以证明、表达,或者被开发者忽略。

第三种可能性是假设错误,这是最重要也是最微妙的错误来源。大多数属性的证明都基于一定的假设,如果这些假设不成立,那么证明的有效性也会受到影响。例如,二分查找只有在输入列表已排序的情况下才能正确工作。形式验证还会引入环境假设,例如内存是否充足、变量是否被并发修改、外部服务是否可用等。如果这些环境假设不成立,代码仍然可能出错。

总而言之,形式验证可以提高代码的可靠性,但不能保证代码完全没有 bug。我们需要仔细定义规范,并确保所有相关的假设都成立,才能最大程度地发挥形式验证的优势。


2025 年诺贝尔经济学奖揭晓,表彰创新驱动的经济增长研究

2025 年的诺贝尔经济学奖颁给了三位经济学家:Joel Mokyr, Philippe Aghion 和 Peter Howitt,以表彰他们对创新驱动的经济增长的卓越研究。Mokyr 获奖是因为他深入研究了技术进步如何促进经济的持续增长。Aghion 和 Howitt 则因为他们提出的“创造性破坏”理论而共同获奖,该理论解释了创新如何通过不断淘汰旧技术和产业来推动经济发展。

Mokyr 的研究重点在于理解技术变革的文化和制度基础。他认为,一个社会对知识的获取、传播和应用方式,直接影响了技术进步的速度和方向。他特别强调了“有用知识”的概念,即那些能够实际应用于生产和服务中的知识。Mokyr 的研究表明,一个开放、多元和鼓励创新的社会,更有可能实现持续的技术进步和经济增长。

Aghion 和 Howitt 的“创造性破坏”理论,强调了创新过程中的破坏性力量。他们认为,新的创新往往会取代旧的技术和产业,导致一些企业倒闭和工人失业。然而,这种破坏是经济增长的必要组成部分,因为它释放了资源,并为新的创新创造了机会。他们的理论还强调了政府在促进创新中的作用,例如通过提供研发资金、保护知识产权和鼓励竞争。

总而言之,今年的诺贝尔经济学奖表彰了对创新在经济增长中作用的深刻理解。三位获奖者的研究,不仅为我们理解经济发展的动力提供了重要的见解,也为政府制定促进创新和经济增长的政策提供了指导。他们的工作强调了技术进步、文化环境和市场竞争在推动经济繁荣中的重要性。



评论 0 条

暂无评论,来种下第一颗种子。