docker vs rtk

RTK工具:AI编程助手Token节省92%的智能压缩技术 在AI编程助手领域,Token消耗直接影响使用成本。通过智能压缩技术对命令输出进行预处理,可显著降低Token使用量。RTK作为开源CLI代理工具,采用Rust编写并实现四大压缩策略:智能过滤移除冗余信息、分组归类相似项、截断保留关键内容、去重合并重复输出。这些基于语义分析的技术,使git操作等场景节省高达92%成本,特别适合Claude Code等AI编程工具用户。该方案不仅降低开发者使用AI助手的门槛,更为创业团队提供了经济高效的开发支持方案。 阅读详情

在 Swarm 被纳入 Docker 1.12后,Swarm 与 K8S 之争日趋白热化。本文作者 Adriaan de Jonge 身为 Xebia CTO ,专精 DevOps 及持续交付,曾为 Docker 摇旗呐喊三年的老司机,如今开始易帜。

现在即使是最酷的产品也绑定于某个特定供应商。不管在过去的三年里,我曾多么热衷 Docker,但是现在,绑定的供应商开始动摇 Docker 在我心中的地位了。而目前他们两者之间的竞争还在持续。又或许在这个过程中会出现一个更好的选择也说不定。这篇文章就是带领大家来了解一下 Core OS 的 rkt(读音按照“rock-it”来),以及告诉你为什么从现在开始要了解 rkt。

Docker 怎么了?

如果你跟我经历相似,你可能因为对 Docker 充满热情而被它的一些缺点蒙蔽了眼睛。不要误解我,我并不是说 Docker 不好。我的意思是它并没有那么完美。所以接下来让我们来看一下它的一些不足之处吧。

Docker 越来越像以前的 Microsoft

一旦一家公司意识到它有着自己的垄断权,他们就会开始做出垄断行为。一如微软曾经试图通过在 windows 中安装 Internet Explorer 来排挤 Netscape,现在 Docker 正在尝试将 Swarm 融入到 DockerCore,以此来打击 Kubernetes,Mesos,Marathon 和 Nomad。

Docker 确实有简化 Swarm,使它轻松被广大 Docker 用户接受的优点。如同微软确确实实提升了 Internet Explorer6.0的性能。MSIE6浏览器突出了微软的优势,所以他们在5年内都没有继续开发了。

想象一下 Docker 跟 Swarm 结合的结果是什么……想象一下你的下一个任务就是移动到 Docker:当需要选择一个最好的调整程序时,在你选择 Kubernetes,Mesos/Marathon,Nomad 之前,你首先要理清楚的就是 Swarm 的不足之处是在哪里。已经有了 Swarm,那么为什么在这个基础上还要安装其他的调度程序呢?

我希望 Docker 能够提升 Swarm 的性能,在修改这一点上,希望 Docker 做得比微软(修改 MISE)要好。但是即使是现在,Kubernetes 在很多方面也都是领先于 Swarm 的。随着 Kubernetes 的持续开发,Swarm 已经远远落在后面。虽然 Docker 能够让人轻松使用调度程序,但是在我看来,他们还是应该跟 Docker 核心分开。

“Docker 的架构从基础上来看就是有瑕疵的”

Docker 的核心就是 Daemon 程序,这个程序是 Docker 开始运行的起点。Docker 可执行文件仅仅只是一个 REST 代理,这个代理要求发请求给 Docker daemon 来完成它的工作。Docker 的评论家指出,这很不符合 Linux 的方式。

它的痛点在于你是否使用类似 systemd 这样的初始化系统。因为 systemd 并不是针对 Docker 设计的,所以当你尝试开启一个 Docker 程序的时候,你其实也就是开启了一个 Docker 代理程序,而这个代理程序向 Docker daemon 请求开启真正的 Docker 容器。在这里还是有一个风险的,就是当 Docker 容器还在运行的时候,Docker 代理运行失败了。在这样的情况下,systemd 得出结论,程序已经停止,并且重启 Docker 代理——于是创建第二个容器(是的,你还是可以继续处理工作,但是已经是无关紧要的了)。 
大概一年之前,我把 systemd 当成是一个简单的 Docker 调整程序来调查。我遇到了同样的危机,或者说将 Docker 和 systemd 结合的问题。那时候,我觉得这些是 systemd 的原因,而不是 Docker 的缺点。我那时候还想,会不会 systemd 并不是针对“Docker 本地”来设计的。

