2024 10 15 HackerNews

2024-10-15 Hacker News Top Stories #

  1. Busy Status Bar 是一款生产力多工具设备,具有 LED 像素屏幕,可以显示个人忙碌消息,内置 Pomodoro 计时器和应用程序。
  2. Huly 平台是一个强大的框架,旨在加速商业应用程序的开发,包括 CRM 系统、项目管理、Chat 等。
  3. CRLF(回车换行)是计算机中表示换行的传统方式,但它已经成为一种过时的技术,使用单个换行字符(LF)就足够了。
  4. Colmi R02 是一款廉价的智能戒指/健身穿戴设备,内置多种传感器,包括加速度计、步数追踪、睡眠追踪、手势识别、心率(HR)和血氧(SPO2)。
  5. 西藏佛教资源中心(BDRC)致力于将西藏语言带入数字世界,最近,自由办公软件 LibreOffice 支持了西藏语言的一个重要特性:非常长的段落。
  6. Cloudflare 推出新版 Durable Object,采用 SQLite 作为存储引擎,实现低延迟和高性能。
  7. 高维空间的几何直觉往往与我们在三维空间中形成的直觉不同,高维单位球体的体积随着维度增加而趋向于 0,而集中度则使得球体的表面积几乎全部位于赤道附近。
  8. FM 广播通过改变载波波的频率来传递信号,而 AM 广播则通过改变载波波的幅度来传递信号,FM 广播可以更好地抵御噪声的影响。
  9. Restic 是一个现代的备份程序,可以备份您的文件,支持从 Linux、BSD、Mac 和 Windows 备份到多种存储类型,包括自托管和在线服务。
  10. Clipscreen 是一款简单的屏幕镜像工具,可以创建虚拟监视器,用于镜像屏幕的一部分,通过创建一个绿色矩形来高亮显示指定区域。

Busy Status Bar #

https://busy.bar/?hn

Busy Status Bar 是一款生产力多工具设备,具有 LED 像素屏幕。它可以显示个人忙碌消息,内置 Pomodoro 计时器和应用程序。完全可定制,开源,适合黑客使用。

产品特点

  • LED 像素屏幕显示个人忙碌消息
  • 内置 Pomodoro 计时器和应用程序
  • 完全可定制,开源,适合黑客使用
  • 支持 Wi-Fi 和蓝牙连接
  • 支持第三方应用程序和集成

应用程序和集成

  • 内置应用程序:时钟,天气,社交媒体统计等
  • 支持第三方应用程序和集成
  • 支持 Pomodoro 计时器和忙碌状态消息

开发者友好

  • 开放 HTTP API 和 SDK
  • 支持 Python,JavaScript 和 Go 语言
  • 支持 MQTT 和无供应商锁定

控制和设置

  • 物理按钮控制设备
  • 支持手动控制和远程控制
  • 支持设置 Wi-Fi 和蓝牙连接,屏幕亮度,音量等

其他特点

  • 支持 Windows,macOS 和 Linux 操作系统
  • 支持自定义忙碌状态消息和图像
  • 支持自动激活忙碌状态
  • 支持流媒体模式和录音模式

HN 热度 769 points | 评论 257 comments | 作者:aleksi | 8 hours ago #

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

  • 这是一个很好的想法,使用微控制器控制的 Andon 堆栈,通过颜色代码显示状态,可以简单、便宜地实现类似功能
  • 这个产品的设计很吸引人,但目前尚未准备好正式宣布
  • 怀疑是否为骗局时,不要盲目信任自称是某人并确认没问题的说法
  • Flipper Zero 的 CEO 通过 Keybase GPG 密钥验证了其 HN 账户的所有权,证明了其身份的真实性
  • 该产品不仅适用于 Pomodoro 技术,还可以作为其他用途的控制器,如控制电视、游戏计时器等
  • 添加 CO2、温度/湿度传感器会使产品更加实用,但可能会增加成本
  • 产品外观设计非常漂亮,但字体和复古风格的文本可以进一步优化
  • Keybase 虽然没有广泛流行,但可以作为验证身份的有效工具
  • 希望该产品能推出价格更低的套件版本,允许用户自行组装或使用 Flipper Zero 作为核心组件
  • 产品设计风格让人联想到 Teenage Engineering,外观看起来非常不错

