返回首页
最新
嗨,HN,
KafScale 是一个与 Kafka 兼容的流处理系统,原生支持 Kubernetes,S3 是数据的真实来源,代理不持有持久状态。它是用 Go 语言编写的,运行在 Kubernetes 上。
在多年操作 Kafka 并遇到相同问题后,我构建了这个系统:代理故障需要数小时才能恢复,分区再平衡会阻塞部署,磁盘容量规划永无止境。
它的工作原理:
- 生产者和消费者使用标准的 Kafka 客户端
- 代理在内存中进行缓冲,并将数据刷新到 S3
- etcd 存储元数据和消费者组状态
- 恢复意味着重启一个 Pod 并从 S3 读取数据
- 可选的 Iceberg 处理器直接从 S3 读取数据段,完全绕过代理,适用于批处理/分析工作负载
你需要放弃的:延迟为 400-500 毫秒(S3 往返时间),不支持事务,没有压缩主题。这并不是一个 100% 的替代方案。
你所获得的:代理是一次性的,扩展仅需增加副本数量,无需磁盘管理,可以直接通过 S3 ACL 访问流数据。
许可证:Apache 2.0
GitHub: [https://github.com/novatechflow/kafscale](https://github.com/novatechflow/kafscale)
一个终端图形用户界面(TUI),利用 tmux 来简化和优化终端标签的管理,使其更加便捷和友好。
他们为什么从去年开始表现得如此(拼命想要自毁)?<p>最新的例子:<p>微软Office更名为“Microsoft 365 Copilot应用”(https://news.ycombinator.com/item?id=46496465)<p>不仅这个更名荒谬,而且页面(office.com)看起来也充满了奇怪的氛围。
我制作了这个工具,以便在手机上使用我的笔记本终端会话,而不需要数据经过服务器。<p>使用命令 tt start -p mypassword → 获取一个 URL(二维码)→ 在浏览器中打开 → 输入密码 → 连接成功。<p>在你的设备和浏览器之间建立直接的 WebRTC 数据通道。<p>信令服务器是一个 Cloudflare Worker,交换约 2KB 的 SDP/ICE 元数据后就不再干预。密码从未传输 - argon2id 在两端本地生成 256 位密钥。所有终端输入输出在到达数据通道之前都经过 NaCl SecretBox 加密。底层使用 DTLS 进行双重加密,但我希望中继在信令期间也看不到任何有用的信息。<p>使用 Go 和 Pion/WebRTC,代码量约 14k 行。浏览器使用 xterm.js 和 WebCrypto 进行 argon2id。默认使用 STUN,TURN 适用于对称 NAT。<p>我的使用案例:在不在办公桌前时,通过手机检查 Claude 代码的运行情况。酒店 WiFi 和不稳定的移动数据。花了一些时间在 TURN 回退、保持连接和断开时的缓冲写入上。作为 PWA,这个工具可以从主屏幕启动,并在应用切换时保持有效。在 3G 网络下表现尚可。<p>权衡:ICE 收集在连接时需要 2-5 秒。浏览器无法发起连接,需在主机上使用 CLI。代码在 24 小时后过期。<p>单一二进制文件,无依赖。支持多会话的守护进程模式。进行了竞争检测测试、断开连接的混沌测试和网络条件模拟。加密和 WebRTC 的代码覆盖率约为 72%。<p><a href="https://github.com/artpar/terminal-tunnel" rel="nofollow">https://github.com/artpar/terminal-tunnel</a><p>附言:默认中继运行在我的 Cloudflare 免费套餐上,因此没有保证。你可以自托管 Worker 或在本地运行 tt relay。
Hi HN,<p>Package repositories don't need to be complicated. They're just static files: metadata indexes and the packages themselves. Yet somehow hosting your own feels like you need dedicated infrastructure and deep knowledge of obscure tooling.<p>repogen is an SSG for package repos. Point it at your .deb/.rpm/.apk files, it generates the static structure, you upload to S3 or any web host. Done. $0.02/month to host packages for your whole team.<p>It supports Debian, RPM, Alpine, Pacman, and Homebrew. Has incremental mode for updating repos without redownloading everything. Handles signing. Very alpha, but it works. Would love to get feedback!
构建Doo是因为我厌倦了为每个API编写200行身份验证的样板代码。
示例(完整API):
```rust
import std::Http::Server;
import std::Database;
struct User {
id: Int @primary @auto,
email: Str @email @unique,
password: Str @hash,
}
fn main() {
let db = Database::postgres()?;
let app = Server::new(":3000");
app.auth("/signup", "/login", User, db);
app.crud("/todos", Todo, db); // Todo = 你定义的任何结构
app.start();
}
```
结果:
- POST /signup 具有电子邮件验证 + 密码哈希(自动来自 @email, @hash)
- POST /login 使用JWT
- 完整的CRUD端点:GET, POST, GET/:id, PUT/:id, DELETE/:id
- 编译为本地二进制文件
状态:Alpha v0.3.0。身份验证、CRUD、验证和Postgres正常工作。正在积极修复bug。
在生产环境中使用之前,你需要看到什么?
嘿!<p>我最近了解到Leo Babauta的“微小安慰”概念——在你感到身体疲惫或精神耗竭的困难时刻,简单而健康的方式来充电。<p>以下是一些让我产生共鸣的原则:
• 保持小而偶尔(不要过度)。
• 用它们来充电,而不是逃避问题。
• 放下内疚——这是一种自我意识,而不是软弱。
• 活在当下,享受此刻。<p>以下是我的微小安慰:<p><pre><code> 1. 听轻松的音乐时阅读
2. 冷的时候洗热水澡,热的时候洗冷水澡
3. 最喜欢的花生酱棒
4. 烤面包上的花生酱和果酱
5. 在公园散步或进行北欧健走
6. 跑步或骑自行车
7. 烹饪
8. 加料燕麦粥(坚果、葡萄干、枣、香料)
9. 躺在沙发上闭眼抬腿
10. 小憩
11. 深呼吸练习
12. 短暂的冥想
13. 蒸汽浴
</code></pre>
我尽量选择那些安全且不易过度的方式。<p>你有哪些微小安慰可以帮助你充电呢?
嗨,HN,我是SentienceAPI的独立创始人。在过去的12月份,我一直在构建一个专门为大型语言模型(LLM)代理设计的浏览器自动化运行时。
问题:构建可靠的网络代理非常痛苦。你基本上只有两个糟糕的选择:
原始DOM:直接获取document.body.innerHTML既便宜又快速,但会使上下文窗口超载(超过10万个标记),并且缺乏空间上下文(代理会尝试点击隐藏或屏幕外的元素)。
视觉模型(GPT-4o):发送屏幕截图虽然可靠,但速度慢(延迟3-10秒)且成本高(约$0.01每步)。更糟的是,它们经常会产生虚假坐标,错过按钮10个像素。
解决方案:语义几何Sentience是代理的“视觉皮层”。它位于浏览器和你的LLM之间,将嘈杂的网站转换为干净、排序、具有坐标意识的JSON。
工作原理(技术栈):
客户端(WASM):一个Chrome扩展程序注入一个Rust/WASM模块,直接在浏览器进程中修剪95%的DOM(脚本、跟踪像素、不可见的包装器)。它在小于50毫秒内处理Shadow DOM、嵌套iframe(“框架拼接”)和计算样式(可见性/z-index)。
网关(Rust/Axum):修剪后的树发送到一个Rust网关,该网关应用简单视觉提示的启发式重要性评分(例如,is_primary)。
大脑(ONNX):一个服务器端的机器学习层(通过ort运行ms-marco-MiniLM)根据用户的目标(例如,“搜索鞋子”)对元素进行语义重新排序。
结果:你的代理获得了前50个最相关的可交互元素的列表,包含精确的(x,y)坐标、重要性值和视觉提示,帮助LLM代理做出决策。
性能:
成本:每步约$0.001(相比于视觉模型的$0.01+)
延迟:约400毫秒(相比于视觉模型的5秒+)
负载:约1400个标记(相比于原始HTML的10万个)
开发者体验(“酷炫”的东西):我讨厌调试文本日志,所以我构建了Sentience Studio,一个“时光旅行调试器”。它将每一步(DOM快照 + 屏幕截图)记录到一个.jsonl追踪文件中。你可以像视频编辑器一样浏览时间线,准确查看代理看到的内容与它产生的幻觉之间的差异。
链接:
文档与SDK: [https://www.sentienceapi.com/docs](https://www.sentienceapi.com/docs)
GitHub(SDK):
SDK Python: [https://github.com/SentienceAPI/sentience-python](https://github.com/SentienceAPI/sentience-python)
SDK TypeScript: [https://github.com/SentienceAPI/sentience-ts](https://github.com/SentienceAPI/sentience-ts)
Studio演示: [https://www.sentienceapi.com/docs/studio](https://www.sentienceapi.com/docs/studio)
构建Web代理: [https://www.sentienceapi.com/docs/sdk/agent-quick-start](https://www.sentienceapi.com/docs/sdk/agent-quick-start)
带有重要性标签(金星)的屏幕截图:
[https://sentience-screenshots.sfo3.cdn.digitaloceanspaces.com/Screenshot](https://sentience-screenshots.sfo3.cdn.digitaloceanspaces.com/Screenshot) 2026-01-06 上午7:19:41.png
[https://sentience-screenshots.sfo3.cdn.digitaloceanspaces.com/Screenshot](https://sentience-screenshots.sfo3.cdn.digitaloceanspaces.com/Screenshot) 2026-01-06 上午7:19:41.png
我负责后端的Rust和SDK的Python/TypeScript。项目现在处于测试阶段,我非常希望能收到关于架构或排序逻辑的反馈!