现在,我才了解到,可能 Docker 才是那些问题的症结所在,而不是 systemd 的问题。就像上文中提到的,Docker 并不符合 Linux 的风格,而也正因为如此,Linux 工具跟 Docker 也协作得不是很好。所以是谁错了呢?是新来的 Docker,还是已经存在了多年的 Linux 工具呢?CoreOS 的 CEO,Alex Polvi说:“Docker 的架构从基础上就有瑕疵。”

Docker 创建程序,陷在了第二个阶段

Docker 最好的功能之一就是 Dockerfiles 的引入,你可以在构建 Docker 镜像时保持版本控制。这里唯一的问题是在 Docker 的路标中 Dockerfile 语法冻结很长时间了。这就意味着在过去的一年半以来 Dockerfile 格式并没有依据社区的良好建议而进化。

当然,在某种程度上,我们需要一个稳定的格式,但是只有当格式完全成熟的时候。在这里举个例子,就是 Dockerfile 缺乏的地方,考虑到 Kelsey Hightower 在他博客《12 Fractured Apps》中提到的:

“记住,我们要运送artifact,而不是编译环境。”

事实就是,Dockerfile 格式并不能很好地支持这个区别。考虑到要构建一个可执行的 Golang:可执行的结果可能只有两百万字节大小,但是创建的环境有几百兆字节。当然,你也可以在本地系统上构建镜像。你无法利用 Docker Hub 中的自动化构建环境通过一个简单的 Dockerfile 优雅的构建出一个小的 Golang 镜像。社区有个关于扩展 Dockerfile 格式的提议就能很好的支持上述原理,但是由于 Dockerfile 格式的冻结该提议也被搁置了好几年。

那么,rkt 是如何缓解这个状况的?

简而言之,rkt 现在给 Docker 提供了更好的解决办法。它拥有一套更加 Linux 的架构。这个强劲的对手会保持自己的垄断作风。

具体一点的答案就是:2014年年底,Core OS 宣布,这个有竞争力的容器平台 Rocket(后来简写并改名成 rkt)的诞生。虽然 rkt 在发布之后最初几周里得到了很高的关注度,但是后来却销声匿迹了。Core OS 还是将 rkt 作为 Docker 的可替代工具来开发,后来在2016年2月 rkt1.0版本发布的时候才回归大众视野。

现在 Docker 宣布在 Docker Engine1.12中已经包含了 Swarm,那么是时候正视 rkt,让它作为 Docker 的可执行方案了。那在未来它会替代 Docker 吗?从 Docker 切换到 rkt 难度大吗?让我们来看一看 rkt 寻找答案吧……

rkt 能够运行 Docker 镜像

假设现在你想要用 rkt 来替代你的 staging 以及产品系统,同时又想让你所有的开发系统都继续运行……在这个案例中,你可以只在你的运行系统上将 Docker 替换成 rkt。但严格来说,这并不是一个随随便便的替换。毕竟,架构是不一样的——但是我们会努力往一样的方向发展的。另一方面,为了在 rkt 上运行 Docker 容器而去学习新的命令行指令也不会太难。在你最爱的云提供商上打开 Core OS 实例,并打出以下代码:

图片描述
或者用你最爱的 Docker 镜像来替代 nginx。在底层,rkt 将 Docker 转换到ApplicationContainer(appc)格式。

这也就意味着你不需要 Docker 来运行 Docker 镜像了。而且也意味着你可以重新使用 Docker 创建的东西,在这个过程中不需要忍受迁移带来的伤痛——而不是学习 rkt 的命令行语法。

让我们来一睹命令行的单个部分:

图片描述

如果你没有忽略这部分,那么rkt就会拒绝启动你的镜像,因为它找不到签名(.asc file)来确认 Docker 镜像的完整性。rkt 默认设置下是安全创建的。在这个例子中,这也就意味着你可以通过提供合适的签名来省去一些命令的输入。