Huly – Open-source project management platform #

https://github.com/hcengineering/platform

Huly 平台

Huly 平台是一个强大的框架,旨在加速商业应用程序的开发,例如 CRM 系统。该仓库包含多个应用程序,包括 Chat、项目管理、CRM、HRM 和 ATS。多个团队正在基于该平台构建产品,包括 Huly 和 TraceX。

自托管

如果您主要对自托管 Huly 感兴趣,而不是修改或贡献其开发,请使用 huly-selfhost。该项目提供了一种方便的方法来使用 Docker 托管 Huly,旨在易于使用和快速设置。探索此选项以在您自己的服务器上轻松使用 Huly。

前提条件 #

在继续之前,请确保您的系统满足以下要求:

  • Node.js(v20.11.0 是必需的)
  • Docker
  • Docker Compose

验证 #

要验证安装,请在终端中执行以下检查:

  • 确保 docker 命令可用:docker –version
  • 确保 docker compose 命令可用:docker compose version
  • 快速启动:sh ./scripts/fast-start.sh

安装 #

您需要 Microsoft 的 rush 来安装应用程序。

  • 全局安装 Rush:npm install -g @microsoft/rush
  • 导航到仓库根目录并运行以下命令:rush install
  • rush build
  • 或者,您可以执行:sh ./scripts/presetup-rush.sh

HN 热度 432 points | 评论 198 comments | 作者:blacktechnology | 20 hours ago #

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

  • 自托管需要对多个系统有深入了解,增加了复杂性
  • SQLite 和本地磁盘存储简化了自托管,但功能有限
  • 云服务提供简单强大的解决方案,但成本较高且数据存储在第三方
  • 同一代码库可以支持不同的部署选择,以适应不同的需求
  • 云服务管理了部分硬件和软件包,但仍有大量管理开销
  • SQLite 在单节点上可以处理大量用户,但需要优化和高效使用
  • 活跃用户数不能作为评估系统负载的通用单位,具体取决于应用特性
  • SQLite 读取性能优秀,但在写入和并发方面有限制

CRLF is obsolete and should be abolished #

https://fossil-scm.org/home/ext/crlf-harmful.md

关于 CRLF 的废除

CRLF(回车换行)是计算机中表示换行的传统方式,但它已经成为一种过时的技术。CRLF 的起源可以追溯到机械式电传打印机时代,当时需要使用两个字符(回车和换行)来表示换行。但是,现代计算机已经不再需要这种方式,使用单个换行字符(LF)就足够了。

然而,CRLF 仍然被广泛使用,尤其是在一些老式系统和协议中。例如,HTTP、SMTP 和 CSV 等协议都要求使用 CRLF 作为换行符。但是,这种做法已经成为一种不必要的复杂性,浪费了带宽和程序员的时间。

呼吁行动 q

为了简化计算机系统和协议,作者呼吁大家停止使用 CRLF,改用单个换行字符(LF)。具体来说:

  • 停止使用“linefeed”作为 U+000a 代码点的名称,改用“newline”。
  • 停止发送不必要的 CR 字符,只在需要覆盖当前行时使用 CR。
  • 即使在需要遵守老式协议时,也应该只发送 LF 字符,而不是 CRLF。
  • 修复软件以接受单个 LF 字符作为换行符,而不是要求 CRLF。

总之,CRLF 已经成为一种过时的技术,应该被废除。让我们一起努力,简化计算机系统和协议,减少不必要的复杂性。


