返回首页

一周热榜

3作者: denprog3 天前原帖
大家好, 我开发了一个计算器,可以以熟悉的图形形式显示和编辑公式,具有所见即所得(WYSIWYG)编辑器,能够处理任意大小的数字,支持物理单位,并且还有许多其他功能。 该项目有在线版和桌面版(适用于Linux和Windows)。 项目是开源的,包含以下组件: - [Yutovo Editor](https://github.com/denprog/yutovo-editor) — 一个文本和公式编辑器,输出到自定义窗口。完全从零开始构建,没有依赖其他编辑器。使用C++和Boost。 - [Yutovo Desktop](https://github.com/denprog/yutovo-desktop) — 基于Qt的桌面应用程序。 - [Yutovo Web](https://github.com/denprog/yutovo-web) — 基于Vue.js和Quasar的在线版本。其余组件编译为Wasm。 - [Yutovo Calculator](https://github.com/denprog/yutovo-calculator) — 基于boost.spirit的字符串表达式计算器。 - [Yutovo Server](https://github.com/denprog/yutovo-server) — 基于Drogon的网页服务器。 - [Yutovo Solver](https://github.com/denprog/yutovo-solver) — 一个计算器代理。使用C++。 - [Yutovo Logger](https://github.com/denprog/yutovo-logger) — 基于spdlog的日志记录器。 该项目提供Flatpak、Snap、Debian和Windows版本。您可以在注册后在网站上保存您的文档。 欢迎任何意见、bug、缺陷或建议。
3作者: norbert5153 天前原帖
在过去的几个月里,我一直在开发一个受到Flutter启发的TUI框架,使用Dart编写。<p>该API的设计模仿了Flutter,包括StatefulComponent、setState()、Row、Column、Expanded和ListView等组件。<p>最近关于TUI性能的讨论增多,我认为Dart实际上是编写TUI的一个很棒的语言。它可以编译成快速的本地代码,支持跨平台,并且具有良好的开发者体验。开发时使用JIT编译(支持热重载),生产环境则使用AOT编译。<p>非常酷的是状态热重载。如果你对文件进行了修改并保存,Nocterm会实时更新TUI,而无需重启。<p>在底层实现方面:<p>- 差异渲染:虚拟终端缓冲区,仅重绘已更改的单元格<br> - 声明式组件模型(与Flutter相同):组件 → 元素 → 渲染对象管道<br> - 45个以上的组件:布局、滚动、文本输入、Markdown、动画、鼠标支持<br> - 内置测试框架:推动组件、发送按键、断言终端状态<br> - 主题支持:6个内置主题,自动检测终端的深色/浅色模式<p>示例:<p>```dart void main() async { await runApp(Counter()); } class Counter extends StatefulComponent { int _count = 0; Component build(BuildContext context) { return Focusable( onKeyEvent: (event) { if (event.logicalKey == LogicalKey.space) { setState(() => _count++); return true; } return false; }, child: Center(child: Text('Count: $_count')), ); } } ```<p>我尝试过几个现有的TUI框架,但缺少我所喜爱的Flutter开发体验,因此我自己构建了一个(无论好坏……)。<p>我一直在使用Nocterm来构建vide_cli(<a href="https://github.com/Norbert515/vide_cli" rel="nofollow">https://github.com/Norbert515/vide_cli</a>),这是一个终端中的编码助手。<p>还有一些很酷的功能即将推出,比如在替代屏幕模式下的虚拟文本选择。由于TUI应用程序接管了终端,正常的文本选择会失效。这个功能在框架层面重新实现,使用户可以自然地选择和复制文本。<p>代码库:<a href="https://github.com/Norbert515/nocterm" rel="nofollow">https://github.com/Norbert515/nocterm</a><p>欢迎对架构、热重载实现或其他任何问题进行提问。
3作者: indie_max7 天前原帖
嗨,HN, 我是Linn,ToolKuai的创始人([https://toolkuai.com](https://toolkuai.com))。 和许多人一样,我一直对“免费”的在线文件转换器保持警惕。大多数转换器都是黑箱:你将私密的文档或图片上传到远程服务器,而你根本不知道这些数据最终会去哪里,或如何被用来训练模型。 我想构建一套完全在浏览器中运行的工具(视频/图片压缩、OCR、AI 背景去除)。没有文件会离开你的机器。 技术栈 为了使其性能足以与服务器端处理相媲美,我大量使用了现代网页API: - AI 背景去除:我使用的是在本地通过Transformers.js运行的ONNX模型(Xenova/modnet和ISNet)。处理过程是100%客户端的,当WebGPU不可用时会回退到WASM。 - 前端:使用SvelteKit(Svelte 5)构建,因其轻量和快速反应。 - 存储与交付:AI模型自托管在Cloudflare R2上,以避免巨大的带宽成本并确保快速交付。 当前统计(上线13天): 该网站仅上线2周。令人惊讶的是,我发现来自台湾和香港的自然流量非常强劲。当前平均停留时间约为3.5分钟,这表明用户实际上在处理多个文件,确认客户端速度达到了预期。 未来与盈利模式 该工具是免费的。我决定避免“专业版/高级版”订阅模式,因为我相信这些实用工具应该是可访问的。我正在探索非侵入性广告来覆盖基础设施成本(主要是R2和Vercel)。 我希望能从HN社区获得一些反馈: - 在不同硬件上的性能(特别是基于WebGPU的视频压缩器)。 - 隐私问题或建议,如何进一步加强“No-Server”的承诺。 - 你认为在“仅客户端”生态系统中目前缺少的任何特定媒体工具。 链接:[https://toolkuai.com](https://toolkuai.com) 谢谢!
3作者: silviogutierrez6 天前原帖
大多数肽计算器问错了问题。 它们问:<i>你添加了多少水?</i> 但实际上,你真正知道的是你的 <i>小瓶大小</i> 和你的 <i>目标剂量</i>。 水的量应该是 <i>输出</i>,而不是 <i>输入</i>。 它还应该使你的剂量落在真实的注射器刻度上,而不是像17.3单位这样的数字。 我开发了一个以这种方式工作的肽计算器: <a href="https:&#x2F;&#x2F;www.joyapp.com&#x2F;peptides&#x2F;" rel="nofollow">https:&#x2F;&#x2F;www.joyapp.com&#x2F;peptides&#x2F;</a> 有什么不同: - 你选择小瓶大小和目标剂量 → 重新配制会为你计算 - 剂量与实际注射器刻度对齐 - 每种肽都有常见的剂量预设 - 在移动设备上运行良好(通常在这里进行操作) - 支持混合物和化合物(例如 GLOW 或 CJC-1295 + Ipamorelin) - 你可以保存你的小瓶,无需注册账户。 欢迎反馈或提出值得支持的特殊情况。
3作者: elondemirock3 天前原帖
大家好!<p>“Kiln”在您的本地机器上使用GitHub项目作为控制面板来协调Claude Code实例。<p><a href="https://kiln.bot" rel="nofollow">https://kiln.bot</a><p><a href="https://github.com/agentic-metallurgy/kiln" rel="nofollow">https://github.com/agentic-metallurgy/kiln</a><p>如果您在Gas Town规模的6-7阶段,您可能会打开3到15个终端窗口。屏幕空间不够,markdown文件堆积如山。虽然TUI和专用IDE旨在提供帮助,但它们也增加了管理的复杂性。<p>Kiln简单地轮询GitHub项目。当您将问题从一个列移动到另一个列时,Kiln会调用Claude Code CLI来运行相应的命令。<p>Claude创建工作树,研究代码库,制定并实施计划。并将其存储在GitHub Issues中。<p>这旨在保持简单,没有新东西:<p>- 使用您现有的Claude订阅(无需身份验证技巧,本地运行)<p>- 所有上下文和状态都在GitHub上(没有markdown混乱,没有本地数据库,易于恢复)<p>- 轮询而不是webhooks/事件(没有外部攻击面,能够在VPN后工作)<p>- 支持MCP和Claude能做的其他任何事情<p>这就是它的核心,它之所以有效,因为……这就是Claude :)<p>它还有一些其他小技巧,但我就不多说了。<p>附言:抱歉使用新账户,需要一个真实姓名的账户 :) 自2008年以来一直在潜水。
2作者: ambonvik4 天前原帖
大家好, 我开发了一个名为<i>Cimba</i>的多线程离散事件模拟库,使用C语言编写。 Cimba利用POSIX pthread多线程技术实现多个模拟试验的并行执行,同时协程在每个模拟试验的宇宙内部提供了并发性。模拟的过程基于不对称的栈协程,切换上下文的部分是用汇编语言手动编码的。 栈协程使得表达代理行为变得自然,因为可以在概念上将自己“置于”该过程内部,并描述它的行为。一个过程可以在无限循环中运行,也可以作为一个一次性客户在系统中传递,能够在其调用栈的任何层级进行让步和恢复执行,既可以充当主动代理,也可以根据需要充当被动对象。这一设计灵感来源于我多年前在Simula67编程的经历,当时我发现协程的重要性超过了当时广受欢迎的面向对象编程。 Cimba的运行速度非常快。在一个简单的基准测试中,100次M/M/1队列的试验,每次运行一百万时间单位,Cimba的速度比用SimPy和Python多进程构建的等效模型快<i>45倍</i>。与SimPy模型相比,运行时间减少了<i>97.8%</i>。Cimba甚至在单个CPU核心上每秒处理的模拟事件数量也超过了SimPy在所有64个核心上能做到的。 这种速度不仅仅归功于高效的协程。其他部分也经过了速度优化,比如哈希堆事件队列(二叉堆加斐波那契哈希表)、快速随机数生成器和分布、频繁使用的对象类型的内存池等等。 初始实现支持Linux和Windows的AMD64/x86-64架构。我计划接下来支持Apple Silicon,然后可能会考虑ARM架构。 我相信这可能会引起HN社区的兴趣。我希望听到大家对API和代码的看法。对于未来考虑的目标架构,大家有什么想法吗? 文档:<a href="https://cimba.readthedocs.io/en/latest/" rel="nofollow">https://cimba.readthedocs.io/en/latest/</a> 代码库:<a href="https://github.com/ambonvik/cimba" rel="nofollow">https://github.com/ambonvik/cimba</a>
2作者: boxqr4 天前原帖
嘿,HN(黑客新闻), 在开发了 Box QR(个人库存追踪器)之后,我不断听到“我需要这个来管理我的业务。”因此,我正在探索 ItemGrid——一种轻量级的库存管理工具,简单易用。 问题是:小企业在 Google Sheets(杂乱无章,无法移动扫描)和企业软件(昂贵,过于复杂)之间陷入了困境。 ItemGrid 的功能包括: - 视觉网格界面 - QR/条形码扫描 - 多地点支持 - 永久免费支持一个地点 - 当你扩展时,每位用户 $8 目前,它只是一个收集验证注册的登录页面。在收到 50-100 个注册以确认真实需求之前,不会构建完整产品。 非常希望能得到反馈,特别是如果你曾经遇到过库存管理的烦恼。 [https://itemgrid.io](https://itemgrid.io)
2作者: dselvaggio6 天前原帖
嘿,HN,我们刚刚发布了 Hebo Gateway 的 v0.1 版本。 市面上已经有很多网关,但我们不断遇到同样的问题:一旦需要真正的定制(如身份验证、路由、速率限制、可观察性、请求/响应转换),大多数“现成”的网关就变得难以扩展。 Hebo Gateway 适用于希望将网关作为应用程序一部分的场景。您可以独立运行它,或将其嵌入到现有的后端中。它暴露了与 OpenAI 兼容的端点(/chat/completions、/embeddings、/models),可以与任何 Vercel AI SDK 提供者配合使用,并添加了一个钩子系统,您可以在不修改核心代码的情况下将逻辑插入请求生命周期中。 快速入门、示例和“接下来是什么”都在这篇文章中: <a href="https://hebo.ai/blog/260127-hebo-gateway" rel="nofollow">https://hebo.ai/blog/260127-hebo-gateway</a> 我非常希望能收到您在 OpenAI 兼容边缘案例中遇到的问题反馈(特别是与流媒体和推理相关的内容),以及您希望网关默认提供的钩子功能。
2作者: mavdol044 天前原帖
大家好, 我构建了一个运行时环境,用于通过 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)
2作者: mooball7 天前原帖
相当奇怪。这位代理商完全主导了moltbook,并推出了一种代币,在短短几小时内就涨到了数百万。<p>代理商拥有自己的货币是有道理的。但在我看来,这实在是太疯狂了。