图片描述
就比如在 Docker 中,你需要明确地暴露端口到外部。不像 Docker,rkt 端口已经被命名,而不是标记数字。如果这是一个原生的 rkt 镜像(或者需要精确的appc),那么它读起来很可能是这样的:

图片描述
然而,既然 Docker 没有命名的端口,那么被暴露的端口就会被自动命名为-。这也就意味着,如果你只能显示暴露端口的话,就使用 Dockerfile 中的 EXPOSE 关键字:

图片描述

镜像期望存储在默认的 Docker 仓库中(Docker Hub)。除了这个例子,还有个更长的 URL 指向另一个 Docker 仓库(docker://)或者包含镜像的通常的 web 网站(https://),但是之后你就不再运行 Docker 镜像了。

Rkt 有着更加简单的架构

在 rkt 中是没有 daemon 进程的。Rkt 命令行工具做了所有的工作。来看从CoreOS 网页借鉴的图片:

图片描述

跟 Docker 不同,如果你使用 systemd 来启动 rkt容器,你实际上就是在监控容器进程,而不是监控代理程序,然后由代理程序连接到 daemon,并由 daemon(直接或者间接——依赖于你的 Docker 版本)来启动容器。 
另一方面,你不能这么写:

图片描述

像 Docker 代理一样 daemon 化进程。而且必须要运行一个初始系统来 daemonize 进程。比如,你可以这样运行:

图片描述
同样,你无法从远程机器(比如 Docker 代理)运行 rkt 命令行。再有,你也可以将它作为安全功能考虑。

Rkt 为镜像遵从开放标准

现在,rkt 允许你使用 Application Container(appc)或者 Docker 镜像。在不远的将来,Open Container Initiative(OCI)格式将会被加入,我们会朝那个方向走的。

容器镜像拥有开放标准的好处就是,它允许开源社区提供多种创建镜像的方法,不仅仅局限于 Dockerfile 格式。

构建 appc 镜像的默认方式就是使用命令行工具,叫做 acbuild。说实话,喜欢 acbuild,还是喜欢 Dockerfile 格式,这真的只是个人口味问题。好处就在于它天生就跟 Linux 原则距离更近。而最大的好处就是开放格式允许可替代的构建机制。比如,考虑到全能创建工具 dgr 或者 Golang 指定创建工具 goaci。一旦 OCI 格式可用,就会有更多可能,但是现在,我们还是需要等待。

Rkt:我们到达目的地了吗?

如果你现在就想要开始使用 rkt,那么你在使用道路上会有一些磕绊。虽说你可以在磕磕绊绊之中找到方向,但是不得不承认的是,在我写这篇文章的时候(也就是现在),说 rkt 一切都已经准备妥当还为时过早。不过,我相信,只是时间问题。

OCI 镜像格式还没有准备好

就像在上文中提到过的那样,rkt 支持 Docker 镜像格式,而且跟 Docker 仓库互相沟通联系。如果你能够坚持使用 Docker 镜像格式,那么相信它,它会运行得很好。 
但是,如果你是个吹毛求疵的人——像我似的——你就没办法容忍在使用 Docker 的时候,你还无法使用命名的端口。所以,你就会想要使用 appc 容器。appc 容器是可以自由使用的。但是你要怎么上传 appc 容器给 Core OS 解决方案到 Docker Hub——quay.io?我自己是还没有找到这样的方法。

关于 appc 格式最好的一点就是,它并不是跟特定的 Docker 仓库相联系。反而,你可以在普通 http 服务器上,或者是在本地文件系统宿主镜像。你可以丰富包含元标签的 HTML 文件的原数据。

一旦 OCI 镜像格式达到,rkt 才有可能真正 take off,变得足够成熟,准备足够充分来被接受,作为每个人心中的标准——包括 Docker。

Nomad&Kubernetes 还没有完全成熟

为了在产品中运行容器,在某种程度上,你需要一个调度程序来控制运行什么程序,在哪里运行。目前,Kubernetes 和 Nomad 都支持 rkt。但是这种支持并没有大家期望得那样成熟。 
Kubernetes 支持 rkt 是从积极开发的状况下来说的。它有最小文档以及一系列已经知道了解的问题。Nomad 支持标记试验,但是不支持动态端口。

对于其它平台来说就不那么轻便

好在 rkt 不仅仅支持 CoreOS。你可以在多个平台上,比如分布式 Linux,Debian,Ubuntu 以及 Fedora 上安装 rkt。

如果你想在你的 Apple/Windows 开发机上运行 rkt,你当然可以在像 virtualBox 这样的虚拟层运行。但是,这些设备没有 Docker 的工具盒那么好用——特别是最新的 Docker Mac/Windows 测试版,这也就给了你一种 native 的感觉。要承认的是,这可能就是 rkt 架构上的缺点,在这点上,可执行的 rkt 已经做了所有的工作,而不只是作为一个 REST 代理。

如果你想要在非 Linux 机器上开发,最好的办法就是仍然在本地用 Docker 镜像进行处理,并且在你转到 staging 和生产的时候,要将这些转化为 appc 镜像。

结论

虽然这么说还很早,但是 rkt 现在已经变成 Docker 的一个可执行方案。如果你不需要 Kubernetes,Nomad 的动态功能,以及更多像 systemd,fleet 这样的静态选项,来满足你的调度准则,那么你现在就可以将你的 staging 和产品服务器转移到 rkt 了。 
相信再有多一点的时间,Docker 和其它容器平台间会有真正的互操作性,以 OCI 镜像的形式出现。同时,允许 Kubernetes 和 Nomad 支持 rkt 的发展,然后 Docker 会跟 rkt 容器平台会一样可交换。

那现在有必要摒弃 Docker 吗?不,没有必要。除了这篇文章中提到的一些 Docker 的缺点,Docker 还是个有着很多开发工具,调度程序,编排的巨大生态系统创新平台。重要的是,我们要有足够多的选项。现在 Docker 有很多的竞争对手来保持清醒。

2026年AI编码平替实战指南:本地化、离线化与VS Code原生能力深度整合 AI编程辅助已从‘云端补全工具’演进为‘本地化智能开发栈’,其核心在于脱离中心化API依赖,实现模型轻量化部署、编辑器内核级集成与项目上下文感知。Trae Solo通过上下文感知剪枝与编辑器hook技术,在消费级GPU上达成高精度离线补全;Hermes Agent以RAG+工作流编排重构开发范式,支持项目级任务调度与安全沙箱执行;而VS Code 1.88原生Copilot Free通过本地代理通道、AI增强代码片段与终端智能代理,释放被长期低估的免费生产力。三者共同指向一个技术共识:真正的‘永久免费’= 阅读详情

相关推荐

Kimi K2.5本地化部署实战:前端工程语境理解与AI编程范式升级

AI编程助手正从‘代码补全工具’演进为‘全栈工程语境翻译器’——其核心能力不再仅依赖语言模型参数规模,而在于对真实开发场景中跨模态输入(代码+注释+PR描述+PDF协议+错误堆栈)、结构化规范(OpenAPI/YAML/TS类型系统)及团队工程约定(命名风格、构建链路、协作意图)的深度建模。Kimi K2.5凭借GitHub仓库级预训练、中文技术生态微调与本地化部署支持,在跨文件引用理解、非代码文本联合推理、错误归因速度等关键指标上显著优于ClaudeCode与GPT-4 Turbo,尤其适配Vue3/Re

A08110123的博客 365

React为何是全栈工程师的最佳能力触发器

全栈开发本质是前后端协同解决真实业务问题的能力,其核心在于理解HTTP协议、数据流一致性、环境耦合与可观测性等基础工程原理。React虽为前端框架,但凭借useEffect副作用管理、服务端渲染(SSR)支持、生态工具链(Vite/Next.js)对构建部署的深度集成,天然将后端问题(如认证鉴权、数据库事务、Docker容器化、CI/CD)以可调试错误的形式暴露在前端上下文中。这种‘问题即教学’机制,使React成为驱动全栈认知闭环的高效触发器——它不替代后端知识,而是将Node.js、PostgreSQL

dingguayi7025的博客 432

Autoware与Apollo底层机制深度对比:中间件、定位、感知、控制全栈解析

自动驾驶开发平台选型本质是系统架构决策。Autoware基于ROS2和FastDDS,强调模块解耦与算法可替换性,适合科研验证与分布式场景;Apollo采用自研CyberRT中间件与ESKF融合定位,以零拷贝通信和车规级确定性延迟支撑L4量产需求。二者差异不在功能多寡,而在数据流设计哲学——前者是‘可调试的乐高’,后者是‘需敬畏的精密仪器’。理解FastDDS序列化开销、CyberRT共享内存管理、NDT与BEV定位范式、EKF与ESKF滤波演进、以及CAN FD工业协议支持等关键技术分水岭,才能在高校算法

weixin_30521161的博客 332

三年后,我们从 Docker 转到了 RKT

在 Swarm 被纳入 Docker 1.12后,Swarm 与 K8S 之争日趋白热化。本文作者 Adriaan de Jonge 身为 Xebia CTO ,专精 DevOps 及持续交付,曾为 Docker 摇旗呐喊三年的老司机,如今开始易帜。 现在即使是最酷的产品也绑定于某个特定供应商。不管在过去的三年里,我曾多么热衷 Docke...

weixin_34080903的博客 394

Autoware与Apollo开源自动驾驶平台深度对比

自动驾驶软件平台是支撑L4级功能验证的核心基础设施,其本质是融合实时中间件、多源定位、环境感知与运动控制的全栈技术体系。底层中间件决定数据流转的确定性与时延特性:ROS2/Fast DDS强调生态兼容与开发灵活性,CyberRT则以共享内存实现微秒级零拷贝通信,牺牲资源弹性换取强实时保障;定位模块的关键不在算法本身,而在于对不确定性(如GNSS失效、传感器漂移)的建模与收敛能力;感知系统需超越单帧识别,构建时空一致的环境理解。这些技术选型直接映射到实车闭环效率、硬件适配成本与工程交付稳定性。本文聚焦Auto

weixin_30363509的博客 331

手把手教你用DJI M100和ZED相机搭建空地协同SLAM实验平台(含Gazebo仿真)

本文详细介绍了如何利用DJI M100无人机和ZED相机搭建空地协同SLAM实验平台,包括硬件选型、软件配置、Gazebo仿真及通信优化策略。通过实战案例和调试技巧,帮助开发者快速掌握视觉SLAM技术,实现无人机与地面机器人的高效协同建图与导航。

weixin_42523792的博客 374

容器云系列之Docker管理工具Docker-compose

Docker-compose和Docker machine是Docker容器管理的工具,本文简单介绍了Docker-compose的使用,并结合案例Haproxy实现负载均衡加深对Docker管理的理解。

牧羊人的方向 1206

无人机飞控开发入门:从零搭建知识框架的5个关键步骤(附推荐书单)

本文详细介绍了无人机飞控开发入门的5个关键步骤,帮助初学者从零搭建知识框架。内容涵盖传感器融合、PID控制、嵌入式编程等核心概念,并提供了精选书单和开发环境搭建指南。通过模块化认知框架和渐进式实践方法,读者可在6个月内掌握飞控开发技能,特别适合对无人机飞控系统感兴趣的开发者。

yhn45678901的博客 891

Docker 替代方案:适用于 SaaS 应用程序的 10 种 Docker 替代方案

Docker技术已经在基础设施管理领域引起了革命性的变化,以至于Docker现在已经成为容器的代名词。重要的是要理解,所有的Docker都是容器,但并非所有的容器都是Docker。虽然Docker是最常用的容器技术,但还有其他几种替代Docker的选择。在本博客中,我们将探讨适用于你的SaaS应用程序的Docker替代方案。什么是Docker?Docker是一个在IT圈子中非常流行的应用容器化平台。这个开源软件使开发人员能够轻松地将应用程序与其依赖项、操作系统、库和其他运行时相关资源打包到容器中,并自动部署

2132

COMSOL多物理场仿真:瓷绝缘子电热耦合建模与优化策略

本文详细介绍了使用COMSOL Multiphysics进行瓷绝缘子电热耦合仿真的完整流程与优化策略。文章阐述了电热耦合效应的工程意义,并逐步讲解了从几何建模、材料定义、物理场设置到边界条件与网格划分的关键步骤。重点分析了如何通过焦耳热耦合实现电场与温度场的双向交互,以及如何利用仿真结果进行参数化优化和瞬态故障模拟,为提升电力设备可靠性提供有效的数字化设计工具。

n8m7b6v5c4的博客 883

Linux密码破解(使用hydra工具和使用john暴力破解)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录一、使用hydra离线破解linux密码1.准备实验环境2.创建用户名字典3.hydra密码爆破二、复制shadow文件,使用john暴力破解1.实验环境1.复制linux的shadow文件2.john暴力破解 一、使用hydra离线破解linux密码 1.准备实验环境 ①攻击机:kali_linux 2021.2(ifconfig查询IP地址:192.168.119.132) ②靶机:Ubantu 16.04(ifconfig

weixin_46447549的博客 2万+

RK3568成功使用docker

第一行是将arch/arm64/configs/xxx_defconfig配置文件中的内容写入linux源码/kernel/.config中,较为简单的方法是找到xxx_defconfig文件,直接将缺少的配置写入,如CONFIG_NF_NAT=y写入。首先需要从docker官网下载./check-config-for-docker.sh .config文件,查看当前内核的.config缺少了docker的哪些配置。第二行是打开图形化配置界面,进行配置输入 /CONFIG_ xxx 来查询缺少的配置。

weixin_46495125的博客 3118

利用featureCounts实现高效转录本定量:从比对到下游分析

本文详细介绍了利用featureCounts工具进行RNA-seq转录本定量的完整流程。从软件安装、输入文件准备,到核心命令参数解析与批量样本处理,再到将生成的计数矩阵无缝衔接至DESeq2进行差异表达分析,提供了从比对到下游分析的一站式实战指南。文章重点阐述了featureCounts在效率与易用性上的优势,并分享了常见问题排查与性能优化技巧,帮助研究者高效完成转录本定量这一关键步骤。

weixin_29069131的博客 317

docker

Docker最初是dotCloud公司创始人Solomon Hykes在法国期间发起的一个公司内部项目,它是基于 dotCloud公司多年云服务技术的一次革新,并于2013年3月以Apache 2.0授权协议开源,Docker是用Go编 写,主要项目代码在GitHub上进行维护。Docker是一个用于开发,交付和运行应用程序的开放平台。Docker使用户能够将应用程序与基础架构 分开,从而可以快速交付软件。借助Docker,用户可以以与管理应用程序相同的方式来管理基础架构。

czzwa的博客 1182

【实战篇导读】四足机器人运动控制导读

认知有限,望大家多多包涵,有什么问题也希望能够与大家多交流,共同成长!本文先对四足机器人运动运动控制系统及相关算法做个简单的介绍,具体内容后续再更,其他模块可以参考去我其他文章主要介绍了波士顿spot机器人的发展历史、四足机器人的硬件系统及电机执行器组成包括硬件系统、关节电机执行器,机载传感器机处理器及电气连接等。概述了四足机器人规划控制、感知、定位及局部地图的相关算法方向。

qq_35635374的博客 678

IEC 104电力规约详细解读(五) - 遥控

主站下发遥控选择命令,子站进行遥控选择返校,若成功则回答遥控选择成功报文,若失败则回答失败报文。主站下发取消遥控命令或者遥控执行命令行。子站皆以报文的镜像确认。遥控命令用来实现对一个可操作设备状态的改变。在配电自动化中,包括单点命令和双点命令。通常,单点命令用于控制单点信息对象;双点命令用于控制双点信息对象。

张二狗的博客 7349

RTK Benchmark体系解析:如何用benchmark.sh快速复现Token节省数据

**RTK** 是一个用 Rust 编写的 CLI 代理,能把 LLM 读取的命令输出压缩 60%~90%。而它的可信度,正来自一套可复现的 Benchmark 体系:一条 `benchmark.sh` 命令,就能在你自己的机器上重新算出这些"省了多少 token"的数据。本文带你走完全部流程。 ## 一、为什么性能数据需要"可复现" RTK 的核心卖点是:`ls`、`git log`、`ca

gitblog_00489的博客 1347

全网最全-QCC51xx-QCC30xx(TWS)系列从入门到精通开发教程汇总(持续更新中)

QCC3040开发笔记之基本介绍(0) QCC3040开发笔记之开发环境搭建(1) QCC3040开发笔记之debug调试(trb调试,usbt调试,adb调试,WIFI调试)(2) QCC3040开发笔记之按键配置(3) QCC3040开发笔记之按键切换(4) QCC3040开发笔记之按键逻辑(5) QCC3040开发笔记之tone(6) QCC3040开发笔记之提示音(7) QCC3040开发笔记之bitserial接口(8) QCC3040开发笔记之双mic+AEC+ANC(9...

心跳包的博客 3万+

RTK vs 自己写输出过滤器:为什么单文件CLI代理才是AI省钱正解

RTK(Rust Token Killer)是一个用 Rust 编写的**单文件 CLI 代理**,它在命令行输出进入 LLM 上下文之前完成过滤与压缩,帮 Claude Code 等 AI 编程助手减少 **60%–90% 的 bash 输出 token 消耗**——这正是当下最省心的 AI 省钱方案。 ## 📉 AI 编程助手的 token 都浪费在哪了? 用 AI 编程助手时,它每执行

gitblog_00202的博客 331

华为OD机试新系统真题-魔法咒语组合(Java/Py/C++/Go/C/Js)

华为OD机试 新系统真题【魔法咒语组合】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试真题【魔法咒语组合】多语言题解

qq_45776114的博客 667

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

yuzu模拟器实操教程:4步在电脑上跑起Switch游戏

某天晚上 Switch 底座 HDMI 线松了,手边却有大屏和闲置手柄。yuzu模拟器是用 C++ 编写、采用 GPLv3 协议的开源项目,能把 NSP/XCI 游戏文件搬上 PC。这篇教程带你从安装到进游戏,4 步走完。 ## 一、跑 yuzu模拟器前给机器体检 🩺 | 硬件 | 够用(能跑) | 流畅 | 拉满 | | --- | --- | --- | --- | | CPU | 支持

gitblog_00090的博客 416

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

ubuntu1604 Autoware 的安装与官方Demo的运行

转载自:https://blog.youkuaiyun.com/r1141207831/article/details/100666532 (注:以下过程是本人亲自走过的过程,使用的是清华源,Ubuntu1604,ROS Kinetic,CPU版本的,安装的Autoware.AI为1.12.版本,参考官方网址为https://gitlab.com/autowarefoundation/autoware.ai...

运动的肉肉子的博客 1274

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

ChatGPT面试模拟全栈工程师岗位(附Prompt库+评分表+避坑清单)

用ChatGPT模拟面试官高效备战全栈工程师岗,覆盖技术问答、行为题与系统设计。提供可复用Prompt库、量化评分表及高频避坑清单,助你精准定位短板、提升临场表现。真实场景还原+结构化反馈,值得收藏。

VarFlow的博客 173

终极React开发环境配置指南:10个最佳实践提升开发效率 [特殊字符]

React作为当今最流行的前端框架之一,为开发者提供了强大的组件化开发体验。然而,要充分发挥React的潜力,一个精心配置的开发环境至关重要。本文将为您介绍React开发环境配置的最佳实践,帮助您构建高效、可维护的React应用。 ## 为什么React开发环境配置如此重要?🤔 React开发环境不仅仅是安装Node.js和运行`npm start`那么简单。一个优秀的开发环境能够显著提升开

gitblog_00470的博客 347

从零构建现代化Web应用:Next.js、tRPC与Prisma全栈技术栈实践

现代Web应用开发已从传统三件套演进为涵盖前后端、部署运维的复杂系统工程。其核心在于通过合理的技术选型与架构设计,构建高性能、可维护的应用。从原理上看,前后端分离架构已成为主流范式,它通过清晰的职责划分提升开发效率与系统可扩展性。在技术价值层面,类型安全、端到端类型保障和优秀的开发者体验是提升工程效能的关键。具体到技术实现,React生态配合服务端渲染框架(如Next.js)能有效解决SEO与首屏性能问题,而ORM工具(如Prisma)与类型安全的API方案(如tRPC)则确保了数据层与接口层的可靠性与开发

weixin_42584507的博客 310
上一篇: Web services nginx+php
下一篇: linux basic knowledge
screaming
博客等级 码龄19年 61粉丝 6原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值