HN 热度 402 points | 评论 251 comments | 作者:km | 1 day ago #

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

  • 更新遗留协议以使用 NL 可能会引入大量潜在错误,得不偿失
  • HTTP/1.1 设计时已考虑安全问题,使用 CRLF 是必要的,不应随意更改
  • SMTP 协议的情况与 HTTP 不同,更改行结束符可能导致更严重的问题
  • 许多主要网站的 HTTP 服务器已经广泛接受仅使用 0Ah 作为行终止符
  • 部分网站对 CRLF 和仅使用 LF 的请求响应不同,表明 CRLF 规范并未严格遵循
  • 更改现有实现的成本和投入远超预期,大多数公司不愿为此付出
  • HTTP 解析器必须严格遵循标准,以确保安全性和一致性,客户端可以发送非标准请求但需接受可能失败的风险

Python client for the $20 Colmi R02 smart ring #

https://tahnok.github.io/colmi_r02_client/colmi_r02_client.html

Colmi R02 智能戒指客户端

是什么

Colmi R02 是一款廉价(仅 20 美元)的智能戒指/健身穿戴设备,内置以下传感器:

  • 加速度计
  • 步数追踪
  • 睡眠追踪
  • 手势识别(可能)
  • 心率(HR)
  • 血氧(SPO2)

购买

您可以在 AliExpress 上购买。搜索“COLMI R02”,我从“Colmi 官方商店”购买的价格为 22 加元(含运费)。

逆向工程状态

  • 实时心率和 SPO2
  • 步数日志(仍然不完全理解如何分割一天)
  • 心率日志(也称为周期性测量)
  • 设置戒指时间
  • 设置 HR 日志频率
  • SPO2 日志
  • 睡眠追踪
  • “压力”测量

计划功能

  • 添加更多的 CLI 功能
  • 美观打印 HR 和步数
  • 将所有数据同步到文件或 SQLite 数据库
  • 简单的 Web 界面

入门

  • 使用命令行
  • 如果您不熟悉 Python,我强烈建议您安装 pipx。它专门用于管理旨在用作独立程序的 Python 包,并且可以确保您的计算机安全。安装后,您可以执行以下操作: pipx install git+ https://github.com/tahnok/colmi_r02_client
  • 扫描附近的戒指: colmi_r02_util scan
  • 获取实时心率: colmi_r02_client –address=70:CB:0D:D0:34:1C get-real-time-heart-rate

通信协议详细信息

  • 使用 BLE 与戒指通信
  • 服务 UUID:6E40FFF0-B5A3-F393-E0A9-E50E24DCCA9E
  • RX 特征:6E400002-B5A3-F393-E0A9-E50E24DCCA9E(写入)
  • TX 特征:6E400003-B5A3-F393-E0A9-E50E24DCCA9E(订阅并接收戒指响应)
  • 数据包结构:16 字节数据包,第一个字节为命令/标签/类型,最后一个字节为校验和/ CRC。

HN 热度 316 points | 评论 108 comments | 作者:tahnok | 22 hours ago #

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

  • 这款智能戒指的价格远低于 Oura,即使不可靠也值得一试
  • 公司不应出售需要订阅才能使用的设备,这实际上是租赁模式
  • 购买硬件并支付软件费用是合理的,类似汽车购买和维护分开收费
  • 华为手环 50 元的版本比 300-400 美元的 Oura 戒指更准确
  • 尽管 Oura 戒指在睡眠追踪方面表现不错,但其 SpO2 检测功能较差,可能误导用户忽视健康问题
  • Gadgetbridge 已支持 Colmi R02 智能戒指,为用户提供更多选择
  • 对于睡眠追踪,目前市场上只有 Apple Watch 和 Oura 戒指较为准确,但 Oura 的 SpO2 检测功能仍需改进
  • 支持开放硬件和软件以及不可撤销的使用许可,以确保用户权益
  • 虽然 Oura 戒指在某些方面表现良好,但其 SpO2 检测功能在检测睡眠呼吸暂停方面存在严重不足
  • Wellue 夜间脉搏血氧仪是检测睡眠时血氧水平的有效工具,推荐使用

