我一直想在我的桌面虚拟机中利用 QEMU/KVM,但由于 virt-manager 对 NVIDIA 3D 加速的支持不足、对丑陋 XML 的教条式坚持,以及在将 ISO 附加到虚拟机镜像时需要点击看似 15 个按钮的令人困惑的用户界面设计,我一直感到困惑。当我进一步了解到 NVIDIA 的 3D 加速问题是 libvirt 而非 QEMU 的 virtio 驱动造成的时,我有了一个想法……
瞧,vm-curator!这是一个用 Rust 编写的快速友好的虚拟机管理 TUI。你可以直接使用 QEMU 创建、配置、组织和管理虚拟机。没有 libvirt,没有 XML,没有奇怪的用户界面。只提供恰到好处的友好性、可定制性和速度,真正实用。
最棒的是什么?3D 半虚拟化可以与 NVIDIA 显卡(通过 virtio-vga-gl!)一起工作!无需费尽周折就能实现 GPU 直通!
(免责声明:这在其他 Linux 客户虚拟机上运行良好,但不适合在 Windows 上游戏。如果你想在虚拟机中玩 Windows 游戏,直通是必须的。vm-curator 很快会提供快速友好的支持。)
我们正在寻找贡献者(特别是帮助处理 ASCII 艺术的人),欢迎捐赠。(Claude 提供了很大的帮助,但这并不是一个随意编码的项目。我们大约共同编写了 10,000 行代码。这实际上是学习 Rust 的一个很好的方式!)
返回首页
最新
我是一名在SPPU学习计算机工程的学生。在使用React 19进行项目开发时,我意识到我们用于SEO的标准库(如React Helmet)仍然在采用“旧”的方式。
问题:旧版库使用一种称为“副作用”的技巧,在页面加载后更改页面标题和元标签。这可能导致标题闪烁,或者让网站感觉稍微慢一些,因为浏览器需要额外处理。
解决方案:React 19增加了一个内置功能,可以自动将标签移动到页面顶部(<head>)。我创建了react-meta-seo,以便让每个人都能轻松使用这个新功能。
为什么对开发者来说更简单:
无需“提供者”:您不需要将整个应用程序包裹在一个特殊组件中。它可以在您放置的任何地方正常工作。
体积小:它的体积不到4KB。相比之下,传统选项通常为15KB或更多。
不再有损坏的Google数据:它会自动检查您的Google搜索数据(JSON-LD),确保格式正确。
内置预览:我添加了一个工具,让您在编码时就能看到您的网站在Twitter或Facebook上的样子。
简单的网站地图工具:它包括一个命令行工具,可以为您生成sitemap.xml。
我想构建一个利用React 19新特性,使SEO设置更快、更简单的工具。我非常希望能得到一些关于代码的反馈!
GitHub: [https://github.com/ATHARVA262005/react-meta](https://github.com/ATHARVA262005/react-meta)
嗨,HN,
我已经对大型语言模型(LLM)代理进行了实验一段时间,常常觉得对于简单的工作流程(聊天、工具调用、小循环),现有的框架增加了很多抽象和样板代码。
因此,我构建了一个名为 PicoFlow 的小型 Python 库。目标很简单:
使用普通的异步 Python 表达代理工作流程,而不是框架特定的图形或链条。
**最小聊天代理**
每个步骤只是一个异步函数,工作流程通过 `>>` 组合:
```python
from picoflow import flow, llm, create_agent
LLM_URL = "llm+openai://api.openai.com/v1/chat/completions?model=gpt-4.1-mini&api_key_env=OPENAI_API_KEY"
@flow
async def input_step(ctx):
return ctx.with_input(input("你:"))
agent = create_agent(
input_step >>
llm("回答用户:{input}", llm_adapter=LLM_URL)
)
agent.run()
```
没有链条,没有图形,没有单独的提示/模板对象。你可以通过在异步步骤中直接放置断点来调试。
**控制流就是 Python**
循环和分支使用普通的 Python 逻辑编写,而不是 DSL 节点:
```python
def repeat(step):
async def run(ctx):
while not ctx.done:
ctx = await step.acall(ctx)
return ctx
return Flow(run)
```
该框架仅调度步骤;它不会试图控制你的控制流。
**切换模型提供者 = 更改 URL**
另一个设计选择:模型后端通过单个 LLM URL 配置。
OpenAI:
```python
LLM_URL = "llm+openai://api.openai.com/v1/chat/completions?model=gpt-4.1-mini&api_key_env=OPENAI_API_KEY"
```
切换到另一个兼容 OpenAI 的提供者(例如 SiliconFlow 或本地网关):
```python
LLM_URL = "llm+openai://api.siliconflow.cn/v1/chat/completions?model=Qwen/Qwen2.5-7B-Instruct&api_key_env=SILICONFLOW_API_KEY"
```
工作流程代码完全不变。只有运行时配置发生变化。这使得在实践中进行 A/B 测试模型和切换提供者变得更加便宜。
**何时有用(何时无用)**
如果你:
- 想快速原型化代理
- 更喜欢显式控制流
- 不想学习大型框架抽象
那么 PicoFlow 可能会很有用。
如果你:
- 严重依赖预构建的组件和集成
- 想要一个包含所有功能的编排平台
那么它可能并不理想。
**代码库:**
[https://github.com/the-picoflow/picoflow](https://github.com/the-picoflow/picoflow)
这仍然处于早期阶段,并且具有一定的主观性。我非常希望能得到反馈,看看这种“工作流程即 Python”的风格是否对其他人有用,或者人们是否已经有更好的解决方案。
谢谢!
编程对我来说一直像是一道高墙。在我的日常工作中,我是一个“初级”工程师——总是卡在语法上,而其他人则在发布功能。我常常怀疑自己是否适合这个行业。
但最近,我尝试了一种“氛围编码”的方法——我专注于逻辑和流程,让人工智能处理实现细节。结果就是AIMovieQuotes([https://www.aimoviequotes.com](https://www.aimoviequotes.com))。
这是一个简单但实用的引擎:你可以通过情绪、主题或关键词搜索电影、电视和歌曲中的经典台词。
这个过程让我大开眼界。过去,当CSS出错或数据库查询变得复杂时,我会放弃这个项目。这一次,我充当了架构师。我描述了结果,而人工智能则铺平了道路。
我第一次感受到了创造的纯粹乐趣,而不是调试的挫败感。
我分享这个不仅是为了展示这个工具,更是为了传达一个认识:从“有一个想法”到“发布一个产品”的差距正在缩小。即使对于像我这样的“弱”编码者,构建一个完整的产品现在也是可能的。
我希望你能找到所需的引用,但更重要的是,我希望这能鼓励其他初级工程师停止担心语法,开始发布产品。
L3引擎是一个用Rust编写的市场监测系统。它不仅仅关注价格;L3重建了个别的订单流(第三级),以揭示市场意图:它能够在价格变动之前的微秒内检测到虚假交易、分层交易和虚假流动性。