使用Gradle构建项目,尝试用的属性,与数据库、缓存,MQ搭配,以及构建模板。 Gradle介绍 Gradle 是一个构建自动化工具 用来做三件事: 编译 Java / Kotlin 管理依赖(类似 Maven) 组织多模块工程 一个 Gradle 项目本质是: 1 Gradle = 一堆 Project + 每个 Project 的 build.gradle 每个 build.gradle 里都是“配置块”。 Gradle核心模型 Gradle 有 3 个核心对象: Project(项目) 每个模块都是一个 Project: 1 2 3 4 root project ├── api ├── service ├── reposit…
阅读全文这周的两件大事包括K3模型发布以及pi-agent逐渐走入视野。这无疑又给Agent应用的热度推上新的高峰 Agent发展 Loop Engineering AddyOsmani.com - Loop Engineering 过去两年,AI 开发的重点正在不断变化:从研究如何写好提示词(Prompt),逐步发展到组织上下文(Context)、编排工具与流程(Harness),再到构建能够自主运行、持续交付结果的循环系统(Loop) 人不再逐轮手敲 Prompt,而是写一个外循环系统,由系统定时/事件触发 → 派发 Agent → 验证产出 → 记状态 → 决定继续或停止。 1 2 3 4 5 6 7 Prompt:怎么问 AI ↓…
阅读全文
03起因是想用自动化的流程做一些游戏任务,右面发现了MAA相关资源并尝试学习开发一些流程。这里总结一下踩坑和经验。 开发环境搭建 最早是从MaaAssistantArknights/MaaAssistantArknights中脱离的框架,目前用于MAA1999/M9A: 重返未来,overflow65537/MAA_SnowBreak等等项目。框架在下文中简称maa或maafw. 官方简介如下: MaaFramework 是基于图像识别技术、运用 MAA 开发经验去芜存菁、完全重写的新一代自动化黑盒测试框架。低代码的同时仍拥有高扩展性,旨在打造一款丰富、领先、且实用的开源库,助力开发者轻松编写出更好的黑盒测试程序,并推广普及。 推荐vs…
阅读全文
04最近正式开始使用Claude Code/Codex/Gemini CLI+CC-Switch+API的Agent Coding的方式构建项目。之前是直接用Copilot和Trae这种跟IDE结合更紧密,也提供了编辑文件,浏览目录以及测试命令的功能,但Claude Code明显提供了更好的体验以及更先进的AI编程工程范式。 这里做一些实战总结,主要是Claude Code使用上。 Claude Code是什么 Claude Code 是一个代理编码工具,可以读取你的代码库、编辑文件、运行命令,并与你的开发工具集成。可在终端、IDE、桌面应用和浏览器中使用。Claude Code 是一个由 AI 驱动的编码助手,可帮助你构建功能、修复错…
阅读全文
05介绍一些网络协议,主要内容来自极客时间趣谈网络协议. 直播中用到的协议 直播主要是视频,本质可以看作图片流。假设30帧的视频,像素1024*768,每个像素由RGB组成,每个8位,共24位。一秒钟的数据量30帧 × 1024 × 768 × 24 = 566,231,040Bits = 70,778,880Bytes达到4个G. 因此需要通过压缩或者说编解码减少数据传输,既然压缩,就要规定编解码协议 频流中的图片进行压缩,因为视频和图片有这样一些特点。 空间冗余:图像的相邻像素之间有较强的相关性,一张图片相邻像素往往是渐变的,不是突变的,没必要每个像素都完整地保存,可以隔几个保存一个,中间的用算法计算出来。 时间冗余:视频序列的相邻…
阅读全文
06自AI Coding或者说Vibe Coding流行起来,开发者也意识到如何利用以及约束AI以写出更好维护、扩展的生产级代码越来越重要。Anthropic提出Harness工程以长时间使用Agents生产代码。本篇文章主要介绍一下Harness工程以及相关实践。 自Transformers为基底的ChatGPT流行起来,以自然语言作为主要沟通的方式与模型进行对话,同时,包括图像、音视频的多模态、跨模态模型也越来越多,用于不同任务的模型也越来越多。在编码任务中,Claude Sonnet、Opus,GPT,GLM,DeepSeek,Kimi,Gemini等都发挥出色SWE-bench Leaderboards。 随着基底模型发展的越来…
阅读全文
07C++的一些概念复杂而且存在一些容易使用错误的地方,这里进行部分总结. 基础 const关键字 const 是一个关键字,用于表示常量。 const 可以用于修饰变量、函数、指针等: 1.修饰常量 当 const 修饰变量时,该变量将被视为只读变量,即不能被修改。 对于确定不会被修改的变量,应该加上 const,这样可以保证变量的值不会被无意中修改,也可以使编译器在代码优化时更加智能。 但理论上也可以赋给const int*再进行类型转换修改, 1 2 3 4 5 6 7 8 9 10 11 #include using namespace std; int main() { const int num = 10; const in…
阅读全文
081ec2dee17da1b1b57a583b6340ef2233c9b72065fac3a317b2c8ecb37716c370ea1cd3cc30477f5679d264276c83dd344e8df799680860c4770b2df8be3888625bb353adbb256b201e1d15d80835c1d6512470792b21b2db659d9b5215c2365f0b2495eb2bfbb83136d2666e47bffc420c5ea531011b1918ae0bfb80b1e7012ca2f1f64a503634b53e99092cab77108ff731132ab080317a7eaf49945f902075…
阅读全文最近OpenClaw(原moltbot)实在是大火了一把,有如当时DeepSeek的国内热潮。但是DeepSeek模型的训练、微调包括前端的数据集收集和清理等都不是一般人能负担的,而OpenClaw不仅代码开源,在Agent开发的工程技术上也提供了一些实践,由此引入了一波”养虾潮”。 早期Langchain,llamaIndex以及AutoGen等都封装了一系列工具调用、记忆机制、分块策略以及结构化输出等。 目前langchain团队有Deep Agents,LangGraph,LangSmith以及LangChain等开源框架,都与AI应用开发与部署相关。 但这些框架都是用于开发AI产品的,实际的AI应用又往往依附具体平台。Ope…
阅读全文
10b8c934a8d8cbadfbda0d792160af5b4530f95f27f575f8890760d3b4aaa38d388fd034e8dc3c866909026ae27d362c21177324f5a16fd5fece1c0ecab32daca8aa2bf610d62a15de973d0138db8f2f10721fabc8f29d61bdbb77db3e346801946f9e38e1e828d8079e56a488314358da6fd2bb76d3f58d20fe4c9b062cdecfed78f0da9765a982872051cac56a5f53ad362396a6a58beae5c8c6c168d42d8d3d…
阅读全文Vibe Coding自提出以来,就有各大互联网公司、模型厂商以及开发者响应,提出许多基础优化编码。从模型的训练Function Calling能力和上下文长度提升,到Prompt技术,RAG增强,再到MCP统一协议获取信息,再到最新的SKILL。从Copilot,Cursor,Claude Code,OpenCode,Trae,国内外各大公司和开源产品都纷纷自己实现了相关协议或者提出了相关功能。这里就我比较常用的几个编码IDE进行实践,使得能够更加成熟方便地Vibe Coding. 省流版:个人推荐vscode+copilot或者Zed+Opencode 如果嫌麻烦直接上Trae. 此外还有Windsurf,Qoder以及goog…
阅读全文
12搜集到了关于现代即时通讯(IM)系统中一些设计方案,作为分布式集群应用的集大成者,这里进行总结学习。这些资料基本来自52im.net。在此感谢站长和作者们。 零基础入门 IM其实并不局限于聊天、社交这类“典型”应用中,实际上它已经广泛运用于我们身边形形色色的软件中。 聊天、直播、在线客服、物联网等所有需要实时互动、高实时性的场景等等,都需要应用到 IM 技术。 1)微信、qq、钉钉等主流IM应用:这是IM技术的典型应用场景; 2)微博、知乎等社区应用:它们利用IM技术实现了用户私信等点对点聊天; 3)抖音、快手等直播/短视频应用:它们利用IM技术实现了与主播的实时互动; 4)米家等智能家居物联网应用:利用IM技术实现实时控制、远程监…
阅读全文
13最近字节跳动的 SeedDance 再次刷爆社媒。虽然作为闭源模型,其底层架构是否彻底从 DiT(Diffusion Transformer)进化到了更高效的架构尚不可知,但一个明确的趋势是:AI 商业化应用在经历了过去几年的技术积淀后,正迎来真正意义上的落地爆发。 作为程序员或内容创作者,我们的选择变多了,但认知的边界也在不断扩张。在这些层出不穷的应用中,我们需要警惕那些夸大其词的包装,真正的应用盈利点仍需深挖,工具的长期价值仍需时间检验。 早期的 AI 分类习惯于按文本、图像、视频、声音来切分,但随着原生多模态的成熟,按任务场景来区分变得更为科学。 任务导向:对话助手向“全能中枢”演进 2026年的基础对话助手已不再仅仅是聊天机…
阅读全文
1436f29f3a8a3599dfb9e50adddc71ef17f889143c3729484ef1b08a49ece73bd816e66da72ae603bd8a0f855afe7c9aef72a837931d792debc1a09d35d3f033e99e4088d7bcc5cc519beb311785d8c8bb96560133cba6d19aa6d724c5c4b1974a854769800190f094cc39d518e07b53cd5f52df1800ad3744c8c627edddc8a50f5e3ad0ae6ab292104b0d2872fd298ac97355dfd16a5db02d519dbdd2874ca671…
阅读全文再次总结经典算法题目。 复杂度分析 一个程序的运行时间主要和两个因素有关: 1.执行每条语句的耗时。2.执行每条语句的频率。前者取决于硬件,后者取决于算法本身和程序的输入。在相同的硬件环境下,不同算法的执行时间只取决于语句的执行频率,因此可以将对执行时间的关注进一步简化为对执行频率的关注。 定义:$T(n) = O(f(n))$ 表示当 $n$ 趋于无穷大时,$T(n)$ 的增长率不超过 $f(n)$。 复杂度名称形象描述典型案例 $O(1)$常数阶无论数据多少,一瞬间完成数组下标取值、哈希表单次查询 $O(\log n)$对数阶每走一步,范围缩小一半二分查找(Binary Search) $O(n)$线性阶每一个都要过一遍简单遍历…
阅读全文
16线段树(Segment Tree)是处理区间问题的神器。如果你厌倦了 $O(N)$ 的暴力遍历,又觉得前缀和(Prefix Sum)处理不了动态修改,那么线段树就是那个能带你进入 $O(\log N)$ 世界的理想工具。 线段树 线段树就是把一段序列变成一棵二叉树,通过分治的思想,让原本需要扫一遍的操作在对数时间内完成。 线段树 segmentTree 是一个二叉树,每个结点保存数组 nums 在区间 [s,e] 的最小值、最大值或者总和等信息。线段树可以用树也可以用数组(堆式存储)来实现。对于数组实现,假设根结点的下标为 0,如果一个结点在数组的下标为 node,那么它的左子结点下标为 node×2+1,右子结点下标为 node×…
阅读全文最近阿里云服务器要一年续期了。云服务器商的潜规则就是割老韭菜,旧服务器的续期费用远多余重新买相同配置的服务器。新韭菜的服务器价格更低,所以不得不每一年换个服务器。这里记录一下备份操作。 宝塔面板 安装宝塔面板主要包括数据库,php网站(wordpress),ftp等数据。利用宝塔面板本身的网站迁移功能。 安装的应用 除了wordpress网站之外,我也安装了一些非docker应用。 filebrowser filebrowser.org/installation.html 创建systemctl服务 1 2 3 4 5 6 7 8 9 10 11 12 [Unit] Description=File Browser After=ne…
阅读全文
18已经使用latex写论文一段时间了,但对于cls模板还是缺乏认识。这里尝试从基础命令开始写一个简单模板。 当我们撰写一个Latex文档时,可能会使用.cls以及.sty包,在 LaTeX 体系中,.cls 和 .sty 是两类地位完全不同、但经常配合使用的文件。Latex的模板就捆绑了 class (.cls)、style (.sty)、示例 .tex 文件和支持资源(徽标、参考书目文件等),这些资源定义了特定文档类型(期刊文章、论文、简历、海报、幻灯片等)的布局、排版和结构。 .cls 定义的是 文档的“身份”和全局结构”,例如: 单栏 / 双栏 页面尺寸、边距 字号体系 章节结构(section / subsection) 浮动…
阅读全文一些智力题涉及到分治,贪心以及递推优化等问题,这里参考网上的资料进行总结 赛马问题 有25匹赛马,每次赛跑最多只能有5匹马同场竞技,且没有计时设备。请设计一个方法,找出这25匹马中跑得最快的 前3名,最少需要进行多少次比赛? 题目要求在 25 匹赛马中找到最快的前三名,但每次最多只能让 5 匹马同时比赛,且没有计时设备(只能通过相对排名判断快慢)。我们需要设计一种最优策略,使比赛次数最少 思路:每5匹马进行一次比赛可以得到这5匹中最快的结果,但是比赛5次得到的5匹马中,有可能其中只有1匹在前三名中。所以先进行初步竞争,得到5组的第一名,再进行比赛得到最快的一匹马S1。剩下二三名S2,S3的竞争对手可能来自S1同组的第二三名以及S2同…
阅读全文目前LLM应用集中在开发所谓AI智能体,理想中的AI智能体能够自主感知环境并作出决策,与环境的变化不断反馈,同时具备记忆,反思和工具能力.而目前的AI应用中,效果最好,成本也低的还是RAG. RAG应用场景 RAG全称是“Retrieval-Augmented Generation”,即“检索增强的生成”。当设计一个LLM问答应用,模型需要处理用户的领域问题时,尽管大模型通常表现出色,但有时提供的答案并不准确,甚至可能出现错误。当用户需要获取实时信息时,模型无法及时提供最新的答案。这种现象在LLM应用中较为常见。 这些模型仍然存在一些无法忽视的局限性。其中,领域知识缺乏是最明显的问题。大模型的知识来源于训练数据,这些数据主要来自公开…
阅读全文