Making the Tibetan language a first-class citizen in the digital world #

https://www.bdrc.io/blog/2024/10/10/tech-innovations-to-make-the-tibetan-language-a-first-class-citizen-in-the-digital-world/

西藏佛教资源中心(BDRC)致力于将西藏语言带入数字世界。最近,自由办公软件 LibreOffice 支持了西藏语言的一个重要特性:非常长的段落。西藏文本通常需要处理成长流的不间断文本,没有强制换行,有时长达数百或数千页。LibreOffice 是少数几个成熟且稳定的开源文字处理软件之一,适用于所有平台,包括 Linux。它对西藏研究和西藏社区很重要,因为它是免费和开源的。

2015 年,BDRC 的首席技术官埃里·鲁克斯(Elie Roux)报告了这个问题,但由于干预 LibreOffice 的代码是一个大项目,需要几周的研究和开发,所以没有进展。直到最近,开发人员乔纳森·克拉克(Jonathan Clark)解决了这个问题!像龙钦巴(Longchenpa)的《Yishindzö》这样的长文本,现在可以快速打开和编辑。该文本由 153 页的字母大小的段落组成,转换为 PDF 文件的时间从 45 分钟缩短到 13 秒。

BDRC 对这一突破的贡献是多年前种下了种子,但我们要承认和庆祝乔纳森的好工作,以及西藏语言在开源出版工具中的加强!支持非常长段落的功能已集成到 LibreOffice 24.8.2 中,于 2024 年 9 月 27 日发布。我们鼓励您尝试一下,并发送关于您最喜欢的软件编辑西藏文本的评论,或您在此类工具中遇到的最重要的缺点。通过社区合作,我们可以继续创新并保持西藏语言与其他语言的数字技术同步。


HN 热度 292 points | 评论 138 comments | 作者:thunderbong | 1 day ago #

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

  • JimWoolsey 是将藏语数字化的重要人物,他的工作对于保护藏语至关重要
  • 藏语数字化的希望在于计算机,因为藏语打字机数量稀少且价格昂贵
  • Woolsey 与藏人行政中央合作,帮助整理了达兰萨拉图书馆的混乱状况,并引入了计算机技术
  • 藏语计算机化的早期工作在美国并未受到重视,Woolsey 因此成为了藏人计算机技术的重要顾问
  • 藏人行政中央将 Woolsey 视为计算机专家,并给予他学术上的支持和认可
  • Woolsey 的计算机技术帮助藏人提高了工作效率,从使用打字机转变为使用计算机
  • 藏语计算机化的过程中,Woolsey 遇到了许多求知欲强的学生,包括来自俄罗斯的僧侣
  • 藏语数字化的工作对于保存藏文化具有重要意义,Woolsey 的努力值得赞赏

Zero-latency SQLite storage in every Durable Object #

https://simonwillison.net/2024/Oct/13/zero-latency-sqlite-storage-in-every-durable-object/

Cloudflare 推出新版 Durable Object,采用 SQLite 作为存储引擎。Durable Object 是一种分布式系统设计,旨在将应用逻辑与数据存储结合在一起,实现低延迟和高性能。

新版 Durable Object 使用 SQLite 作为存储引擎,每个对象都有自己的 SQLite 数据库。这种设计使得应用程序可以直接访问数据,而无需通过网络请求。Cloudflare 的网络会自动路由请求到最近的数据中心。

技术细节包括:每个对象都会将事务日志(WAL)记录到对象存储中,用于实现数据持久化和恢复。写入操作会被复制到五个不同的数据中心,确保数据安全。

