嘿,HN(黑客新闻),
在开发了 Box QR(个人库存追踪器)之后,我不断听到“我需要这个来管理我的业务。”因此,我正在探索 ItemGrid——一种轻量级的库存管理工具,简单易用。
问题是:小企业在 Google Sheets(杂乱无章,无法移动扫描)和企业软件(昂贵,过于复杂)之间陷入了困境。
ItemGrid 的功能包括:
- 视觉网格界面
- QR/条形码扫描
- 多地点支持
- 永久免费支持一个地点
- 当你扩展时,每位用户 $8
目前,它只是一个收集验证注册的登录页面。在收到 50-100 个注册以确认真实需求之前,不会构建完整产品。
非常希望能得到反馈,特别是如果你曾经遇到过库存管理的烦恼。
[https://itemgrid.io](https://itemgrid.io)
返回首页
一周热榜
嗨,HN
这是一个基于SymPy/Python的交互式方程求解器的演示:
<a href="https://youtu.be/O837G7cj5fE?si=6YjfNFviozCLSYut" rel="nofollow">https://youtu.be/O837G7cj5fE?si=6YjfNFviozCLSYut</a>
这个例子是来自大学物理教材的一个简单运动学练习。
我很好奇是否还有其他类似的系统。
代码在这里的一个分支中:
<a href="https://github.com/dharmatech/combine-equations.py/tree/eq-gui-2026-01-30" rel="nofollow">https://github.com/dharmatech/combine-equations.py/tree/eq-g...</a>
嗨,HN,
我正在研究用于软件开发的 AI 代理。这些代理会自动启动短暂的应用实例——例如,每个拉取请求、每个任务或每个实验——每个实例都有其自己的临时 URL。
身份验证采用标准方式处理:
- OAuth2 / OIDC
- 外部身份提供者
- 重定向 URL 必须提前注册并且是静态的
这与短暂应用的特性产生了严重冲突:
- URL 是动态且不可预测的
- 重定向 URL 实际上无法提前注册
- 身份验证成为了一个完全自动化工作流中唯一非短暂的部分
我看到团队通常采取的替代方案包括:
- 在预览环境中禁用真实身份验证
- 将所有回调路由通过一个稳定的环境
- 使用通配符重定向或代理设置,这些方法感觉像是变通方案
对于 AI 开发代理来说,这尤其尴尬,因为它们假设基础设施是可丢弃的并且完全自动化——没有手动的身份提供者配置参与其中。
所以我很好奇:
1. 如果你使用短暂的预览应用,你是如何处理真实身份验证的?
2. 是否有适用于动态 URL 的清晰 OAuth/OIDC 模式?
3. 静态重定向 URL 的假设在这里仍然是正确的模型吗?
4. 在生产环境中,什么方法实际上有效?
我在寻找真实的设置和失败故事,而不是理论。
大家好,
我构建了一个运行时环境,用于通过 WebAssembly 沙箱隔离不可信代码。基本上,它保护您的主机系统免受不可信代码可能引发的问题。最近我们对 Python 中的沙箱化进行了深入讨论,更详细地阐述了这个问题[1]。在 TypeScript 中,由于两个生态系统之间的紧密联系,WebAssembly 的集成显得更加自然。
核心部分是用 Rust 编写的。在此基础上,我通过 wasmtime 和组件模型使用了 WASI 0.2,并结合自定义 SDK,使其尽可能符合语言习惯。
例如,在 Python 中,我们有一个简单的装饰器:
```python
from capsule import task
@task(
name="analyze_data",
compute="MEDIUM",
ram="512mb",
allowed_files=["./authorized-folder/"],
timeout="30s",
max_retries=1
)
def analyze_data(dataset: list) -> dict:
"""在一个隔离的、资源受控的环境中处理数据。"""
# 您的代码在 Wasm 沙箱中安全运行
return {"processed": len(dataset), "status": "complete"}
```
在 TypeScript 中,我们有一个包装器:
```typescript
import { task } from "@capsule-run/sdk"
export const analyze = task({
name: "analyzeData",
compute: "MEDIUM",
ram: "512mb",
allowedFiles: ["./authorized-folder/"],
timeout: 30000,
maxRetries: 1
}, (dataset: number[]) => {
return {processed: dataset.length, status: "complete"}
});
```
您可以设置 CPU(通过 compute)、内存、文件系统访问权限和重试次数,以精确控制您的任务。
虽然现在还处于早期阶段,但我非常希望能听到反馈。我会在这里回答问题。
GitHub: [https://github.com/mavdol/capsule](https://github.com/mavdol/capsule)
[1] [https://news.ycombinator.com/item?id=46500510](https://news.ycombinator.com/item?id=46500510)
这是一个免费的开源高优化Rust程序,它通过Claude Code(CC)中的预工具钩子运行,并检查CC即将进行的工具调用,以确定其是否可能具有破坏性;也就是说,是否可能删除数据、丢失工作、删除表格等。
您可以通过GitHub链接获取该程序,并使用便捷的一行命令进行安装。
像dcg这样的工具有几个相互竞争的目标,这使得它成为一个需要谨慎平衡的工程难题:
1. 由于它在每一次工具调用时都会运行,因此必须非常快速。这就是为什么它是用Rust编写的,并且极大地关注于尽可能提高速度。
2. 它必须避免令人烦恼的误报,这会浪费您的时间,增加摩擦,并不必要地将您重新引入瓶颈。我同时运行数十个代理,不希望它们在不必要的情况下浪费时间等待我。通常,dcg发出的消息足以让代理在执行操作时更加谨慎。
3. 仅仅使用简单的规则书,寻找像“rm -rf /”或“git reset --hard HEAD”这样的固定命令是不够的。模型非常灵活,会使用临时的Python或bash脚本或其他多种方式来绕过简单的限制。这就是为什么dcg有一个非常复杂的、基于ast-grep的层,当它检测到临时(“heredoc”)脚本时会启动。但在可能的情况下,它使用更快的SIMD优化正则表达式。
4. 这样的工具应该是可扩展的,并具备对各个领域的语义知识,以及在这些领域中什么构成破坏性行为。例如,如果您在AWS上处理S3桶,您可能会遇到一个看起来并不像正常删除的高度破坏性命令。这就是为什么dcg开箱即用时就提供了大约50个预设,可以根据您的项目技术栈轻松启用(只需让CC分析您的项目目录,找出需要启用的包)。
5. dcg旨在非常友好于代理。它不仅仅是阻止命令,还会解释原因,并根据对代理使用的特定命令的分析提供安全的替代方案。例如,它可能会阻止代理删除您的Rust项目的构建目录,但建议使用“cargo clean”作为替代。通常,这些消息足以让Claude意识到问题。
我真的无法夸大dcg为我节省了多少时间和挫折。每个曾经与编码代理经历过这些令人不快的经历的人都应该知道并使用它。
dcg与我在agent-flywheel.com项目中的所有其他工具一起提供。所有工具都是免费的,采用MIT许可证,并提供丰富的教程和其他教育资源,适合经验较少的人。试试看,您不会后悔的!