返回首页

一周热榜

2作者: duriantaco4 天前原帖
我一直在思考为什么在Python中,死代码检测(以及静态分析一般)相比其他语言感觉如此不可靠。我明白Python本质上是动态的。 理论上,这应该是简单的(再次强调,理论上):解析抽象语法树(AST),构建调用图,找到引用为零的符号。但在实践中,由于许多因素,这一过程很快就会失效,例如: 1. 动态调度(getattr、注册表、插件系统) 2. 框架入口点(Flask/FastAPI路由、Django视图、pytest夹具) 3. 装饰器和隐式命名约定 4. 仅通过测试或运行时配置调用的代码 大多数工具似乎在两种糟糕的权衡中选择其一: 1. 保守处理,错过大量真正的死代码 2. 激进处理,标记假阳性,导致人们失去信任 到目前为止,对我来说最有效的方法是将代码视为一种置信度评分,并结合一些有限的运行时信息(例如,测试期间实际执行的内容),而不是完全依赖静态分析。 我很好奇其他人在实际代码库中是如何处理这个问题的……你们是接受假阳性吗?还是完全忽视死代码检测?有没有人见过实际可扩展的方法?我知道SonarQube的噪音很大。 我构建了一个带有vsce扩展的库,主要是为了探索这些权衡(如果相关,链接在下面),但我更感兴趣的是其他人是如何看待这个问题的。希望我在正确的频道。 上下文的代码库: https://github.com/duriantaco/skylos
2作者: adrianwaj4 天前原帖
是我一个人这样觉得,还是HN似乎正面临大量机器人提交、评论甚至完整对话的泛滥?
2作者: haebom3 天前原帖
嘿,HN, 我已经使用 OpenClaw 作为我的本地 LLM 网关几个月了。这确实很有趣——通过一个单一的端点路由多个模型的便利性是无与伦比的。但在这个过程中,我遇到了一些让我感到不安的意外情况: - 配置文件散落在意想不到的地方(如 ~/.openclaw、~/.clawdbot 等) - 被终止后会重新生成的后台进程 - 安静积累而没有轮换的日志 - 在我以为已经删除后仍然存在的缓存数据 这些问题并不一定是恶意的,但当我决定继续前进时,我希望能够彻底清理——而不是让残留的痕迹困扰我的系统。 因此,我开发了 OpenShears:一个命令行工具,可以扫描、检测并删除 OpenClaw 的所有痕迹。它的设计是相当激进的,但在删除任何内容之前总是会要求确认。 这个项目是完全开源的(MIT 许可证)。如果你发现了 OpenShears 漏掉的其他隐藏文件或进程,非常欢迎提交 PR。让我们一起把它打造成一个权威的清理工具。
1作者: rishi_blockrand5 天前原帖
嗨,HN, 我们开发了Blockrand,这是一个随机性API,适用于那些“信任我们”不够的应用场景(如游戏、彩票、模拟、链上/链下混合应用)。 大多数“可证明公平”的随机数生成器在仔细检查后都存在问题: - 服务器可以影响结果 - 客户端可以暴力破解种子 - 或者验证只有在你已经信任运营者后才能进行 Blockrand采用双盲模型: - 客户端提交一个种子哈希(我们无法得知) - 服务器提交一个熵值(客户端无法得知) - 最终的随机性只有在两者都被锁定后才能生成 - 任何人都可以在之后独立验证结果 - 即使存在恶意行为,任何一方也无法偏向结果。 我们为什么要开发这个 我们找不到一个随机性服务,满足以下条件: - 可以在链外工作 - 具有密码学可验证性 - 不需要信任运营者 - 足够简单,能够集成到现有系统中 所以我们自己开发了一个。 目前上线的内容 - 简单的REST API - 确定性、可重放验证的结果 - SDK(JavaScript,更多即将推出) - 开放的验证逻辑(没有黑箱) 我们希望得到的反馈 - 威胁模型假设 - 我们可能遗漏的攻击向量 - 这是否解决了你们的实际问题 - API的易用性(尤其是针对游戏开发者) 这只是初步版本,带有个人观点。 欢迎提问... <a href="https://blockrand.net" rel="nofollow">https://blockrand.net</a> GitHub: <a href="https://github.com/blockrand-api/blockrand-js" rel="nofollow">https://github.com/blockrand-api/blockrand-js</a>