JavaScript API 设计为阻塞式(blocking),因为设计目标是提供快速的单线程持久化操作。示例代码展示了如何使用 Durable Object 实现快速的数据查询和更新。

Durable Object 的创建位置取决于初始请求的位置,默认情况下会在最近的数据中心创建对象。未来计划实现动态重新定位已创建的对象。

总的来说,新版 Durable Object 提供了一种高性能、低延迟的数据存储和应用逻辑结合的解决方案,适合构建实时协作应用和其他需要快速数据访问的场景。


HN 热度 274 points | 评论 102 comments | 作者:ajhit406 | 1 day ago #

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

  • 写 API 是同步的,但有隐藏的异步等待,允许运行时自动批处理写操作并乐观地假设它们会成功,而用户无需显式处理错误或等待。
  • Cloudflare 的 RPC 功能允许像普通 JS 调用一样与其他 DO 或 worker 通信,运行时处理序列化和解析。-使用 Zod 或等效库进行服务器端验证,以弥补没有模式的不足。-通过 Websockets,客户端可以保持连接,即使 DO 处于休眠状态,也不需要为此付费。-每个运行时实例的 RAM 限制为 128MB。-读事务在单个进程中不是必需的,因为只有单个进程可以访问数据库,可以通过同步函数或进程级锁定实现相同效果。-考虑添加 API 以创建多个“数据库连接”,以便流式传输响应并保持数据一致快照,但需解决 WAL 过大问题。
  • DO 的写操作和读操作仅在同一个进程中进行,因此写入后立即读取是即时的,只有在 DO 休眠后才会应用长期存储。
  • Cloudflare 确保所有 DO 操作都在全球唯一的单个实例上进行,避免了读写一致性问题。-写操作通过 WAL 实时流式传输到五个跟随者,确保了写操作的快速性和持久性。
  • DO 的设计简单易懂,类似于 Redis 和意大利菜,可以清楚地看到所有组成部分。

Counterintuitive Properties of High Dimensional Space (2018) #

https://people.eecs.berkeley.edu/~jrs/highd/

高维空间的反直觉性质

高维空间中的几何直觉往往与我们在三维空间中形成的直觉不同。即使是简单的物体,如高维立方体和球体,它们的性质也往往令人惊讶。下面我们将讨论一些高维空间的反直觉性质,试图传达高维空间的奇怪之处。

逃离球体

在二维空间中,一个边长为 1 的正方形的四个角各放置一个半径为 1/2 的圆,覆盖正方形的边缘。然后考虑一个以正方形中心为圆心,半径恰好能接触到角圆的圆。二维空间中很明显,内圆完全包含在正方形内。

在三维空间中,我们可以做同样的事情。将一个边长为 1 的立方体的八个角各放置一个半径为 1/2 的球体,覆盖立方体的边缘。以立方体中心为圆心,半径恰好能接触到角球的球体,显示在图 2 中。同样,我们看到,在三维空间中,内球体完全包含在立方体内。

为了理解高维空间中发生了什么,我们需要计算内球体的半径。内球体的半径等于立方体的对角线长度减去角球体的半径。见图 3。后者始终为 1/2,不论维度如何。我们可以计算对角线的长度为:

d((1,1,…,1),(1/2,1/2,…,1/2))=∑i=1d(1-1/2)2=d/2

因此,内球体的半径为 d/2-1/2。注意,内球体的半径随着维度的增加而增加!

在二维和三维空间中,球体严格地包含在立方体内,如上图所示。然而,在四维空间中,情况变得有趣。内球体的半径恰好为 1/2,刚好能接触到立方体的边缘!在五维空间中,内球体的半径为 0.618034,球体开始突出立方体!到十维空间,半径为 1.08114,球体已经远远突出立方体!

高维空间中的体积

一个圆的面积 A(r)=πr2,其中 r 是半径。给定圆的面积方程,我们可以通过考虑球体的横截面来计算球体的体积。即,我们在球体的某个高度 h 处与一个平面相交。

