<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>WikiFw 维基框架</title>
    <link>https://blog.framewiki.com/</link>
    <description>基于 Spring Boot、Spring Cloud 的微服务快速开发平台</description>
    <language>zh-CN</language>
    <lastBuildDate>Thu, 25 Jun 2026 13:19:01 +0000</lastBuildDate>
    <atom:link href="https://blog.framewiki.com/rss.xml" rel="self" type="application/rss+xml"/>
    <item>
      <title>基框架（WikiFw）重大更新 v1.2.0 发布更新日志</title>
      <link>https://blog.framewiki.com/articles/2026/06/wiki-v120.html</link>
      <guid isPermaLink="true">https://blog.framewiki.com/articles/2026/06/wiki-v120.html</guid>
      <pubDate>Thu, 25 Jun 2026 04:14:03 +0000</pubDate>
      <description><![CDATA[发布日期：2026-06-25
版本升级：全模块 1.1.x → 1.2.0
最低 JDK 版本：JDK 17+（如需 JDK8 兼容请使用 1.0.7 及以下版本）  


总体数据



项目
数量




变更文件
136 个


新增代码
+4782 行


删除代码
-1587 行


非合并提交
约 35 个




一、新增了哪些
1. wiki-datasource — MyBatis 主从读写能力（核心）



新增内容
说明




@Master / @Slave 注解
在 Mapper 上显式指定主库/从库


DataSourceAspect
AOP 拦截 Mapper 调用，动态切换数据源


DynamicDataSource
路由数据源，按上下文选择主/从


DataSourceContextHolder
ThreadLocal 保存当前数据源类型


DataSourceType 枚举
MASTER / SLAVE


MapperPrimaryScannerConfiguration
主库 Mapper 独立扫描


MapperScannerCo]]></description>
    </item>
    <item>
      <title>百度 Unlimited OCR：当 OCR 终于不用"翻页"了</title>
      <link>https://blog.framewiki.com/articles/2026/06/983822744.html</link>
      <guid isPermaLink="true">https://blog.framewiki.com/articles/2026/06/983822744.html</guid>
      <pubDate>Wed, 24 Jun 2026 03:14:03 +0000</pubDate>
      <description><![CDATA[2026年6月24日
前两天刷 HN，看到一个项目把我整愣住了。
Baidu Unlimited OCR，今天（6月23日）刚发 arXiv，431 points，评论区近百条。标题写的是 "Welcome the Era of One-shot Long-horizon Parsing"。
长——水——平——解——析。
什么意思呢？就是你丢给 OCR 一张一百页的 PDF，它不翻页、不切块、不分段，一口气从头读到尾。什么文档结构、章节标题、表格、脚注、页眉页脚——全在一个推理步骤里搞定。
说实话，我第一反应是：吹的吧。
揉着眼睛又看了一遍 GitHub 上的 README。百度团队明确写了，这是 DeepSeek-OCR 的升级版。大家知道 DeepSeek-OCR 本来就是目前开源 OCR 里的头部选手，但它的局限在于——你得把页面切成小块，一块一块喂进去。遇到跨页的表格？麻烦。遇到需要上下文才能理解的脚注引用？更麻烦。
Unlimited OCR 的卖点就是：不切了。

怎么做到的？我在 README 里翻了半天。
架构上，它用的是 transformer backbone + ]]></description>
    </item>
    <item>
      <title>欧洲开源基模的野心与迟缓</title>
      <link>https://blog.framewiki.com/articles/2026/06/122612649446.html</link>
      <guid isPermaLink="true">https://blog.framewiki.com/articles/2026/06/122612649446.html</guid>
      <pubDate>Wed, 24 Jun 2026 03:14:03 +0000</pubDate>
      <description><![CDATA[上周四凌晨两点，我蹲在显示器前刷 Hacker News，一杯凉透的咖啡搁在手边，屏幕上一个标题让我停住了——Apertus，一个欧洲搞的开源基础模型项目，一百五十多个赞，五十二条评论。我点进去，评论区炸了。有人拍了桌子骂"这帮人开会都开到下个世纪去了"，也有人冷冰冰地丢出一句"真正的问题从来不是开源还是闭源，是你的模型跑在本地还是跑在别人的服务器上"。我把浏览器标签页留着没关，第二天早上又翻了一遍，发现有些东西值得拆开来讲。
说实话，我第一次看到"Sovereign AI"这个词的时候，脑子里蹦出来的是 Cohere。他们不是早就在卖这个概念了吗？企业私有化部署、数据不出境、主权AI——Cohere 的 pitch deck 里翻来覆去就这几张牌。那 Apertus 凭什么？后来我把他们白皮书翻了一遍，发现事情没那么简单。Cohere 卖的是服务，模型权重你碰不到，API 调用走他们的网关，数据虽然承诺不留存，但你信不信是另一回事。Apertus 走的是完全开源路线——权重、训练代码、数据管线、评估脚本——全部摊在桌面上。

这意味着什么？意味着一个国家的科研团队可以把 Apertu]]></description>
    </item>
    <item>
      <title>本地模型能替代 Claude 和 GPT 吗？HN 上吵翻了</title>
      <link>https://blog.framewiki.com/articles/2026/06/870543705882.html</link>
      <guid isPermaLink="true">https://blog.framewiki.com/articles/2026/06/870543705882.html</guid>
      <pubDate>Wed, 24 Jun 2026 03:14:03 +0000</pubDate>
      <description><![CDATA[今天 Hacker News 上有个帖子炸了：有人用本地模型替代了 Claude 或 GPT 来做日常编码吗？
681 分。评论区四百多层楼。
我翻了大半个晚上的讨论，怎么说呢，味道挺复杂的。
先说说支持派的观点。
有个老哥分享了他的配置：一台 Mac Studio，128GB 内存，跑的是 Qwen2.5 72B 的量化版。他说日常写 Python、写 SQL、调简单的 API，本地模型完全够用。延迟低到几乎感觉不到，而且不用担心网络问题——坐地铁、上飞机都能用。
而且最关键的是：不要钱。
一个月省下几十刀的 API 费用，唯一的成本就是电费。
还有人提到隐私问题。把公司代码传到云端 AI 这件事，很多企业是明确禁止的。合规审计的时候，如果你在本地跑模型，完全不用担心数据泄露。
听起来很美好是吧？
但反对派的理由也很硬。
一个在 FAANG 工作的工程师直接怼了一句："你试过用本地模型写 C++ 模板元编程吗？"
他说，本地模型在 LeetCode 简单题上确实够用。但一旦涉及到复杂的业务逻辑、跨模块的代码重构、或者需要理解整个代码库的上下文——本地模型根本不够看。
还有一个更实际的]]></description>
    </item>
    <item>
      <title>本地模型终于能打了：Gemma 4 实测体验</title>
      <link>https://blog.framewiki.com/articles/2026/06/641801538957.html</link>
      <guid isPermaLink="true">https://blog.framewiki.com/articles/2026/06/641801538957.html</guid>
      <pubDate>Wed, 24 Jun 2026 03:14:03 +0000</pubDate>
      <description><![CDATA[每日一文
2026 年 6 月 17 日
晚上十一点，我盯着终端里跑完的测试结果，沉默了大概十秒。
然后我笑了。
因为本地模型——不是在云端的 API，不是 400 美金一月的订阅——就在我手边这台 M2 Mac 上——终于真的能用了。
说实话，这事儿让我挺感慨的。我从本地模型第一批能跑的时候就开始折腾了。踩过的坑，比走过的路还多。

先说今天的热帖
Vicki Boykis 昨天（6 月 15 日）发了一篇博客，标题特别朴实："Running local models is good now"。
就七个字。
但在 Hacker News 上拿了 998 分。将近一千个开发者点了赞。
这说明什么？说明关注这个话题的人太多了——而且大家都憋着一肚子苦水想说。过去两年里，每次有人问"本地模型能不能替代云端 API"，评论区都是"不行""差太远了""等两年吧"。但这次，风向变了。
Vicki 的配置很实在：一台 2022 年的 M2 Mac，64GB 内存，1TB 存储。不是什么土豪级的 A100 集群，也不是什么双路 4090，更不是那种只有 FAANG 才用得起的 HGX 服务器——就是]]></description>
    </item>
    <item>
      <title>写循环的人：当 AI 编程从"对话"变成"循环"</title>
      <link>https://blog.framewiki.com/articles/2026/06/133056516943.html</link>
      <guid isPermaLink="true">https://blog.framewiki.com/articles/2026/06/133056516943.html</guid>
      <pubDate>Wed, 24 Jun 2026 03:14:03 +0000</pubDate>
      <description><![CDATA[2026年6月24日
我盯着 Boris Cherny 那句话看了半天。
"I don't prompt Claude anymore. I have loops running that prompt Claude and figuring out what to do. My job is to write loops."
不是。这不是在说写 for 循环。他说的是一种新的工作方式——把编程任务丢给一个外部的"绞盘"，让它在 AI 和自己的判断之间反复拉扯，直到任务真正完成。
怎么说呢。第一反应是——这玩意儿靠谱吗？
喝了一口水继续看。Armin Ronacher——Flask 的作者、Sentry 的联合创始人——昨天发了一篇长文叫《The Coming Loop》，直接把这话题推到了 HN 首页，299 points，评论区两百多条。老实说，Flask 作者谈 AI 编程，本身就够有说服力了。

他说的"循环"其实分两层。
内层循环我们都很熟了——AI 调用工具、读文件、改代码、跑测试、再调用工具……这是每个 AI 编码 agent 内部都有的一套循环。Claude Code ]]></description>
    </item>
    <item>
      <title>你的Go代码不需要那么多nil检查</title>
      <link>https://blog.framewiki.com/articles/2026/06/809966087867.html</link>
      <guid isPermaLink="true">https://blog.framewiki.com/articles/2026/06/809966087867.html</guid>
      <pubDate>Wed, 24 Jun 2026 03:14:03 +0000</pubDate>
      <description><![CDATA[凌晨两点半，我把咖啡杯往桌上一搁，盯着屏幕上那个PR发呆。四百多行代码，我数了数，光if x == nil就出现了三十七次。说实话，我当时第一反应不是觉得有问题——而是觉得这哥们儿挺细心的。嗯，防御性编程嘛，多多益善。我原本以为nil检查写得越多代码就越安全，后来发现完全不是那么回事。

这篇文章是Konrad Reiche在六月十六号发的，HN上一百零二人点赞，七十八条评论，吵得挺凶。核心论点其实就一句话：你的代码里到处塞满nil检查，不代表你的代码健壮——恰恰相反，这说明你已经搞不清楚什么东西到底能为nil、什么东西不能为nil了。这话扎心。
怎么说呢，这个观点第一次看到的时候我是有点不服气的。你想啊，一个nil check才几个字节的事，加上又不会多花钱，万一真的panic了呢？但Konrad举了个例子把我说服了。他写了个RateLimiter结构体，里面有个Redis client作为依赖。结果呢，构造函数里——注意是构造函数里，就是你创建这个对象的地方——居然还在检查Redis client是不是nil。这不扯吗？你的构造函数本身就要求传一个非nil的client进来，那你在]]></description>
    </item>
    <item>
      <title>SpaceX 600亿收购Cursor：马斯克的 AI 野心有多大？</title>
      <link>https://blog.framewiki.com/articles/2026/06/448150874326.html</link>
      <guid isPermaLink="true">https://blog.framewiki.com/articles/2026/06/448150874326.html</guid>
      <pubDate>Wed, 24 Jun 2026 03:14:03 +0000</pubDate>
      <description><![CDATA[每日一文
2026 年 6 月 17 日
600 亿美元。
我看完这个数字，第一反应不是"贵"，也不是"值"，而是一个很奇怪的问题：马斯克到底想干嘛？
盯着屏幕愣了三秒。然后拿起手机又确认了一遍路透社的原文——"SpaceX to buy Anysphere for $60 billion"——每个字母我都读了三遍。没看错。

发布会演示我一般只信一半。另一半得等开发者社区开始吐槽以后才知道。PPT 谁都会做。但 600 亿美元是真金白银——就算对 SpaceX 来说，这也是一个让人倒吸一口凉气的数字。
怎么说呢，这事透着一种马斯克式的疯狂。疯狂到我觉得是假的，但又疯狂到确实可能是真的。
先说新闻本身
路透社昨天（6 月 16 日）独家报道：SpaceX 正在收购 Anysphere——也就是 Cursor AI 的母公司——交易估值约 600 亿美元。
对，你没看错。600 亿。
Cursor 是什么？一个 AI 编程助手，基于 VS Code 改造的编辑器，内置了多种大模型来辅助写代码。过去一年在开发者圈子里火得一塌糊涂，几乎成了 AI 辅助编程的代名词。朋友圈里十个程序员，七个在]]></description>
    </item>
    <item>
      <title>Salesforce 36亿美元收购 Fin：AI 客服大战打响</title>
      <link>https://blog.framewiki.com/articles/2026/06/020390357984.html</link>
      <guid isPermaLink="true">https://blog.framewiki.com/articles/2026/06/020390357984.html</guid>
      <pubDate>Wed, 24 Jun 2026 03:14:03 +0000</pubDate>
      <description><![CDATA[Salesforce 昨天官宣了一笔大交易：以 36 亿美元收购 Fin（前身是 Intercom）。
36亿。现金加股票。
我看完这个数字，说实话第一反应是——贵。
不是说 Fin 不值钱。Intercom 在客服 SaaS 领域做了十几年，客户基础很扎实。但 36亿 这个价格，明显是包含了"AI 溢价"的。
什么意思呢？Salesforce 买的不是 Intercom 的客服系统，买的是它的 AI 能力。
Fin 在 AI 客服这块确实有些拿得出手的东西。他们的 AI Agent 能处理大部分常见的客服场景——退款追踪、订单查询、密码重置——而且做得比很多竞品自然。不像是那种"读菜单"式的机械对话，更像是有人情味的聊天。
而且 Fin 的 AI 有个特点：它知道自己什么情况下该转人工。
这个点听起来简单，实际特别难做。很多 AI 客服要么死撑着不转接（客户气炸了），要么动不动就转人工（AI 形同虚设）。Fin 在这两者之间找到了一个不错的平衡点。
Salesforce 买了 Fin 之后，能做什么？
很简单：把 Fin 的 AI 能力集成到 Salesforce 的 Service]]></description>
    </item>
    <item>
      <title>RFC 10008：HTTP 终于有了 QUERY 方法</title>
      <link>https://blog.framewiki.com/articles/2026/06/810159569954.html</link>
      <guid isPermaLink="true">https://blog.framewiki.com/articles/2026/06/810159569954.html</guid>
      <pubDate>Wed, 24 Jun 2026 03:14:03 +0000</pubDate>
      <description><![CDATA[等了几十年，HTTP 协议终于加了一个新动词。
RFC 10008。HTTP Query Method。
我看到这个消息的时候，第一反应是——终于有人把这件事给正式化了。
什么意思呢？
你用 REST API 做过复杂查询吧？比如"获取过去 30 天内、消费金额大于 1000、且地址在北京市朝阳区的用户列表"。
以前的做法是什么？GET 请求，把条件拼在 URL 参数里。
GET /users?created_after=2026-05-17&amp;min_amount=1000&amp;city=北京&amp;district=朝阳

参数少的时候还行。一旦查询条件复杂起来——嵌套、OR 逻辑、模糊匹配、分页、排序——URL 就变成一个怪物了。而且 URL 有长度限制（很多服务器默认 8KB），查询条件一复杂就超了。
然后大家开始用各种变通方案：
- POST 请求带 JSON body（虽然语义上是 GET，但 POST 能传大 body）
- GraphQL（专门发明一套查询语言）
- OData（微软那套，复杂到没人想用）
说实话，POST 做查询这件事，我一直觉得别扭。它违]]></description>
    </item>
    <item>
      <title>Qwen Robot Suite：阿里的大模型开始"动手"了</title>
      <link>https://blog.framewiki.com/articles/2026/06/054012321991.html</link>
      <guid isPermaLink="true">https://blog.framewiki.com/articles/2026/06/054012321991.html</guid>
      <pubDate>Wed, 24 Jun 2026 03:14:03 +0000</pubDate>
      <description><![CDATA[每日一文
2026 年 6 月 17 日
大模型能做数学题、能写代码、能画图——这些我们都已经习惯了。
但如果我说，大模型现在能"控制机器人"呢？
我说的是真的物理意义上的机器人——有手臂、有轮子、有传感器的那种——而不是软件层面的自动化脚本。

先说新闻
阿里旗下的 Qwen 团队昨天发布了一个新项目：Qwen-Robot Suite。
全称是"Qwen-Robot Suite: A Foundation Model Suite for Physical World Intelligence"。翻译过来就是"一套面向物理世界智能的基础模型工具包"。
这个套件包含了什么？官方的描述比较抽象，我拆解一下：

视觉-语言-动作（VLA）模型：给定一张桌子上的物体图像和一句自然语言指令（比如"把红色杯子放到蓝色托盘上"），模型直接输出机器人手臂的关节控制信号。
仿真训练框架：在 MuJoCo 仿真环境中训练机器人控制策略，然后迁移到真实机器人上（sim-to-real transfer）。
多任务泛化能力：不需要针对每个新任务重新训练，模型能理解从未见过的物体和新指令组合。

说实话，这些技]]></description>
    </item>
    <item>
      <title>Oak：给 AI Agent 用的 Git 替代品，到底长什么样</title>
      <link>https://blog.framewiki.com/articles/2026/06/024088509476.html</link>
      <guid isPermaLink="true">https://blog.framewiki.com/articles/2026/06/024088509476.html</guid>
      <pubDate>Wed, 24 Jun 2026 03:14:03 +0000</pubDate>
      <description><![CDATA[我承认，看到 "Git alternative designed for agents" 这个描述的时候，内心是抗拒的。
Git 虽然难用，但它已经统治了版本控制二十年。你做任何替代品，最终结果无非是——比 Git 难用一点但更时髦，或者比 Git 好用但没人用。
简单问答用它属于杀鸡用牛刀。 但 agent 的版本控制不一样。这不是"杀鸡"的问题。
先说说我的场景。上周我让一个 coding agent 帮我重构一个 Spring Boot 项目的 service 层——大概 15 个文件。agent 一顿操作猛如虎，改了大部分文件，加了新的接口，但过程中发生了什么呢？它改了一个文件，发现不对，又改回去——但这时候 Git 的 staging area 已经乱了。我根本分不清哪些是 agent 最终的改动，哪些是它中间探索时留下的残渣。
我原本以为这种场景不多见，后来才发现——AI agent 的工作流跟人类完全不一样。人的 workflow 是线性的：想清楚→改代码→commit。但 agent 的 workflow 是树状的：尝试 A→发现不行→回退→尝试 B→不行但留下了一点有]]></description>
    </item>
    <item>
      <title>NVIDIA Blackwell Ultra：算力狂魔，但散热怎么办？</title>
      <link>https://blog.framewiki.com/articles/2026/06/782388960253.html</link>
      <guid isPermaLink="true">https://blog.framewiki.com/articles/2026/06/782388960253.html</guid>
      <pubDate>Wed, 24 Jun 2026 03:14:03 +0000</pubDate>
      <description><![CDATA[NVIDIA 又发新品了。
Blackwell Ultra。
看到这个名字的时候，我正在机房里巡检。说实话，听到"Ultra"我脑子里就两个反应：第一，性能肯定又炸裂了；第二，电费单子又要涨了。
这次发布会的 PPT 做得很黄（字面意思，NVIDIA 那种标志性的黄），满屏都是"10x Training Efficiency"（10 倍训练效率）和"5x Faster Inference"（5 倍推理速度）。
10 倍。
我盯着那个数字看了半天，心里盘算了一下。
去年我们用 A100 跑一个 70B 模型的微调，花了大概两周。后来换了 H100，缩短到三天。现在 Blackwell Ultra 说能再快 10 倍？
那岂不是说……几小时就能搞定？
但这事儿没那么简单。
发布会演示归演示，真实落到我们这种搞工程的人手里，往往就是另一番景象了。
我先去翻了技术白皮书。
Blackwell Ultra 的核心架构确实猛。它用了新一代的 NVLink 交换机架构，带宽直接干到了 1.8TB/s（你没看错，是 TB）。这意味着什么？意味着在一台 DGX 机柜里，GPU 之间通信的瓶颈被大大缓解了]]></description>
    </item>
    <item>
      <title>Moebius 0.2B：两百兆参数打十个B，这合理吗</title>
      <link>https://blog.framewiki.com/articles/2026/06/757758265841.html</link>
      <guid isPermaLink="true">https://blog.framewiki.com/articles/2026/06/757758265841.html</guid>
      <pubDate>Wed, 24 Jun 2026 03:14:03 +0000</pubDate>
      <description><![CDATA[凌晨一点，我盯着屏幕上那张被遮掉一半的猫片——啊不是，猫的照片。心里想的是，这种 inpainting 什么时候才能不靠云端跑。
说实话，之前试过几个小模型。Stable Diffusion 3 的 800M 版本？出图倒是快，但补出来的东西总感觉哪里不对。你看，猫耳朵补成了狗耳朵那种——也不是不能用吧，但发朋友圈被懂行的一看就知道用的是SD。
后来看到一篇论文，HUST 和几个机构发的，Moebius。
怎么说呢。200M 参数。0.2B。两百兆。
跑分说能打 10B 级别的模型。我揉了揉眼睛，第一反应是——吹的吧？跑分这种东西，懂的都懂，发布会上演示全部是 cherry-pick，你拿一个精心挑过的 prompt 去跑，什么模型看起来都像神仙。
但这次不一样。
我下载了 checkpoint——2B 以下的模型跑起来是真的舒服，一张 RTX 3090 就能跑 24GB 显存毫无压力，甚至还能同时开个浏览器看视频。
先试了个最简单的场景：一张街景照片，中间停了一辆车，用 mask 把车涂掉，让模型补背景。
结果是——补出来的路面纹理、人行道的分界线、远处的树影——不能说完全一致，但如]]></description>
    </item>
    <item>
      <title>Lore：又一个要干掉 Git 的版本控制系统</title>
      <link>https://blog.framewiki.com/articles/2026/06/123512819836.html</link>
      <guid isPermaLink="true">https://blog.framewiki.com/articles/2026/06/123512819836.html</guid>
      <pubDate>Wed, 24 Jun 2026 03:14:03 +0000</pubDate>
      <description><![CDATA[今天 Hacker News 第一名，978 分。
Lore。一个开源的版本控制系统。
看到这个消息的时候我正在 git rebase，手一抖差点把三条 commit 合错了。
说实话，"要干掉 Git"的项目我见过不少。Hg（Mercurial）死掉了，Fossil 半死不活，Pijul 还在小众圈子里活着。现在又来个 Lore。
而且这次动静不小。
Lore 的官网（lore.org）上写得很直白：Git 不是为大规模协作设计的。
它列了几个 Git 的痛点：
- 仓库超过 10GB 之后，clone 和 fetch 慢得离谱
- 大型 monorepo（比如 Google 那种几百万文件的）根本撑不住
- merge 冲突解决靠运气，没有真正的语义理解
- LFS 就是个补丁，而且是个很烂的补丁
这些痛点……说实话，我全踩过。
去年我们公司把三个微服务合成一个 monorepo，Git 仓库直接膨胀到了 8GB。每次新人入职 clone 一次就要等二十分钟。后来上了 sparse checkout + partial clone，体验才好了一点。
但治标不治本。

那 Lore ]]></description>
    </item>
    <item>
      <title>Linux内核终于砍掉strncpy：一场持续六年的安全长征</title>
      <link>https://blog.framewiki.com/articles/2026/06/451433899633.html</link>
      <guid isPermaLink="true">https://blog.framewiki.com/articles/2026/06/451433899633.html</guid>
      <pubDate>Wed, 24 Jun 2026 03:14:03 +0000</pubDate>
      <description><![CDATA[2026年6月21日
如果一个函数在 C 语言标准库里存在了 50 年，突然有一天被 Linux 内核从代码库里彻底清除——这说明什么？
说明这个函数可能从一开始就是个错误。
\strncpy。这个每次写 C 代码你都要犹豫一下要不要用的函数。这个让无数开发者掉进"缓冲区不够长就不会追加 NUL"这个坑的函数。上周，Linux 内核终于把它全部移除了。
六年，360 个补丁。
嗯。如果让我直接说把生成的代码上线，我是不敢的——至少内核开发者比我狠多了。他们花了六年时间，一个文件一个文件地清理，才把 strncpy 的每一个幽灵从内核的每个角落驱逐出去。
strncpy 到底错在哪？
先说说这个函数本身。
strncpy 是 C 标准库里的字符串复制函数，定义是：
char *strncpy(char *dest, const char *src, size_t n);

它的设计意图是"安全版的 strcpy"——限制复制长度，防止缓冲区溢出。听起来很好对吧？
问题出在两个地方。
第一，不自动补 NUL。 如果 src 的长度 &gt;= n，strncpy 不会在 dest 的末尾补]]></description>
    </item>
    <item>
      <title>GPT-5 发布：这次不是挤牙膏，是直接把牙膏管剪了</title>
      <link>https://blog.framewiki.com/articles/2026/06/775680222829.html</link>
      <guid isPermaLink="true">https://blog.framewiki.com/articles/2026/06/775680222829.html</guid>
      <pubDate>Wed, 24 Jun 2026 03:14:03 +0000</pubDate>
      <description><![CDATA[凌晨三点，朋友圈炸了。
OpenAI 的 GPT-5 发布了。
我本来已经睡了，听到手机在那儿“叮叮叮”狂响，以为是服务器挂了——毕竟上周我们刚把生产环境的 API 限流策略调了一遍，生怕出什么幺蛾子。结果一看群消息，全是"GPT-5 来了”“这响应速度绝了”"API 文档更新了”。
真的，我揉着眼睛坐起来的时候，心里第一个念头是：又搞什么花样？
以前每次 OpenAI 发新版，不管是 3.5 到 4，还是 4o 的迭代，我总是习惯性地先看基准测试分数——MMLU 涨了多少？HumanEval 破 90 没？数学推理有没有把 GSM8K 刷到满分？
但这次，我盯着屏幕愣了五秒。
因为 GPT-5 的发布页上，根本没有那些花里胡哨的跑分图。它只写了一句话："Native Real-Time Reasoning"（原生实时推理）。
嗯？
什么叫“原生实时推理”？
以前的模型，你给它一个任务，它是“想一会儿→输出→结束”。中间那个“想”的过程，对我们来说是个黑盒。你只能看到光标在那儿闪烁，或者转圈圈，然后“啪”一下吐出一大段话。
GPT-5 不一样。它把推理过程拆碎了，揉进了数据流里。
我第]]></description>
    </item>
    <item>
      <title>GLM-5.2 开源登顶：闭源模型的护城河还能撑多久</title>
      <link>https://blog.framewiki.com/articles/2026/06/910265937393.html</link>
      <guid isPermaLink="true">https://blog.framewiki.com/articles/2026/06/910265937393.html</guid>
      <pubDate>Wed, 24 Jun 2026 03:14:03 +0000</pubDate>
      <description><![CDATA[昨晚刷 Artificial Analysis 排行榜的时候，我盯着第一名愣了好几秒。
GLM-5.2。
不是 Claude，不是 GPT，也不是 Gemini。是智谱的 GLM。
而且是开源权重的模型。
怎么说呢，这事儿的冲击力比我预想的大。
以前开源模型和闭源模型的差距，就像业余选手和职业选手。开源的跑得快，但一到复杂赛道就翻车。现在 GLM-5.2 直接在 Artificial Analysis 的综合智能指数上拿了第一——不是某个单项，是综合。
我今早专门跑了一遍他们公开的测试集。
说实话，在代码生成和数学推理这两项上，GLM-5.2 的表现确实让人眼前一亮。它解一道复杂的概率论题——那种需要列出联合分布再求边缘的——推理过程写得很清晰，没有跳步。
但也不是完美。
我拿它测了几个工程场景的问题：比如"设计一个能支撑百万级并发的消息推送系统"。它给出的方案——Kafka + WebSocket Gateway + 多级缓存——框架是对的，但细节上有一些明显的问题。比如它把连接池的最大连接数设成了 1000，但在百万级并发下，这个数字至少要乘以 100。
这种"大框架对、细节错"的]]></description>
    </item>
    <item>
      <title>Fable 5 38 分钟写了个 Windows 内核</title>
      <link>https://blog.framewiki.com/articles/2026/06/967429232127.html</link>
      <guid isPermaLink="true">https://blog.framewiki.com/articles/2026/06/967429232127.html</guid>
      <pubDate>Wed, 24 Jun 2026 03:14:03 +0000</pubDate>
      <description><![CDATA[行吧，我看到这个标题的第一反应跟你一样——又一个 PR 稿。
38 分钟写一个 Windows 内核？你让那些在内核团队干了十年的工程师情何以堪。而且 tolmo.com 这域名我也不熟，不是什么大厂博客。搞不好就是个 demo 视频，跑几个 Hello World 级别的 syscall 就敢说自己是内核了。
但我还是点进去了。
冲了一杯咖啡——早上七点，刚醒，脑子还没转起来——然后开始看。
怎么说呢。
Fable 5 不是那种"用 AI 辅助写代码"的工具。它是一个全自动的 AI coding agent，你给它一个任务描述，它自己去写代码、编译、跑测试、修 bug、再编译、再跑——完全自主循环。
类似 Devin、Devin 那种路子，但 Fable 5 这次做的事情确实有点离谱。
任务是："写一个可以在裸机上启动的 Windows 风格内核，包含基本的内存管理、进程调度、中断处理和文件系统。"
嗯，看到这里我还没觉得有多厉害。 这种需求描述给 GPT-4 也能写个框架出来，对吧？
但 Fable 5 不只是写了个框架。
它写完后自动编译——报错——读错误日志——定位到具体行——]]></description>
    </item>
    <item>
      <title>FUTO Swipe 开源：手机滑行输入终于不再是"玄学"</title>
      <link>https://blog.framewiki.com/articles/2026/06/412110141122.html</link>
      <guid isPermaLink="true">https://blog.framewiki.com/articles/2026/06/412110141122.html</guid>
      <pubDate>Wed, 24 Jun 2026 03:14:03 +0000</pubDate>
      <description><![CDATA[2026年6月24日
昨晚折腾到两点。
不是在工作。是在测试 FUTO 刚发布的 Swipe 模型——一个开源的滑行输入系统。你手指在手机键盘上滑动，它猜你打的是什么词。这事儿看起来简单吧？哎，背后全是坑。
先说说背景。FUTO 这家公司你可能没听过，但他们做的 FUTO Keyboard 在隐私圈挺有名——完全离线、不联网、不收集输入数据。昨天他们在 HN 上发了 Swipe 模型（211 points），说是"open models and algorithms"，直接在 GitHub 和 HuggingFace 上发布。
发布会演示我一般只信一半。另一半得等开发者社区开始吐槽以后才知道。
不过 FUTO 这次的做法跟其他人不太一样——他们把训练数据也开源了。2024年8月开始收集，到2025年3月，攒了超过 100 万条真实的滑行轨迹，MIT 协议发布。用户自愿在 swipe.futo.org 上滑维基百科的句子，每条轨迹都记录了指滑动路径、目标词汇、速度曲线。不是合成数据，不是仿真，是真人手指在真手机上滑出来的。
卡——死——了？说实话，数据收集这件事比模型本身更让我意外。市面]]></description>
    </item>
    <item>
      <title>Cloudflare推AI临时账号：安全护城河还是花架子？</title>
      <link>https://blog.framewiki.com/articles/2026/06/933733324101.html</link>
      <guid isPermaLink="true">https://blog.framewiki.com/articles/2026/06/933733324101.html</guid>
      <pubDate>Wed, 24 Jun 2026 03:14:03 +0000</pubDate>
      <description><![CDATA[2026年6月21日
Cloudflare 又整新活了。这次不是什么 CDN 加速也不是 DDoS 防护，而是一套专门给 AI Agent 用的临时账号系统。说实话，我第一反应是——又来了，又来了。
发布会演示我一般只信一半。剩下那一半呢？得等开发者社区开始吐槽以后才知道。PPT 谁都会做。
Cloudflare 这公司有意思，它从来不缺点子。从 Workers 到 D1 到 R2，每个产品出来的时候都让人眼前一亮。但亮完之后呢？落地才是真功夫。
这次他们搞的临时账号（Temporary Accounts），说白了就是给 AI Agent 一个"用完即走"的身份。Agent 要访问你的数据？给你一个短期令牌，做完事自动过期。听起来很美对吧？
嗯。
我盯着屏幕愣了三秒。然后开始想一个问题——谁会给 Agent 开这个权限？
场景：我到底敢不敢让 Agent 替我干活？
先讲一个真实踩坑。
上个月我写了个自动化脚本，让 GPT-4o 帮我整理公司的一堆合同。不是什么敏感合同，就是一些公开的招标文档。我把 PDF 一股脑丢进一个临时目录，告诉 GPT "帮我提取关键条款、截止日期、预算范围"]]></description>
    </item>
    <item>
      <title>Claude终于开始查户口了</title>
      <link>https://blog.framewiki.com/articles/2026/06/912301690129.html</link>
      <guid isPermaLink="true">https://blog.framewiki.com/articles/2026/06/912301690129.html</guid>
      <pubDate>Wed, 24 Jun 2026 03:14:03 +0000</pubDate>
      <description><![CDATA[昨天晚上十一点多，我瘫在沙发上刷Hacker News——手机屏幕的光刺得眼睛有点疼，旁边那杯凉透的咖啡散发着一股酸味——突然看到一条消息直接坐起来了。Anthropic要在Claude上面搞身份验证了。540个赞，将近500条评论，这热度说明什么？说明大家跟我一样，心里咯噔了一下。
说实话，我原本以为这种事离AI工具还远着呢，觉得至少还得再等个两三年才会轮到聊天机器人这块。后来发现，人家早就在铺路了。你看现在用Claude做一些高级功能的时候，系统会弹出来让你验证身份，而且不是邮箱验证那种小儿科，是真的要你掏证件出来。愣住了。
Anthropic这次选了一家叫Persona Identities的公司来当验证合作伙伴。具体操作流程是这样的——你得上传一张政府签发的带照片的证件，护照驾照国民身份证三选一都行——然后再来一张实时自拍，就是那种让你眨眼转头的人脸活体检测。复印件不行，电子身份证不行，学生证更不行，门槛卡得死死的。我原本以为会支持更多证件类型，后来发现人家的思路就是只认最硬的那几种官方证件，其他一概不认。

嗯，怎么说呢，数据安全这块Anthropic倒是撇得挺干净的。他们公]]></description>
    </item>
    <item>
      <title>Claude Corps：Anthropic 的 AI 和平队</title>
      <link>https://blog.framewiki.com/articles/2026/06/536795129885.html</link>
      <guid isPermaLink="true">https://blog.framewiki.com/articles/2026/06/536795129885.html</guid>
      <pubDate>Wed, 24 Jun 2026 03:14:03 +0000</pubDate>
      <description><![CDATA[昨晚刷到 Anthropic 发了新东西。
Claude Corps。
看名字我还以为是啥军事项目。点进去一看——好家伙，是 AI 版的"和平队"和"梯队计划"。
怎么说呢，这很 Anthropic。
别的公司发新品，都是发布模型、降价、开 API。Anthropic 偏偏不走寻常路。他们成立了一个组织，专门招募志愿者和工程师，在全球范围内用 Claude 做公益项目。
我盯着那页面看了半天，脑子里第一个想法是：这不是慈善，这是布局。
你想想。现在所有 AI 公司都在抢企业客户，抢开发者生态。OpenAI 搞了各种基金，Google 疯狂给云客户送 credits。但 Anthropic 走了一条完全不同的路——他们培养的是"AI 传教士"。
这些志愿者被派到世界各地，用 Claude 解决当地的实际问题：教育、医疗、环保、灾害响应。表面上是公益，实际上是在全球范围内建立 Claude 的使用习惯和生态依赖。
反正我觉得这招挺高的。
你看以前微软的开发者生态怎么起来的？不是靠卖 Windows，是靠 MSDN、靠 MVP 计划、靠社区布道师。
Anthropic 现在搞 Claude ]]></description>
    </item>
    <item>
      <title>Claude 4 发布：数学级安全验证，这次动真格了</title>
      <link>https://blog.framewiki.com/articles/2026/06/482026063922.html</link>
      <guid isPermaLink="true">https://blog.framewiki.com/articles/2026/06/482026063922.html</guid>
      <pubDate>Wed, 24 Jun 2026 03:14:03 +0000</pubDate>
      <description><![CDATA[Anthropic 总是有点“学院派”的气质。
别的厂商发新品，PPT 上全是跑分、吞吐量、价格。
Claude 4 的发布会呢？首页是一个巨大的数学公式，旁边写着"Mathematically Verified Safety Constraints"（数学验证的安全约束）。
我当时看着那个页面，心里就咯噔一下。
这帮人又来真的了。
什么是“数学验证的安全”？
简单来说，就是他们不再靠“对齐训练”（RLHF）那种玄学来保证模型不胡说八道，而是用形式化验证（Formal Verification）的方法，从数学层面证明：在某个策略空间内，模型绝对不会输出违反安全规则的内容。
这就好比——
以前的安全机制是“保安”。保安会巡逻，会拦截可疑人员，但保安也会累，会走神，会被绕过。
现在的机制是“物理隔离墙”。墙上没有门，你就算想过去也过不去。不是不想，是物理上不可能。
这对企业用户来说，意味着什么？
意味着合规风险大幅降低。
以前用大模型做客服、做医疗咨询、做金融分析，最怕的就是“幻觉”。模型一本正经地胡说八道，给出一个错误的医疗建议，或者泄露了客户的隐私数据。一旦出事，罚款是小事，声誉损失是]]></description>
    </item>
    <item>
      <title>Bun给JSC加共享内存线程：JavaScript并行计算的里程碑</title>
      <link>https://blog.framewiki.com/articles/2026/06/730767778236.html</link>
      <guid isPermaLink="true">https://blog.framewiki.com/articles/2026/06/730767778236.html</guid>
      <pubDate>Wed, 24 Jun 2026 03:14:03 +0000</pubDate>
      <description><![CDATA[2026年6月21日
上周四晚上刷 GitHub Trending 的时候——其实是半夜两点，失眠了——看到一条 PR，直接给我看清醒了。
Bun 团队向 JavaScriptCore 提交了一个 Pull Request，要给 JSC 加上共享内存线程（Shared Memory Threads）的能力。
卡——死——了。
我当时盯着屏幕愣了三秒。Bun 用的不是 V8，用的是 WebKit 的 JavaScriptCore。现在他们要给 JSC 加上真正的共享内存多线程支持。这意味着什么？意味着 JavaScript 的并行计算要翻天了。
嗯，有那味儿了。
先说说为什么这事儿这么大
很多前端开发者可能觉得"多线程"跟自己没关系——JS 本来就是单线程的，用 Web Worker 就够了。但 Web Worker 有个致命缺陷：没有共享状态。Worker 之间只能通过消息传递通信，复制再复制，效率低得离谱。
SharedArrayBuffer 解决了"共享内存"的问题——多个 Worker 可以读写同一块内存。但真正关键的下一步是共享内存线程：不是多个隔离的 Worker 通过消息通]]></description>
    </item>
    <item>
      <title>WIKI 知识库系统 — 项目框架全解析</title>
      <link>https://blog.framewiki.com/articles/2026/04/yrt2yk.html</link>
      <guid isPermaLink="true">https://blog.framewiki.com/articles/2026/04/yrt2yk.html</guid>
      <pubDate>Mon, 13 Apr 2026 13:19:05 +0000</pubDate>
      <description><![CDATA[项目仓库：cdkjframework/knowledge-base 许可证：MulanPSL-2.0


一、项目概览
WIKI 知识库是一款本地优先的私有知识库服务，集成了向量检索与**对话式问答（RAG）**能力。它通过 HTTP API 和 Web 界面向用户提供服务，支持 SSE 流式输出，并内置多用户会话管理、知识库文档管理、模型配置等完整功能。
核心特性



特性
说明




🏗️ 私有化部署
全量本地运行，数据不出网，适合企业级隐私场景


🔍 向量检索 + Rerank
FAISS 向量索引 + Reranker 二次排序，检索精度高


🤖 多 LLM 支持
OpenAI / DeepSeek / 通义千问 / 豆包 / xAI / Gemini / Kimi / LM Studio，统一接口切换


📄 多格式文档
支持 DOCX、DOC、PDF、XLS/XLSX、TXT、Markdown、图片 OCR 等


🔐 SSE 流式输出
打字机式实时响应，体验流畅


💬 多会话管理
基于 user_id + session_id 的会话隔离，支持 Redis 持久]]></description>
    </item>
    <item>
      <title>WIKI 知识库 v1.0.0 正式发布</title>
      <link>https://blog.framewiki.com/articles/2026/04/olj7yz.html</link>
      <guid isPermaLink="true">https://blog.framewiki.com/articles/2026/04/olj7yz.html</guid>
      <pubDate>Thu, 09 Apr 2026 13:47:22 +0000</pubDate>
      <description><![CDATA[应用介绍
WIKI 知识库是一款本地优先的智能知识管理服务，专为需要高效组织、检索和利用知识资源的个人及团队设计。该知识库提供了从文档解析到智能问答的全链路解决方案，主要面向以下用户群体：


需要管理大量文档的技术团队


希望建立企业知识库的组织


个人笔记和知识管理的爱好者


需要智能检索和问答功能的开发者
仓库地址：https://gitee.com/cdkjframework/knowledge-base


版本信息
版本名称: v1.0.0
迭代类型: 正式发布
这是WIKI知识库的首个正式版本，标志着该产品进入稳定可用阶段。
更新内容
核心功能


多格式文档解析：支持DOCX、PDF、XLS、TXT、Markdown等多种格式，并具备OCR能力


智能检索系统：采用Qwen3/Embedding向量化 + FAISS索引 + Reranker重排序的先进检索架构


对话式知识问答：


支持SSE流式输出


完整的多轮会话能力


提供深度思考模式




平台兼容性


多语言模型支持：兼容OpenAI、DeepSeek、Qwen、Gemini、Kimi等]]></description>
    </item>
    <item>
      <title>Anthropic 禁止 OpenClaw！一场技术领域的“打斗”</title>
      <link>https://blog.framewiki.com/articles/2026/04/dvbun5.html</link>
      <guid isPermaLink="true">https://blog.framewiki.com/articles/2026/04/dvbun5.html</guid>
      <pubDate>Mon, 06 Apr 2026 14:47:42 +0000</pubDate>
      <description><![CDATA[近日，全球技术领域引发了一场震动人心的风波——AI 技术公司 Anthropic 公开宣布将禁止 OpenClaw 的使用。这一决定立刻引发了各界的广泛关注，科技圈纷纷猜测这背后是否隐藏着更深层的竞争和战略布局。本文将为您详细解析这一事件的背景、原因以及可能带来的影响。
背景：Claude 与 OpenClaw 的竞争
Claude 和 OpenClaw 是目前市场上两大竞争激烈的人工智能平台。Claude 是由 Anthropic 推出的人工智能系统，以其高效、安全的算法受到诸多企业和开发者的青睐。而 OpenClaw 则是一款由另一家技术公司开发的机器人智能系统，凭借强大的机械能力和创新的人工智能算法，成为了科技领域的一颗“新星”。
然而，随着二者在市场上的持续竞争，双方的关系逐渐紧张，尤其是在技术专利、数据安全以及用户隐私等方面的争议愈演愈烈。尤其是 OpenClaw 的机器人设计受到了部分人类工作的威胁，这使得不少业内人士担心其技术可能带来不利的社会影响。
Anthropic 禁止 OpenClaw 的决定
在这场不断升级的竞争中，Anthropic 近日发布公告，宣布禁止所有]]></description>
    </item>
    <item>
      <title>维基框架 (Wiki Framework) v1.1.2 | 企业级微服务开发框架</title>
      <link>https://blog.framewiki.com/articles/2025/10/oewu4e.html</link>
      <guid isPermaLink="true">https://blog.framewiki.com/articles/2025/10/oewu4e.html</guid>
      <pubDate>Wed, 08 Oct 2025 14:27:04 +0000</pubDate>
      <description><![CDATA[Release Notes
版本修复日志

【修复】修复HTTPS请求参数ContentType创建错误问题；
【修复】修复用户接口类 IUserDetailsService 被删除问题；
【修复】修复****Spring Boot 全局响应处理增加对返回字符串兼容；
【修复】修复代码生成模板变量命名错误问题、模板引我错误问题；
【修复】修复框架Mybatis XML文件 mapper****指引地址错误问题；
【修复】修复调整MinioUtils内部方法全部为静态；
【新增】修改协议、删除MySQL Connector协议引用；
【新增】新增MySQL test使用；
【新增】新增Nacos及Nacos-Cloud配置中心的支持；

版本新增日志

【新增】修改协议、删除MySQL Connector协议引用；
【新增】新增MySQL test使用；
【新增】新增Nacos及Nacos-Cloud配置中心的支持；

获取资源与了解更多：

官网：https://framewiki.com/wiki-framework.html
Gitee：https://gitee.com/cdkj]]></description>
    </item>
    <item>
      <title>Vue 3 简介</title>
      <link>https://blog.framewiki.com/articles/2025/09/qek2tx.html</link>
      <guid isPermaLink="true">https://blog.framewiki.com/articles/2025/09/qek2tx.html</guid>
      <pubDate>Thu, 04 Sep 2025 07:44:42 +0000</pubDate>
      <description><![CDATA[什么是 Vue？​
Vue (发音为 /vjuː/，类似 view) 是一款用于构建用户界面的 JavaScript 框架。它基于标准 HTML、CSS 和 JavaScript 构建，并提供了一套声明式的、组件化的编程模型，帮助你高效地开发用户界面。无论是简单还是复杂的界面，Vue 都可以胜任。
下面是一个最基本的示例：
js
import { createApp, ref } from 'vue'

createApp({
  setup() {
    return {
      count: ref(0)
    }
  }
}).mount('#app')

template
&lt;div id=&quot;app&quot;&gt;
  &lt;button @click=&quot;count++&quot;&gt;
    Count is: {{ count }}
  &lt;/button&gt;
&lt;/div&gt;

结果展示
Count is: 0
上面的示例展示了 Vue 的两个核心功能：


声明式渲染：Vue 基于标准 HTML 拓展了一套模板语]]></description>
    </item>
    <item>
      <title>维基框架 (Wiki FW) v1.1.1 | 企业级微服务开发框架</title>
      <link>https://blog.framewiki.com/articles/2025/08/pr6l7v.html</link>
      <guid isPermaLink="true">https://blog.framewiki.com/articles/2025/08/pr6l7v.html</guid>
      <pubDate>Sun, 31 Aug 2025 09:35:59 +0000</pubDate>
      <description><![CDATA[Release Notes
版本修复日志


【修复】修复wiki-all-jpa包命名空间错误问题


【修复】修改日志输出目录至项目根目录


【修复】wiki-all，wiki-all-jpa 启动类型注解配置


新增 wiki-oauth2 组件，支持OAuth2授权
1.【安全】OAuth2权限体系强化


新增标准OAuth2授权码（authorization_code）获取流程，支持/oauth2/authorize端点动态生成权限code


扩展令牌端点/oauth2/access_token，支持通过授权码交换访问令牌（access_token）


新增令牌刷新机制，支持grant_type=refresh_token动态刷新访问凭证


集成RBAC权限模型，实现细粒度Scope权限控制


2.【优化】Spring Security深度整合


重构认证过滤器链，支持OAuth2与原生表单登录无缝切换


新增@OAuth2ResourceServer注解，一键开启资源服务器配置


优化JWT令牌校验性能，支持HS256/RS256双签名算法


3.【安]]></description>
    </item>
    <item>
      <title>​维基框架 (Wiki Framework) 1.1.0 正式发布：拥抱 Java 17，开启智能编程新篇章，AI助手“马建仓”上线！​​</title>
      <link>https://blog.framewiki.com/articles/2025/08/qtkail.html</link>
      <guid isPermaLink="true">https://blog.framewiki.com/articles/2025/08/qtkail.html</guid>
      <pubDate>Fri, 22 Aug 2025 13:14:45 +0000</pubDate>
      <description><![CDATA[​2025年8月18日 - 我们自豪地宣布，面向全场景Java企业级应用开发的 ​维基框架 (Wiki Framework) 1.1.0 版本​ 正式发布！此版本标志着框架在技术栈、开发效率和智能化支持上的重大飞跃，为开发者带来更强大、更现代、更智能的微服务开发体验。
核心升级：全面拥抱 Java 17+

​坚定前行：​​ 遵循先前发布的路线图，​Wiki Framework 1.1.0 及后续版本将仅支持 JDK 17 及以上版本。这是拥抱现代Java特性（如Records、Sealed Classes、Pattern Matching等）、提升性能和安全性的必然选择。
​兼容性说明：​​ 对于仍需使用 Java 8 的项目，请继续使用 ​1.0.7 及以下版本​（该分支已进入维护状态，不再更新新功能）。
​未来基石：​​ 这一升级确保了框架能够充分利用最新Java平台的潜力，为构建高性能、高可靠性的云原生应用奠定坚实基础。

轻松获取与集成

​中央库直达：​​
​Gradle:​​ implementation 'com.framewiki:wiki-all:1.1.0'
​M]]></description>
    </item>
    <item>
      <title>维基框架发布1.0.11至中央仓，深化国产化DevOps生态整合</title>
      <link>https://blog.framewiki.com/articles/2025/07/0f9es8.html</link>
      <guid isPermaLink="true">https://blog.framewiki.com/articles/2025/07/0f9es8.html</guid>
      <pubDate>Tue, 15 Jul 2025 06:02:47 +0000</pubDate>
      <description><![CDATA[一、核心事件：维基框架1.0.11正式入驻中央仓库​
​维基框架（Wiki-Framework）​​ 作为国产全场景Java企业级开发框架，于7月9日正式发布 ​v1.0.11版本​ 至中央软件仓库（Maven Central），标志着其正式纳入全球主流开发工具生态。本次发布聚焦 ​安全增强与云原生适配​：

​安全升级​：集成OAuth2.1协议，修复CVE-2025-0113等5项高危漏洞，支持国密算法SM4加密通信。
​云原生支持​：全面适配JDK 17与Spring Boot 3.3.5，容器镜像大小减少40%，启动速度提升35%

二、深化DeepGitee计划：国产化研发生态协同​
本次发布是 ​DeepGitee计划​ 的关键里程碑，该计划由Gitee于2024年牵头启动，旨在构建 ​自主可控的国产DevOps工具链​：

​工具链整合​：维基框架1.0.11已无缝对接Gitee企业版DevOps流水线，支持自动化构建、安全扫描与制品归档。
​信创适配​：完成与麒麟OS、达梦数据库、华为鲲鹏芯片的兼容性认证，成为金融、军工领域首选框架。
​开源协作​：代码仓库托管于Git]]></description>
    </item>
    <item>
      <title>Spring Boot 项目整合Spring Security 进行身份验证</title>
      <link>https://blog.framewiki.com/articles/2025/06/5qy46o.html</link>
      <guid isPermaLink="true">https://blog.framewiki.com/articles/2025/06/5qy46o.html</guid>
      <pubDate>Mon, 16 Jun 2025 08:12:34 +0000</pubDate>
      <description><![CDATA[​
前言
Spring Security 是一个功能强大且高度可定制的身份验证和访问控制框架。它是保护基于 Spring 的应用程序的事实标准。
Spring Security 是一个专注于为 Java 应用程序提供身份验证和授权的框架。与所有 Spring 项目一样，Spring Security 的真正强大之处在于它可以很容易地进行扩展以满足自定义要求。
引入库
        &lt;dependency&gt;
            &lt;groupId&gt;org.springframework.boot&lt;/groupId&gt;
            &lt;artifactId&gt;spring-boot-starter-security&lt;/artifactId&gt;
            &lt;exclusions&gt;
                &lt;exclusion&gt;
                    &lt;groupId&gt;org.springframework.boot&lt;/groupId&gt;
 ]]></description>
    </item>
    <item>
      <title>Spring Boot 封装 MinIO 工具</title>
      <link>https://blog.framewiki.com/articles/2025/05/ab18tq.html</link>
      <guid isPermaLink="true">https://blog.framewiki.com/articles/2025/05/ab18tq.html</guid>
      <pubDate>Fri, 16 May 2025 07:09:16 +0000</pubDate>
      <description><![CDATA[​
MinIO 简介
MinIO 是一款高性能、开源、兼容Amazon S3 API的分布式对象存储系统，专为云原生架构和大规模非结构化数据场景设计。其核心定位是成为私有云/混合云环境中的标准存储方案，适用于从数据湖到AI/ML、容器化部署等多样化需求。
背景
为解决业务开时对接 MinIO繁琐接口对工作
目录结构

cdkj-minio MinIO工具
annotation 注解
EnableAutoMinio 启用自动MinIO


config 配置
MinioAutoConfiguration MinIO 自动配置
MinioMarkerConfiguration MinIO 标记配置
MinioProperties MinIO 配置读取


connectivity 连接库
MinioConfiguration MinIO 配置


enums 枚举库
ContentTypeEnums 内容类型枚举


MinioUtils MinIO工具库



项目介绍
POM引入包
    &lt;dependencies&gt;
        &lt;!-- MinIO --&gt]]></description>
    </item>
    <item>
      <title>第 2 章 安装和升级 MySQL</title>
      <link>https://blog.framewiki.com/articles/2025/05/shayoh.html</link>
      <guid isPermaLink="true">https://blog.framewiki.com/articles/2025/05/shayoh.html</guid>
      <pubDate>Sat, 10 May 2025 03:12:49 +0000</pubDate>
      <description><![CDATA[目录
2.1 一般安装指导
2.2 使用通用二进制文件在 Unix/Linux 上安装 MySQL
2.3 在 Microsoft Windows 上安装 MySQL
2.4 在 macOS 上安装 MySQL
2.5 在 Linux 上安装 MySQL
2.6 使用 Unbreakable Linux 网络 （ULN） 安装 MySQL
2.7 在 Solaris 上安装 MySQL
2.8 从源安装 MySQL
2.9 安装后设置和测试
2.10 升级 MySQL
2.11 降级 MySQL
2.12 Perl 安装说明
本章介绍如何获取和安装 MySQL。摘要 该过程如下，后面的各节提供了详细信息。如果你 计划将现有版本的 MySQL 升级到较新版本 而不是第一次安装 MySQL，请参阅 第 2.10 节 “升级 MySQL”，以获取有关升级的信息 程序和之前应考虑的问题 升级。
如果您有兴趣从其他数据库迁移到 MySQL 系统，请参阅第 A.8 节“ MySQL 5.7 常见问题解答：迁移”，其中包含答案 了解有关迁移问题的一些常见问题。
MySQL 的安装通常遵循此处概述的步]]></description>
    </item>
    <item>
      <title>第 1 章 MySQL 5.7 参考手册</title>
      <link>https://blog.framewiki.com/articles/2025/05/6qdp8v.html</link>
      <guid isPermaLink="true">https://blog.framewiki.com/articles/2025/05/6qdp8v.html</guid>
      <pubDate>Sat, 10 May 2025 03:08:55 +0000</pubDate>
      <description><![CDATA[包括 MySQL NDB Cluster 7.5 和 NDB Cluster 7.6
抽象
这是 MySQL 参考手册。它记录了 MySQL 5.7 到 5.7.50 以及 NDB 基于 NDB 版本 7.5 的群集版本 5.7.44-ndb-7.5.36 的密钥。它可能包括 尚未提供的 MySQL 版本功能的文档 已发布。有关哪些版本的信息 发布，请参阅 MySQL 5.7 发行说明。
MySQL 5.7 功能。 本手册介绍了每个 MySQL 5.7 版本;此类功能可能不是 包含在 MySQL 5.7 版本中，许可给 你。如果您对 您的 MySQL 5.7 版本，请参阅您的 MySQL 5.7 许可协议或联系您的 Oracle 销售代表。
有关每个版本中更改的详细信息，请参阅 MySQL 5.7 发行说明。
有关法律信息（包括许可信息），请参阅前言和法律声明。
有关使用 MySQL 的帮助，请访问 MySQL 论坛，您可以在此处使用 可以与其他 MySQL 用户讨论您的问题。
文档生成日期： 2025-05-07 （修订版：81926）]]></description>
    </item>
    <item>
      <title>Spring AI 简介</title>
      <link>https://blog.framewiki.com/articles/2025/05/m1gxmf.html</link>
      <guid isPermaLink="true">https://blog.framewiki.com/articles/2025/05/m1gxmf.html</guid>
      <pubDate>Sat, 10 May 2025 02:01:34 +0000</pubDate>
      <description><![CDATA[概述


Spring AI 是一个用于 AI 工程的应用程序框架。 其目标是将 Spring 生态系统设计原则（如可移植性和模块化设计）应用于 AI 领域，并将使用 POJO 作为应用程序的构建块推广到 AI 领域。

Spring AI 的核心是解决了 AI 集成的根本挑战：将您的企业数据和 API 与 AI 模型连接起来。


特征


Spring AI 提供以下功能：


支持所有主要的 AI 模型提供商，例如 Anthropic、OpenAI、Microsoft、Amazon、Google 和 Ollama。支持的模型类型包括：


聊天完成


嵌入


文本到图像


音频转录


文本到语音


适度




支持跨 AI 提供商对同步和流式处理 API 选项的可移植 API 支持。此外，还可以访问特定于模型的特征。


结构化输出 - AI 模型输出到 POJO 的映射。


支持所有主要的矢量数据库提供商，例如 Apache Cassandra、Azure Vector Search、Chroma、Milvus、MongoDB Atlas、Neo4j、Oracle]]></description>
    </item>
    <item>
      <title>Spring Boot Jpa封装快速构建Specification、OrderBy、Pageable的查询条件</title>
      <link>https://blog.framewiki.com/articles/2025/05/ffeo1n.html</link>
      <guid isPermaLink="true">https://blog.framewiki.com/articles/2025/05/ffeo1n.html</guid>
      <pubDate>Sun, 04 May 2025 08:20:28 +0000</pubDate>
      <description><![CDATA[​
1、简介
在我们使用JPA时，构建 Specification 查询条件时重复代码过多，而且需要大量的无效代码。
2、工具类提供的方法
2.1、自动构建规范
  /**
   * 自动构建规范
   *
   * @param builder JapCriteriaBuilder
   * @param entity  实体
   * @param &lt;V&gt;     实体类型
   * @return Specification
   */
  public &lt;V&gt; JpaCriteriaBuilder&lt;T&gt; autoBuilder(JpaCriteriaBuilder&lt;T&gt; builder, @NotNull V entity, @NotNull Class&lt;T&gt; clazz) {
    if (Objects.isNull(entity)) {
      throw new GlobalRuntimeException(&quot;实体不能为空&quot;);
    }
    List&lt;String&gt;]]></description>
    </item>
    <item>
      <title>MongoDB 简介</title>
      <link>https://blog.framewiki.com/articles/2025/04/zanttn.html</link>
      <guid isPermaLink="true">https://blog.framewiki.com/articles/2025/04/zanttn.html</guid>
      <pubDate>Wed, 23 Apr 2025 06:05:07 +0000</pubDate>
      <description><![CDATA[您可以在以下环境中创建 MongoDB 数据库：


MongoDB Atlas：用于云中 MongoDB 部署的完全托管服务


MongoDB Enterprise：基于订阅、自我管理的 MongoDB 版本


MongoDB Community：源代码可用、免费使用且可自行管理的 MongoDB 版本


要了解有关使用 Atlas 用户界面创建 MongoDB 数据库的更多信息，请参阅开始使用 Atlas。
文档数据库
MongoDB 中的记录是一个文档，它是由字段和值对组成的数据结构。MongoDB 文档类似于 JSON 对象。字段值可以包含其他文档、数组和文档数组。

使用文档的优点是：


文档对应于许多编程语言中的原生数据类型。


嵌入式文档和数组可以减少成本高昂的的连接操作。


动态模式支持流畅的多态性。


集合/视图/按需物化视图
MongoDB 将文档存储在集合中。集合类似于关系数据库中的表。
除了集合之外，MongoDB 还支持：


只读视图


按需物化视图


主要功能


高性能


MongoDB 提供高性能数据持久性。尤其是，


对嵌入式数]]></description>
    </item>
    <item>
      <title>使用 chromedriver 实现网络爬虫【手抄】</title>
      <link>https://blog.framewiki.com/articles/2025/04/arad0w.html</link>
      <guid isPermaLink="true">https://blog.framewiki.com/articles/2025/04/arad0w.html</guid>
      <pubDate>Wed, 16 Apr 2025 03:00:27 +0000</pubDate>
      <description><![CDATA[​
1、引用 selenium 包
&lt;dependency&gt;
  &lt;groupId&gt;org.seleniumhq.selenium&lt;/groupId&gt;
  &lt;artifactId&gt;selenium-java&lt;/artifactId&gt;
  &lt;version&gt;4.29.0&lt;/version&gt;
&lt;/dependency&gt;
&lt;dependency&gt;
  &lt;groupId&gt;org.seleniumhq.selenium&lt;/groupId&gt;
  &lt;artifactId&gt;selenium-chrome-driver&lt;/artifactId&gt;
  &lt;version&gt;4.29.0&lt;/version&gt;
&lt;/dependency&gt;
&lt;dependency&gt;
  &lt;groupId&gt;org.openqa.selenium&lt;/groupId&gt;
  &lt;artifactId&gt;sel]]></description>
    </item>
    <item>
      <title>开源 java内网穿透 - 维基代理（wiki-proxy）</title>
      <link>https://blog.framewiki.com/articles/2025/04/eokkv1.html</link>
      <guid isPermaLink="true">https://blog.framewiki.com/articles/2025/04/eokkv1.html</guid>
      <pubDate>Wed, 02 Apr 2025 01:39:09 +0000</pubDate>
      <description><![CDATA[1、简介

维基代理（wiki-proxy）、开源的java内网穿透项目。
技术栈：cdkjFramework（维基框架）、JPA、Netty
遵循MIT许可，因此您可以对它进行复制、修改、传播并用于任何个人或商业行为。
官网地址：https://www.framewiki.com/

2、项目结构

wiki-proxy 维基代理项目
assets 框架资源文件
client 代理客户端
proxy-client 代理客户端项目
proxy-client-web 代理客户端项目


proxy-admin 代理监控项目（基于vue3 + element-plus开发）
proxy-core 代理核心库
proxy-util 代理工具库
server 代理服务端
proxy-server 代理服务端业务代码
proxy-server-web 代理服务端接口





3、运行
3.1 生成证书，使用 keytool 工具生成测试证书如下所示（建议使用Let's Encrypt生成正式证书）
keytool -genkey -alias wiki-proxy -keyalg RSA -k]]></description>
    </item>
    <item>
      <title>第四章 Spring Boot 整合 Kafka消息队列 实战</title>
      <link>https://blog.framewiki.com/articles/2025/03/51j0pj.html</link>
      <guid isPermaLink="true">https://blog.framewiki.com/articles/2025/03/51j0pj.html</guid>
      <pubDate>Thu, 20 Mar 2025 07:42:59 +0000</pubDate>
      <description><![CDATA[​
系列文章目录
第一章 Kafka 配置部署及SASL_PLAINTEXT安全认证
第二章  Spring Boot 整合 Kafka消息队列 生产者
第三章  Spring Boot 整合 Kafka消息队列 消息者
第四章 Spring Boot 整合 Kafka消息队列 实战
前言
Kafka 是一个消息队列产品，基于Topic partitions的设计，能达到非常高的消息发送处理性能。本文主是基于Spirng Boot封装了Apache 的Kafka-client，用于在Spring Boot 项目里快速集成kafka。
一、Kafka 是什么？
Apache Kafka是分布式发布-订阅消息系统。
它最初由LinkedIn公司开发，之后成为Apache项目的一部分。
Kafka是一种快速、可扩展的、设计内在就是分布式的，分区的和可复制的提交日志服务。
二、项目结构

三、服务端
1.引入库
引入需要依赖的jar包，引入POM文件
    &lt;dependencies&gt;
        &lt;dependency&gt;
            &lt;grou]]></description>
    </item>
    <item>
      <title>第三章 Spring Boot 整合 Kafka消息队列 消息者</title>
      <link>https://blog.framewiki.com/articles/2025/03/ehaced.html</link>
      <guid isPermaLink="true">https://blog.framewiki.com/articles/2025/03/ehaced.html</guid>
      <pubDate>Thu, 20 Mar 2025 07:40:26 +0000</pubDate>
      <description><![CDATA[​
系列文章目录
第一章 Kafka 配置部署及SASL_PLAINTEXT安全认证
第二章  Spring Boot 整合 Kafka消息队列 生产者
第三章  Spring Boot 整合 Kafka消息队列 消息者
第四章 Spring Boot 整合 Kafka消息队列 实战 
前言
Kafka 是一个消息队列产品，基于Topic partitions的设计，能达到非常高的消息发送处理性能。本文主是基于Spirng Boot封装了Apache 的Kafka-client，用于在Spring Boot 项目里快速集成kafka。
一、Kafka 是什么？
Apache Kafka是分布式发布-订阅消息系统。
它最初由LinkedIn公司开发，之后成为Apache项目的一部分。
Kafka是一种快速、可扩展的、设计内在就是分布式的，分区的和可复制的提交日志服务。
二、消息者
1.引入库
引入需要依赖的jar包，引入POM文件
    &lt;dependencies&gt;
        &lt;dependency&gt;
            &lt;groupId&gt;]]></description>
    </item>
    <item>
      <title>第二章 Spring Boot 整合 Kafka消息队列 生产者</title>
      <link>https://blog.framewiki.com/articles/2025/03/jk3xnd.html</link>
      <guid isPermaLink="true">https://blog.framewiki.com/articles/2025/03/jk3xnd.html</guid>
      <pubDate>Thu, 20 Mar 2025 07:38:07 +0000</pubDate>
      <description><![CDATA[​
系列文章目录
第一章 Kafka 配置部署及SASL_PLAINTEXT安全认证
第二章  Spring Boot 整合 Kafka消息队列 生产者
第三章  Spring Boot 整合 Kafka消息队列 消息者
第四章 Spring Boot 整合 Kafka消息队列 实战

前言
Kafka 是一个消息队列产品，基于Topic partitions的设计，能达到非常高的消息发送处理性能。本文主是基于Spirng Boot封装了Apache 的Kafka-client，用于在Spring Boot 项目里快速集成kafka。

一、Kafka 是什么？
Apache Kafka是分布式发布-订阅消息系统。
它最初由LinkedIn公司开发，之后成为Apache项目的一部分。
Kafka是一种快速、可扩展的、设计内在就是分布式的，分区的和可复制的提交日志服务。
二、生产者
1.引入库
引入需要依赖的jar包，引入POM文件
    &lt;dependencies&gt;
        &lt;dependency&gt;
            &lt;groupId&gt]]></description>
    </item>
    <item>
      <title>第一章 Kafka 配置部署及SASL_PLAINTEXT安全认证</title>
      <link>https://blog.framewiki.com/articles/2025/03/nx8t4a.html</link>
      <guid isPermaLink="true">https://blog.framewiki.com/articles/2025/03/nx8t4a.html</guid>
      <pubDate>Thu, 20 Mar 2025 07:20:42 +0000</pubDate>
      <description><![CDATA[​
系列文章目录
第一章 Kafka 配置部署及SASL_PLAINTEXT安全认证
第二章  Spring Boot 整合 Kafka消息队列 生产者
第三章  Spring Boot 整合 Kafka消息队列 消息者
第四章 Spring Boot 整合 Kafka消息队列 实战 

1、下载安装
Kafka下载地址：Apache Kafka
# 下载文件
wget https://downloads.apache.org/kafka/3.5.1/kafka_2.12-3.5.1.tgz

# 文件解压缩
tar -zxvf kafka_2.12-3.5.1.tgz

# 修改目录名称
mv kafka_2.12-3.5.1 kafka_2.12

# 进入目录
cd kafka_2.12

2、Zookeeper 配置
2.1、修改 Zookeeper 配置文件 config/zookeeper.properties
# 编辑 zookeeper 配置文件
vim config/zookeeper.properties

2.2、Zookeeper 配置文件修改内容
dataDi]]></description>
    </item>
    <item>
      <title>第一章、Spring Boot 整合 Netty 现实TCP通信（服务端）</title>
      <link>https://blog.framewiki.com/articles/2025/02/bpdx4s.html</link>
      <guid isPermaLink="true">https://blog.framewiki.com/articles/2025/02/bpdx4s.html</guid>
      <pubDate>Sun, 16 Feb 2025 15:07:26 +0000</pubDate>
      <description><![CDATA[​
第一章、Spring Boot 整合 Netty 现实TCP通信（服务端）
第一章、Spring Boot 整合 Netty 现实TCP通信（客户端）
第二章、Spring Boot 整合 Netty 现实TCP通信实践
第三章、Spring Boot 整合 Netty 现实WebSocket通信
第四章、Spring Boot 整合 Netty 现实WebSocket通信实践
1、POM引入包
    &lt;dependencies&gt;
        &lt;dependency&gt;
            &lt;groupId&gt;com.cdkjframework&lt;/groupId&gt;
            &lt;artifactId&gt;cdkj-util&lt;/artifactId&gt;
        &lt;/dependency&gt;
        &lt;dependency&gt;
            &lt;groupId&gt;io.netty&lt;/groupId&gt;
            &lt;art]]></description>
    </item>
    <item>
      <title>Java，Spring Boot JWT加密、解密</title>
      <link>https://blog.framewiki.com/articles/2025/02/4cdbow.html</link>
      <guid isPermaLink="true">https://blog.framewiki.com/articles/2025/02/4cdbow.html</guid>
      <pubDate>Sun, 16 Feb 2025 15:03:35 +0000</pubDate>
      <description><![CDATA[​
介绍
JSON Web 令牌 （JWT） 是一种开放标准 （RFC 7519），它定义了一种紧凑且独立的方式，用于作为 JSON 对象在各方之间安全地传输信息。由于此信息已进行数字签名，因此可以对其进行验证和信任。可以使用密钥（使用 HMAC 算法）或使用 RSA 或 ECDSA 的公钥/私钥对对 JWT 进行签名。
1、引入包

      &lt;dependency&gt;
          &lt;groupId&gt;com.auth0&lt;/groupId&gt;
          &lt;artifactId&gt;java-jwt&lt;/artifactId&gt;
          &lt;version&gt;3.8.1&lt;/version&gt;
      &lt;/dependency&gt;
      &lt;dependency&gt;
          &lt;groupId&gt;io.jsonwebtoken&lt;/groupId&gt;
          &lt;artifactId&gt;jjwt&lt;/artifac]]></description>
    </item>
    <item>
      <title>接入Google认证Google Authenticator</title>
      <link>https://blog.framewiki.com/articles/2025/02/xg248l.html</link>
      <guid isPermaLink="true">https://blog.framewiki.com/articles/2025/02/xg248l.html</guid>
      <pubDate>Sun, 16 Feb 2025 14:59:59 +0000</pubDate>
      <description><![CDATA[介绍

既然来看该文章就应该知道Google的两步认证是干什么的，如果需要APP（Google Authenticator）的可以私信我。

添加图片注释，不超过 140 字（可选）
验证原理讲解：
为每个用户在注册之前生成32位随机码（该码一般会存入数据库）。
调用API传入32位随机码，生成正确的6位验证码，每隔1分种会变化。
根据用户输入的6位验证码和正确的6位验证码做匹配，相同则登陆成功，不同则验证码时间失效或错误。
用户绑定讲解：
调用API生成32位随机码。。
调用API生成二维码QR字符串，需要传入用户信息（比如邮箱，昵称等），标题，以及生成的32位随机码。
调用API将二维码QR字符串转化为图片后以Base64的方式展现到前端页面上。
用户使用APP（Google Authenticator）扫码添加后，点击确认绑定，即可看到6位验证码。
后端根据API生成的32位随机码，用户信息（用来确定数据库中用户记录），以及输入6位验证码，通过API传入32位随机码验证，当其与输入的验证码相同时，则绑定成功，把32位随机码持久化与用户绑定。

添加图片注释，不超过 140 字（可]]></description>
    </item>
    <item>
      <title>超级详细 JAVA 对接 ChatGPT 教程，实现自己的AI对话小助手</title>
      <link>https://blog.framewiki.com/articles/2025/02/l5voz6.html</link>
      <guid isPermaLink="true">https://blog.framewiki.com/articles/2025/02/l5voz6.html</guid>
      <pubDate>Sun, 16 Feb 2025 14:21:24 +0000</pubDate>
      <description><![CDATA[​
1     前言
大家好，由于近期需要对接了ChatGPT API所以特地记录下来，据介绍该模型是和当前官网使用的相同的模型，如果你还没体验过ChatGPT，那么今天就教大家如何打破网络壁垒，打造一个属于自己的智能助手把。本文包括API Key的申请以及网络代理的搭建，那么事不宜迟，我们现在开始。
若有想体验的可联系我获取体验账号。
2     对接流程
2.1  API-Key的获取

首先第一步要获取OpenAI接口的API Key，该Key是你用来调用接口的token，主要用于接口鉴权。获取该key首先要注册OpenAi的账号。
2.1.1      打开platform.openai.com网站，点击view API Key

2.1.2      点击创建key

2.1.3      弹窗显示生成的key，记得把key复制，不然等会就找不到这个key了，只能重新创建

将API Key保存好以备用
2.2  API用量的查看
这里可以查看API的使用情况，新账号注册默认有5美元的试用额度，之前都是18美元，API成本降了之后试用额度也狠狠地砍了一刀。

2.3  核心代]]></description>
    </item>
  </channel>
</rss>