交点是一个圆。如果我们从侧面查看球体,如图 5 所示,我们看到半径可以使用勾股定理(a2+b2=c2)计算。圆的半径为 r2-h2。

从球体底部到顶部的所有横截面的面积之和给出了体积:

V(r)=∫-rrA(r2-h2)dh=∫-rrπr2-h22dh=4/3πr3

现在我们知道了二维球体的体积,我们可以用类似的方法计算三维球体的体积。唯一的区别是,我们使用的是二维球体的体积方程,而不是圆的面积方程。一般来说,d 维球体的体积近似为:

πd/2(d/2+1)!rd

(近似是因为分母应该是 Gamma 函数,但这不是理解直觉的关键。)

设 r=1,考虑单位 d 维球体的体积随着 d 的增加而变化。体积的图形如图 6 所示。

单位 d 维球体的体积随着 d 的增加而趋近于 0!高维单位球体几乎不包含体积!体积从一维到五维增加,然后在六维之后迅速减少。

更准确的图像

考虑到高维立方体和球体的奇怪性质,我希望你会同意以下图像是更准确的表示。

注意,立方体的角远远离中心,而不是边。d 维球体绘制得包含几乎没有体积,但仍然有半径 1。这个图像还暗示了高维球体的下一个反直觉性质。

集中度

假设你想在单位球体的赤道周围放置一个带子,使得 99% 的表面积落在该带子内。见图 8。您认为该带子需要多宽?

在二维空间中,带子的宽度需要相当大,几乎是 2,以捕获 99% 的周长。然而,随着维度的增加,捕获 99% 的表面积所需的带子的宽度减小。在非常高维的空间中,球体的表面积几乎全部位于赤道附近!

为了提供一些直觉,考虑一下二维空间的情况,如图 10 所示。对于一个点位于圆的赤道附近,其 y 坐标必须很小。

随着维度的增加,坐标的值会发生什么变化?图 11 是从 d 维球体中均匀采样的 20000 个随机点的图。随着 d 的增加,值变得越来越集中在 0 附近。

回想一下,每个点都必须满足方程 x12+x22+…+xd+12=1。直观地,随着 d 的增加,和中的项数增加,每个坐标的平均值减小。

真正奇怪的是,任何选择的“赤道”都有效!它必须是这样,因为球体是球形对称的。我们可以选择图 12 中显示的任何选项。

接吻数

考虑一个单位圆,如图 13 所示。蓝色圆圈被称为接吻圆圈,如果它刚好接触红色圆圈。(让数学家们认为刚刚接触是接吻的理想属性。)接吻数是最大数量的非相交圆圈,可以与给定圆圈接吻。


HN 热度 233 points | 评论 58 comments | 作者:nabla9 | 1 day ago #

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

  • 高维单位球的体积随着维度增加而趋向于 0,这并不是因为球本身的性质改变,而是因为其相对于包围立方体的体积比例在不断减小。
  • 高维空间中的近正交性概念对于机器学习至关重要,即使在数千维的空间中,也可以合理地处理“某种程度上正交”的方向,这些方向的数量随着维度的平方根呈指数级增长。
  • 高维空间中,每个基向量分量在计算如余弦角度时的贡献变得不那么重要,因此在 10,000 维空间中,即使一个分量指向不同的基向量,角度也会非常小。
  • 特征空间中的距离度量并不一定需要正交性,距离可以是任何度量方式,包括曲线路径,例如 Python 中的 math.dist()函数用于计算欧几里得距离。
  • 高维空间中的近正交性允许在空间中容纳比空间维度更多的方向,这对于表示大量不同概念非常有用,尤其是在大型语言模型(LLMs)中。

Why does FM sound better than AM? #

https://www.johndcook.com/blog/2024/10/13/why-does-fm-sound-better-than-am/

本文讨论了调频(FM)广播为什么比调幅(AM)广播声音更好。文章首先介绍了 AM 和 FM 广播的基本原理,指出 AM 广播通过改变载波波的幅度来传递信号,而 FM 广播则通过改变载波波的频率来传递信号。

文章接着引用了 Pinter 的观点,指出 FM 广播的发明者埃德温·霍华德·阿姆斯特朗(Edwin Howard Armstrong)正确预测了 FM 广播在噪声方面的优势。阿姆斯特朗认为,随机噪声主要影响载波波的幅度,而不是频率。因此,FM 广播可以更好地抵御噪声的影响。

文章还提到了 J. R. Carson 的一个错误结论,他认为噪声是无法消除的。但是,Pinter 指出,FM 广播通过使用限幅器(limiter)可以显著减少噪声的影响,这是一个令人惊讶的发现。

最后,文章提供了一个类比来解释为什么 FM 广播比 AM 广播更好。类比指出,如果通过树叶摇动的光束来传递信息,变化光束的亮度会很容易受到干扰,但是如果保持光束的亮度不变,而改变光束的颜色,则可以更好地传递信息。


HN 热度 232 points | 评论 246 comments | 作者:zdw | 1 day ago #

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

  • FM 使用比 AM 更高的带宽,这使得 FM 能够更好地抵抗噪声,提高音质。
  • FM 的高频段特性使其不易受到低频噪声(如雷暴引起的噪声)的影响。
  • 在相同带宽下,FM 和 AM 的噪声抑制能力并没有本质区别,但 FM 通过使用更宽的带宽提高了信号的冗余度,从而降低了随机噪声的影响。
  • AM 在接收窄带非白噪声时,会将其直接转换为可听频率,而 FM 会将噪声分散在整个输出信号频谱中,使其听起来更柔和。
  • 香农定理支持更宽的带宽可以容忍更多的噪声,从而提高传输数据的信噪比。
  • 虽然更宽的带宽会捕获更多的噪声,但噪声的增加幅度远小于有用信号的增加幅度。
  • 现代数字调制方案在干扰抑制方面采用了与 AM 和 FM 不同的方法,但 FM 和 AM 的干扰抑制机制仍然有效。
  • 在实际应用中,使用较窄带宽的无线电设备通常具有更长的传输距离。

Restic: Backups done right #

https://restic.net/

Restic 是一个现代的备份程序,可以备份您的文件:

  • 从 Linux、BSD、Mac 和 Windows 备份
  • 备份到多种存储类型,包括自托管和在线服务
  • 易于使用,只需运行一个可执行文件,无需服务器或复杂设置
  • 高效备份,只传输文件的更改部分
  • 安全备份,使用加密技术保护备份数据
  • 可验证备份,确保备份数据的完整性

快速入门:

  • 观看 Restic 的演示视频
  • 阅读 Restic 的用户手册(最新版本)

安装:

  • 遵循安装指南
  • 下载最新的本机二进制文件

兼容性:

  • Restic 遵循语义版本控制,确保备份数据的兼容性
  • 保证在一个主要版本内的所有备份数据的兼容性

贡献:

  • 欢迎贡献代码
  • 阅读贡献指南
  • 阅读设计文档

联系:

  • 论坛:发布使用或支持问题
  • GitHub:报告错误或提出功能建议
  • IRC 频道:#restic(irc.libera.chat)
  • 邮件:alexander@bumpern.de(非支持请求)

演讲:

  • 2021-04-02:The Changelog:Restic 有您的备份(播客)
  • 2016-01-31:FOSDEM 2016:Go Devroom(布鲁塞尔, 比利时)
  • 2016-01-29:restic - Backups mal richtig:CCC 科隆 e.V.(科隆,德国)
  • 2015-08-23:FROSCON 2015:A Solution to the Backup Inconvenience(波恩,德国)
  • 2015-02-01:FOSDEM 2015:A short introduction(略过时的命令行)
  • 2015-01-27:CCC Aachen(德国)

博客:

  • 2024-09-05:Restic 0.17.1 发布
  • 2024-07-26:Restic 0.17.0 发布
  • 2024-07-26:REST-server 0.13.0 发布

许可:

  • Restic 使用 BSD 2-Clause 许可证。

HN 热度 215 points | 评论 100 comments | 作者:fanf2 | 1 day ago #

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

  • restic 的索引格式慢且糟糕,使用的 Rabin 指纹算法比 FastCDC 等现代算法慢
  • 可以尝试使用 Kopia,速度快,功能多,有 GUI
  • BackRest 为 Restic 提供了一个不错的前端,简化了配置和自动化
  • Borgbase 和 Hetzner 提供 Restic 托管服务
  • 其他备份选项如 borg、duplicity 和 duplicati 也很受欢迎
  • 选择 restic 是因为它比 borg 稳定,且以单个二进制文件分发,易于部署
  • Restic 没有简单的配置文件,需要自己编写脚本来定义备份设置
  • 环境变量可以作为 Restic 的简单配置方式
  • borg 通常被认为比 restic 更快,且有单个可分发的二进制文件
  • Resticprofile 或 autorestic 可用于配置文件或运行定时任务
  • Duplicity 是一个稳定的选择,已在 Debian 等系统中使用超过十年
  • Borg 在某些场景下比 Duplicity 快一个数量级,尤其是在备份个人文件时

Show HN: X11 tool to share a screen area in any video meeting #

https://github.com/splitbrain/clipscreen

Clipscreen: 一款简单的屏幕镜像工具

简介 Clipscreen 是一款可以创建虚拟监视器的应用程序,用于镜像屏幕的一部分。它通过创建一个绿色矩形来高亮显示指定区域。

为什么有用 使用 Clipscreen,您可以使用任何屏幕共享工具(如 Google Meet、Microsoft Teams、Jitsi Meet 等)共享虚拟监视器,而不是整个屏幕。无需共享单个窗口并在它们之间切换,只需将要共享的窗口移动到绿色边界内即可。

编译 确保您的系统上安装了以下组件:

  • X11 开发库
  • Cairo 图形库
  • C++ 编译器(如 g++)

然后,运行以下命令编译应用程序:

make

使用 运行编译后的可执行文件,使用以下命令:

./clipscreen <width> <height> <x> <y>
  • <width>:覆盖层和虚拟监视器的宽度。
  • <height>:覆盖层和虚拟监视器的高度。
  • <x>:覆盖层和虚拟监视器的左上角的 x 坐标。
  • <y>:覆盖层和虚拟监视器的左上角的 y 坐标。

例如:

./clipscreen 800 600 100 100

终止 要终止应用程序,请在运行应用程序的终端中按 Ctrl+C。

许可 Copyright 2024 Andreas Gohr andi@splitbrain.orgmailto:andi@splitbrain.org

关于 Mirror a portion of your screen to a virtual monitor for easier screen sharing.

主题 xorg、x11、xrandr、screensharing、virtual-monitor


HN 热度 209 points | 评论 107 comments | 作者:splitbrain | 10 hours ago #

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

  • 工具简单实用,代码量少,体现了 X11 相对于 Wayland 的优势
  • 代码中没有 XLib 事件循环,使用 sleep(100)会导致 CPU 高占用,但实际影响可能不大
  • 频繁调用 sleep 可能会影响 CPU 进入低功耗状态,但对这个工具来说影响不大
  • Wayland 更注重安全性,因此使用上会更复杂
  • 通过 Wayland 的 API 实现类似功能可能更简单,但实际效果需要测试验证
  • 代码量少是因为缺少错误处理和合理性检查,实际使用中可能会出现问题
  • 开发者表示欢迎提交 Pull 请求来改进错误处理和健壮性