<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>谷中仁的博客</title><description>全栈开发者的技术写作与知识沉淀</description><link>https://guzhongren.github.io/</link><language>zh-CN</language><item><title>“我的妈呢”</title><link>https://guzhongren.github.io/posts/2026/07/%E6%88%91%E7%9A%84%E5%A6%88%E5%91%A2/</link><guid isPermaLink="true">https://guzhongren.github.io/posts/2026/07/%E6%88%91%E7%9A%84%E5%A6%88%E5%91%A2/</guid><pubDate>Wed, 29 Jul 2026 00:20:37 GMT</pubDate><content:encoded>&lt;p&gt;我从家辉买了1/4个西瓜回家，打开门，西西和她哥哥正坐在地上玩耍，她突然说：“我的妈呢！”&lt;/p&gt;
&lt;p&gt;我说：“妈妈在楼底下了。”&lt;/p&gt;
&lt;p&gt;西西又说：“我的妈呢！”&lt;/p&gt;
&lt;p&gt;我有说：“妈妈快上楼了。”&lt;/p&gt;
&lt;p&gt;然后西西就不说话了，继续和她哥哥玩耍了。&lt;/p&gt;
&lt;p&gt;我吃完饭后，妈妈给她穿好了衣服，我就带着她骑车去永宁门了。&lt;/p&gt;
&lt;p&gt;回来的路上在小雁塔和朱雀大街相交的十字路口，我们看到了西瓜，西西抬起手指着西瓜突然说：“我的妈呢！”&lt;/p&gt;
&lt;p&gt;我愣了一下才反应过来，西西说的是西瓜的英语，不是在问她妈妈在哪，然后我笑着说：“Watermelon，西瓜的英语叫 Watermelon, 不是我的妈呢。”&lt;/p&gt;
&lt;p&gt;在回家的路上，西西不停的说着 &lt;code&gt;Watermelon&lt;/code&gt;。&lt;/p&gt;</content:encoded></item><item><title>后端开发中的 DTO,Model,Entity</title><link>https://guzhongren.github.io/posts/2026/03/%E5%90%8E%E7%AB%AF%E5%BC%80%E5%8F%91%E4%B8%AD%E7%9A%84dtomodelentity/</link><guid isPermaLink="true">https://guzhongren.github.io/posts/2026/03/%E5%90%8E%E7%AB%AF%E5%BC%80%E5%8F%91%E4%B8%AD%E7%9A%84dtomodelentity/</guid><pubDate>Sun, 01 Mar 2026 10:59:37 GMT</pubDate><content:encoded>&lt;p&gt;AI 发展的太猛了，人人都是程序员，程序员成了最容易被代替的职业。一个被程序员写出来的程序来代替程序员了。&lt;/p&gt;
&lt;h2 id=&quot;可替代性&quot;&gt;可替代性&lt;/h2&gt;
&lt;p&gt;程序运行之所以高效，是因为有良好的架构，算法等方法论的有效性集成。如果程序都有非专业人员来写，可能会面临很多问题，比如写出来的程序效率低下，安全性差，维护困难等问题。&lt;/p&gt;
&lt;p&gt;可用不等于可维护，可持续演进。&lt;/p&gt;
&lt;p&gt;如果没有专业程序员，世界上的信息化将会在现有的基础上停滞不前，甚至可能会倒退。因为没有专业程序员来维护和改进现有的系统，可能会导致上层系统出现漏洞和安全问题，甚至可能会导致系统崩溃。&lt;/p&gt;
&lt;p&gt;至于 AI 写出来的高效的二进制代码，我们大可不必担心，代码不是越接近原生越好，至少，代码也能被审计和阅读。&lt;/p&gt;
&lt;p&gt;虽然 AI 发展很快，但架构层面的知识仍是所有高效架构的基础，比如在哪里使用 DTO，Model，Entity 等等。AI 可以帮助我们写代码，但它不能替代我们对架构的理解和设计能力。&lt;/p&gt;
&lt;h2 id=&quot;dtomodelentity-的定义和区别&quot;&gt;DTO,Model,Entity 的定义和区别&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://cdn.jsdelivr.net/gh/guzhongren/picx-images-hosting@master/Arch/system-design/dto-model-entity.drawio.2rvon2d8qd.svg&quot; alt=&quot;DTO,Model,Entity&quot;&gt;&lt;/p&gt;
&lt;p&gt;DTO,Model,Entity 在系统实现中有不同的左右，不能将 所有的数据定义都放在一个地方，而是在不同的地方要有不同的实现，然后在不同的层之间实现转换。&lt;/p&gt;
&lt;h3 id=&quot;dto&quot;&gt;DTO&lt;/h3&gt;
&lt;p&gt;DTO, Data Transfer Object，数据传输对象，是数据在多个层级之间传递时使用的对象。它通常是一个简单的对象，包含了需要传递的数据字段，没有业务逻辑和方法。DTO 的主要作用是为了减少层与层之间的耦合，提高系统的可维护性和可扩展性。&lt;/p&gt;
&lt;p&gt;一般的 DTO 都是 POJO（Plain Old Java Object），即普通的 Java 对象，它包含数据字段和 getter/setter 方法，但不包含任何业务逻辑。&lt;/p&gt;
&lt;p&gt;DTO 的主要作用是封装数据，并定义数据传输的格式，以便在多个层级之间传递。&lt;/p&gt;
&lt;p&gt;一般，DTO 在 Controller 层和 Service 层之间传递数据，或者在 Listener 层和 Service 层之间传递数据。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;RequestDTO&lt;/code&gt; 通常要实现一个 &lt;code&gt;from&lt;/code&gt; 方法，将 &lt;code&gt;RequestBody&lt;/code&gt; 转换成 &lt;code&gt;Model&lt;/code&gt; 对象；&lt;code&gt;ReesponseDTO&lt;/code&gt; 通常要实现一个 &lt;code&gt;to&lt;/code&gt; 方法，将 Model 对象转换成 &lt;code&gt;ResponseDTO&lt;/code&gt; 对象。&lt;/p&gt;
&lt;p&gt;DTO 可用于接受下游系统传递来的数据，也可以向上游系统发送数据。&lt;/p&gt;
&lt;h3 id=&quot;model&quot;&gt;Model&lt;/h3&gt;
&lt;p&gt;Model, 模型，是数据在系统内部流转的基本单元，它通常包含了业务数据，并提供对数据的操作方法。&lt;/p&gt;
&lt;p&gt;Model，通常只在 Service 层流转，与上游系统或数据库打交道的时候，需要将其转换成 Entity 对象或者发往第三方的 DTO 对象。&lt;/p&gt;
&lt;h3 id=&quot;entity&quot;&gt;Entity&lt;/h3&gt;
&lt;p&gt;Entity, 实体，是数据在数据库中的存储单元，它通常包含了业务数据，并提供对数据的操作方法。Entity 通常是一个 ORM（Object-Relational Mapping）对象，它与数据库表结构一一对应，包含了数据字段和 getter/setter 方法，并且通常还包含了数据库操作的方法。&lt;/p&gt;
&lt;p&gt;Entity，通常只在数据库打交道，由 Service 层转换成 Entity 对象进行数据库操作，或者将数据库查询出来的 Entity 对象转换成 Model 对象进行业务逻辑处理。&lt;/p&gt;
&lt;h2 id=&quot;结论&quot;&gt;结论&lt;/h2&gt;
&lt;p&gt;AI 发展很快，但架构层面的知识仍是所有高效架构的基础，比如在哪里使用 DTO，Model，Entity 等等。AI 可以帮助我们写代码，但它不能替代我们对架构的理解和设计能力。&lt;/p&gt;</content:encoded></item><item><title>AI 时代需要什么？</title><link>https://guzhongren.github.io/posts/2026/02/ai%E6%97%B6%E4%BB%A3%E9%9C%80%E8%A6%81%E4%BB%80%E4%B9%88/</link><guid isPermaLink="true">https://guzhongren.github.io/posts/2026/02/ai%E6%97%B6%E4%BB%A3%E9%9C%80%E8%A6%81%E4%BB%80%E4%B9%88/</guid><pubDate>Fri, 06 Feb 2026 23:09:08 GMT</pubDate><content:encoded>&lt;p&gt;都说过去的 2025 年是 AI 元年，各种大模型和工具争相涌现，一股百家争鸣的镜像；项目原因，在 2025 年年底浅浅的在正式项目中简单的使用了一下，那时候，AI 在编程领域已经是强到离谱，让人不经怀疑：一小撮程序员搞出了一个可以替代程序员的怪物，那作为程序员的我们还能做什么呢？我们应该是最最容易被代替的那一波人。而现在，我已经开始大规模使用 AI 来帮我写代码完成工作，通常 3 个点的卡，我基本就是 1 个小时整理业务背景及需求，然后交个 Agent 帮我 Plan 我的需求和实现计划，然后用几分钟生成代码，单元测试，集成测试等，最后再花个半小时做代码 review 和测试验证，整个流程下来，效率提升了至少 5 倍以上。&lt;/p&gt;
&lt;p&gt;如下是我参与的一个调查的回答，分享给大家：&lt;/p&gt;
&lt;p&gt;{{&amp;#x3C; admonition type=question title=“This is a survey” open=false &gt;}}&lt;/p&gt;
&lt;h2 id=&quot;as-an-engineer&quot;&gt;As an engineer:&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;What you used AI for (be specific)&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A:
&lt;ul&gt;
&lt;li&gt;[Design] Generate &lt;code&gt;AGENTS.md&lt;/code&gt; file for different project to avoid inaccurate answers about the specific project, e.g. Project overview to know the background, Tech Stack to make sure to generating related tech stack code, Architecture to generate the correct file under correct folder, and &lt;strong&gt;API&lt;/strong&gt; Endpoints to generate the correct API endpoint code, restrictions to tell AI clearly state the “Don’ts” and points to note, standards to make sure the code generated is in line with the project standards, and test cases to make sure the code generated is tested, commands to run the project and verify by Agent itself.&lt;/li&gt;
&lt;li&gt;[Design] Generate the Git issue via the &lt;code&gt;generate-git-issue&lt;/code&gt; &lt;code&gt;SKILLS&lt;/code&gt;; the agent will generate the issue with given requirement and related linked source based on the &lt;code&gt;Claude opus&lt;/code&gt; model.&lt;/li&gt;
&lt;li&gt;[Design] Generate the change plan/tasks using &lt;code&gt;plan mode&lt;/code&gt;, give more information if not enough&lt;/li&gt;
&lt;li&gt;[Development] Generate the code with the plan in the &lt;code&gt;agent mode&lt;/code&gt; use well-performanced AI model, e.g. &lt;code&gt;Claude opus&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;[Development] Review code using different AI model after finish code generation in local.&lt;/li&gt;
&lt;li&gt;[Testing] Review code via MCP, like &lt;code&gt;review this PR： https://git.realestate.com.au/financial-experiences/lead-franchise-matching-service/pull/41&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;What you did without AI&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A: operation on the source code, e.e. create branch, commit code, push code, create PR, review PR, merge PR, deploy code, monitor the production system, etc.&lt;/li&gt;
&lt;li&gt;Operation of the JIRA card, it should be operated by AI and MCP… just need to try.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Something AI helped with that surprised you&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A:
&lt;ul&gt;
&lt;li&gt;Generate the clean &amp;#x26; correct git issue (diagrams, business test strategies… ) with small prompt( contains short requirement description and some git repo’s link)&lt;/li&gt;
&lt;li&gt;Fix the bug with a more elegant way
&lt;ul&gt;
&lt;li&gt;should save auditTrail info from lead in the DB, skip if empty from DB and empty in the request parameter; but if empty in the DB and user provided it, should save it; I just use pseudo-code describe the logic, but the code generated by AI is more elegant and concise than my code, and it works well.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Something AI failed at&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A: Generate the not good code when the prompt is short and leak of business background, tech stack, especially in the &lt;code&gt;glean chat&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;One moment where you realized the workflow was better or worse than&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A: [Better] Test &amp;#x26; verify &amp;#x26; fix automatically with unit-test and integration test every time after generating code&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Rough time: did it speed them up, slow them down, or no change?&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A: [speed them up] at most time, especially when generating code and test cases, and the time for review code is also reduced a lot.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;{{&amp;#x3C; /admonition &gt;}}&lt;/p&gt;
&lt;h2 id=&quot;ai-时代你需要什么样的能力&quot;&gt;AI 时代，你需要什么样的能力？&lt;/h2&gt;
&lt;p&gt;AI 时代，什么样的能力不会被替代，而是被需要？我觉得有如下三点：&lt;/p&gt;
&lt;h3 id=&quot;定义问题&quot;&gt;定义问题&lt;/h3&gt;
&lt;p&gt;你的任何输入都会得到 AI 的反馈，但是不一定保证正确。&lt;/p&gt;
&lt;p&gt;AI 模型总是会猜测你的任何问题，但是如果你给他足够多且准确的信息，那么，他就会将你的问题转化成一个清晰的技术问题，并且给出一个可靠的解决方案。&lt;/p&gt;
&lt;p&gt;可以按照如下内容或步骤来定义你的 Prompt, AI 会更好地理解你的问题，并且给出更准确的答案：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;明确目标与成功指标：集成某个外部服务，使其可以让他我们的用户提供服务。&lt;/li&gt;
&lt;li&gt;限定约束条件：需要使用什么样的技术框架，满足什么架构要求，遵守什么样的安全规范…&lt;/li&gt;
&lt;li&gt;拆分子问题：按照架构层次、功能模块或数据流，把大问题拆成更小的、可交付的子问题，形成可追踪的 Task。&lt;/li&gt;
&lt;li&gt;设计验证回路：单元/集成测试如何运行并验证覆盖率。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&quot;管理&quot;&gt;管理&lt;/h3&gt;
&lt;p&gt;AI 模型已经是一个百事通了，但是它不一定能把所有的知识都正确的组合起来，来解决一个复杂的问题。对此，我们需要有能力来管理我们的经验/知识系统，以及管理多任务的 Agent 系统，来加速产品或项目的落地。&lt;/p&gt;
&lt;h4 id=&quot;管理知识&quot;&gt;管理知识&lt;/h4&gt;
&lt;p&gt;知识管理是把企业经验、文档和长期记忆转化为可供模型利用的资源。一个好用的知识层，能显著提高模型的可靠性与可控性。&lt;/p&gt;
&lt;p&gt;同时，人作为我们与 AI 交互的协作者，我们需要把人类的专业领域的经验系统性的编排起来，然后在提示词中将步骤一步一步的告诉 AI, 如此 AI 才能遵循正确的业务流程才完成任务，而不是凭空编造一个看似合理但不符合业务逻辑的答案。&lt;/p&gt;
&lt;p&gt;通用的知识，AI 比我们知道的多。不要低估它，但也不要高估自己。&lt;/p&gt;
&lt;p&gt;我们要做的是：把我们特有的、与业务相关的知识，结构化地管理起来，让 AI 能够正确地调用和组合这些知识。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;知识库结构化：将经验总结为“活”文档（诸如，README.md, AGENTS.md, SKILL.md Confluence page, Git Repo…），搭配 MCP/Agent/Skills 等技术让其可以与模型交互。&lt;/li&gt;
&lt;li&gt;版本与可追溯性：记录知识条目的变更历史与作者，输出时附带来源以便验证。&lt;/li&gt;
&lt;/ol&gt;
&lt;h4 id=&quot;管理多-agent&quot;&gt;管理多 Agent&lt;/h4&gt;
&lt;p&gt;随着系统复杂度提升，常出现把不同能力的模型或 Agent 组合使用的需求。管理多 Agent 需要明确角色分工、通信协议与失败处理。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;明确角色：给每个 Agent 一个清晰的职责（例如：Plan、generate code、tech debt manager &amp;#x26; refactor、review…），避免责任重叠。&lt;/li&gt;
&lt;li&gt;定义接口与契约：输入/输出格式、异常语义、超时与重试策略要事先规定好。&lt;/li&gt;
&lt;li&gt;中央编排 vs 分散协作：复杂情景下建议采用“指挥者（orchestrator）”模式统一调度；简单流水线可用轻量链式调用。&lt;/li&gt;
&lt;li&gt;可观测性：记录每个 Agent 的原始输入、模型版本、耗时与置信度，便于排查与演进。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;常见模式：先用检索+RAG 获取背景知识，再让生成模型根据约束完成任务；或者把复杂任务拆成多轮子任务，由专门 Agent 逐一解决并最终汇总答案。&lt;/p&gt;
&lt;h3 id=&quot;快速学习&quot;&gt;快速学习&lt;/h3&gt;
&lt;p&gt;在快速变化的领域，学习能力本身成为关键竞争力。更重要的是，把学习变成可复用的工程化流程。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;小步实验：把学习目标拆成可验证的小实验，用最简单的模型与数据先试验想法。&lt;/li&gt;
&lt;li&gt;模板化复用：把成功的 prompt、pipeline、测试用例做成模板库，供团队共享与快速复现。&lt;/li&gt;
&lt;li&gt;读懂论文与工程实现：关注落地性强的工作，把论文中的方法先在小规模上复现验证。&lt;/li&gt;
&lt;li&gt;复盘与知识沉淀：每个实验都写复盘，总结失败原因与可复用结论。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;学习路径建议：从“问题定义→验证→集成→监控”的闭环入手，先学会把 AI 功能稳定地嵌进产品，再逐步研究更底层的新技术。&lt;/p&gt;
&lt;h2 id=&quot;总结&quot;&gt;总结&lt;/h2&gt;
&lt;p&gt;AI 时代，需要更多的有经验的人。&lt;/p&gt;
&lt;p&gt;AI 带来的不是单纯替代，而是把重复性的认知劳动放到工具里，把复杂性留给人来管理。经验丰富的人在这个阶段反而更值钱，因为他们能做的事情，更偏向判断、抽象、取舍与责任承担。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;经验帮助你定义什么是“正确”的输入和输出，而不是被模型表面的“答案”迷惑。&lt;/li&gt;
&lt;li&gt;经验让你有能力评估风险、成本和收益，从而决定何时引入模型、何时保守为上。&lt;/li&gt;
&lt;li&gt;经验意味着能在模糊的需求里快速拆解出可交付的小目标，搭建迭代回路，让 AI 产出落地为产品价值。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;换句话说，AI 并不是真正把“思考”全盘接手，而是把大量机械化的认知任务交给了工具。最有价值的岗位，反而是能用更少的尝试把问题框定准确、能管理复杂系统、并对最终结果负责的人。&lt;/p&gt;
&lt;p&gt;AI 把工具能力放大，但不会自动带来判断力、责任和对上下文的深刻理解。那些能把问题定义清楚、建立稳定回路、并持续学习的人，在未来会更有竞争力。我们要做的，不是和模型比赛写代码，而是学会用模型去解决更有价值的、更需要经验与判断力的问题。&lt;/p&gt;</content:encoded></item><item><title>“妈妈，你看，月。”</title><link>https://guzhongren.github.io/posts/2026/01/%E5%A6%88%E5%A6%88%E4%BD%A0%E7%9C%8B%E6%9C%88/</link><guid isPermaLink="true">https://guzhongren.github.io/posts/2026/01/%E5%A6%88%E5%A6%88%E4%BD%A0%E7%9C%8B%E6%9C%88/</guid><pubDate>Thu, 22 Jan 2026 23:48:47 GMT</pubDate><content:encoded>&lt;p&gt;昨天晚上本来想让西西早点睡觉，所以我们就早早就上床了，假装要睡觉了，可西西还是很兴奋，在主卧，客厅，次卧之间不停跑，不停大声说话。&lt;/p&gt;
&lt;p&gt;妈妈骗她说：“外面有大灰狼，赶紧上来睡觉来。”&lt;/p&gt;
&lt;p&gt;西西听到后，眼睛一瞪，然后慢吞吞地就上来了，上来之后又要进入她的睡觉流程了。首先拿起了她的巧虎书和巧虎笔，然后就开始点了。&lt;/p&gt;
&lt;p&gt;突然看到最后一页，那一页是一首古诗，唐代王维的《山居秋暝》，里面有一句是 “明月松间照”, 西西看到“月” 后就兴奋了，叫到：“妈妈，你看，月。”&lt;/p&gt;
&lt;p&gt;妈妈一看,果然是“月” 说道：“哇，西西真棒，都认识书上的字啦。” 然后娘两抱着亲了一下。&lt;/p&gt;
&lt;p&gt;然后西西就更兴奋了，更睡不着了…&lt;/p&gt;</content:encoded></item><item><title>西西认识了很多字</title><link>https://guzhongren.github.io/posts/2026/01/%E8%A5%BF%E8%A5%BF%E8%AE%A4%E8%AF%86%E4%BA%86%E5%BE%88%E5%A4%9A%E5%AD%97/</link><guid isPermaLink="true">https://guzhongren.github.io/posts/2026/01/%E8%A5%BF%E8%A5%BF%E8%AE%A4%E8%AF%86%E4%BA%86%E5%BE%88%E5%A4%9A%E5%AD%97/</guid><pubDate>Fri, 16 Jan 2026 23:19:45 GMT</pubDate><content:encoded>&lt;p&gt;每天下班吃完饭后，妈妈都会带着西西学习认字，她们会把学会的字贴在冰箱的一个门上，不认识的字留在下面，然后计划好明天要学哪些字；有时候奶奶也会教西西认识一些字。&lt;/p&gt;
&lt;p&gt;有天下班到家，西西就拿着奶奶教她的飞机的飞给妈妈炫耀：“妈妈，你看，飞机的飞。” 说的时候可开心了。&lt;/p&gt;
&lt;p&gt;妈妈也很惊讶，我回来，妈妈就给我也说了这事，然后西西又找到了飞机的飞给我炫耀她学到的字。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;晚上西西睡觉前的流程快走完了，她开始在客厅和卧室之间乱串，突然，走到奶奶的卧室门口，她指着门上贴的字开始一个一个的读：“飞机的飞， 大小的大，一二三四五六七八九十，红色，绿色，妈妈，奶奶…”&lt;/p&gt;
&lt;p&gt;我站在她的后面说：“这么棒，都认识这么多字啦！” 不得不说，新脑子就是好使。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;img src=&quot;https://cdn.jsdelivr.net/gh/guzhongren/picx-images-hosting@master/life/xixi/font.70atzef0ee.webp&quot; alt=&quot;font&quot;&gt;
昨天晚上，我们准备睡觉了，西西突然要找飞机的飞字，我们在客厅找了一会找到了， 然后妈妈就开始带着西西认字，并拍视频，妈妈让西西一个字一个字的拿起来，然后让西西对着手机摄像头叫出字的发音，刚开始，西西完全按照剧情在演，而且字发音都正确，说了一半后，整个场面就开始失控了; 原本认识的字现在故意说个错的发音，还故意做出鬼脸…&lt;/p&gt;</content:encoded></item><item><title>“我不喜欢我的爸爸了”</title><link>https://guzhongren.github.io/posts/2026/01/%E6%88%91%E4%B8%8D%E5%96%9C%E6%AC%A2%E6%88%91%E7%9A%84%E7%88%B8%E7%88%B8%E4%BA%86/</link><guid isPermaLink="true">https://guzhongren.github.io/posts/2026/01/%E6%88%91%E4%B8%8D%E5%96%9C%E6%AC%A2%E6%88%91%E7%9A%84%E7%88%B8%E7%88%B8%E4%BA%86/</guid><pubDate>Tue, 06 Jan 2026 00:22:33 GMT</pubDate><content:encoded>&lt;p&gt;年底了还有好多假没有休完，媳妇也要去天津出差，于是我们决定去新疆玩七天，然后瞅中时机果断买了最便宜的机票，到点就飞了。&lt;/p&gt;
&lt;p&gt;西西也完成了人生的第一次坐飞机；坐飞机前是兴奋的，坐飞机的时候是睡觉的，也没有那么兴奋了，连个天上，云朵都懒得看。&lt;/p&gt;
&lt;p&gt;由于轻装简行，我就没有带剃须刀 🪒，所以七天下来我的胡子长得长长的，蹭西西地时候，西西就会说：“不要亲我！”哈哈，被嫌弃了。&lt;/p&gt;
&lt;p&gt;三十一号，全家人都回家。一周没见妈妈，西西在高铁站就跟妈妈腻歪起来了，完全没我什么事了。&lt;/p&gt;
&lt;p&gt;回到家，我们一起玩游戏，西西突然说：“我不喜欢我的爸爸了。”&lt;/p&gt;
&lt;p&gt;我和媳妇相互看着对方表示很惊讶。&lt;/p&gt;
&lt;p&gt;然后西西又说：“我喜欢我的妈妈。”&lt;/p&gt;
&lt;p&gt;妈妈说：“为什么？”&lt;/p&gt;
&lt;p&gt;西西说：“因为爸爸没刮胡子。”&lt;/p&gt;
&lt;p&gt;我只能无语的笑笑。妈妈也只能跟着西西嫌弃，然后笑一笑。&lt;/p&gt;</content:encoded></item><item><title>“妈妈什么时候几天回来”</title><link>https://guzhongren.github.io/posts/2025/12/%E5%A6%88%E5%A6%88%E4%BB%80%E4%B9%88%E6%97%B6%E5%80%99%E5%87%A0%E5%A4%A9%E5%9B%9E%E6%9D%A5/</link><guid isPermaLink="true">https://guzhongren.github.io/posts/2025/12/%E5%A6%88%E5%A6%88%E4%BB%80%E4%B9%88%E6%97%B6%E5%80%99%E5%87%A0%E5%A4%A9%E5%9B%9E%E6%9D%A5/</guid><pubDate>Mon, 15 Dec 2025 00:22:00 GMT</pubDate><content:encoded>&lt;p&gt;周日早上，一家人吃了饭，西西，奶奶和我拿着我们在凯德广场领的免费的电影票去看定影了，西西第一次看电影，走进电影院后看到既高又大的电影院格外好奇，虽然早到了几分钟，但是我们参观了电影院的各个地方和看到了很多海报，玩偶…&lt;/p&gt;
&lt;p&gt;电影开始了，我们进去坐到了第三排，因为后面都没有好位置了。&lt;/p&gt;
&lt;p&gt;电影看了前半段，讲了一对父子在海上遭遇了海浪，被迫漂流到一个叫幸福岛的岛上，上面有几个会说话的动物，然后发生了一些了可笑的事。后来岛上要举行幸福节，父子俩想要拿出最好的礼物 -  小孩妈妈送他的大虾披风，但被风吹走了。他们找啊找，追啊追，最终披风被撕成了好几片，但小动物们并不知道这个披风对小孩的意义。&lt;/p&gt;
&lt;p&gt;小孩在帐篷里和父亲聊天，小孩突然说：“我要回家。”&lt;/p&gt;
&lt;p&gt;西西一听就把头转过来，看我说：“爸爸，我要回家。”眼泪瞬间就下来了，然后就开始嚎啕大哭。&lt;/p&gt;
&lt;p&gt;我赶紧把西西抱着出了电影院观影厅，然后就在影厅外抱着她，哄她说：“不哭了，不哭了，我们一会就回家。”&lt;/p&gt;
&lt;p&gt;过了一会，西西终于平静了，我又说：“那我们现在进去继续看电影呢还是回家呢？”&lt;/p&gt;
&lt;p&gt;西西果断地说：“回家。”&lt;/p&gt;
&lt;p&gt;我又努力地和她交流了一下，西西还是坚持要回家。&lt;/p&gt;
&lt;p&gt;然后我们在一楼吃了个开心果味的冰激凌就回家了。回家路上还一直要让抱着才行。&lt;/p&gt;
&lt;p&gt;…&lt;/p&gt;
&lt;p&gt;晚上，西西走完了所有的睡觉前的流程（玩游戏，学英语，刷牙，看书，蹦蹦跳跳），最后要睡觉了，西西趴在我的枕头边很不开心的说：“妈妈什么时候几天回来？”&lt;/p&gt;
&lt;p&gt;我说：“7 天，21 号回来。”&lt;/p&gt;
&lt;p&gt;西西说：“妈妈什么时候几天回来？”&lt;/p&gt;
&lt;p&gt;我说：“7 天，21 号就回来了。”&lt;/p&gt;
&lt;p&gt;西西说：“妈妈什么时候几天回来？”&lt;/p&gt;
&lt;p&gt;我说：“7 天，21 号。”&lt;/p&gt;
&lt;p&gt;西西说：“妈妈什么时候几天回来？”&lt;/p&gt;
&lt;p&gt;我说：“7 天，21 号。”&lt;/p&gt;
&lt;p&gt;说着说着，西西眼睛里开始泛起泪花，然后就开始嚎啕大哭，哭着说：“妈妈什么时候几天回来？”&lt;/p&gt;
&lt;p&gt;我抱起她哄了哄她说：”还有 7 天，下周日就回来了。“&lt;/p&gt;
&lt;p&gt;西西又接着说：”妈妈什么时候几天回来？“&lt;/p&gt;
&lt;p&gt;我说：“还有 7 天，下周日就回来了。”&lt;/p&gt;
&lt;p&gt;西西终于平静了可还是不睡觉，即使眼睛在不停的眯着。然后我们又回到了床上。&lt;/p&gt;
&lt;p&gt;西西说：“妈妈什么时候几天回来？”&lt;/p&gt;
&lt;p&gt;我说：“7 天，21 号就回来了。”&lt;/p&gt;
&lt;p&gt;西西说：“妈妈什么时候几天回来？”&lt;/p&gt;
&lt;p&gt;我说：“7 天，21 号。”&lt;/p&gt;
&lt;p&gt;西西说：“妈妈什么时候几天回来？”&lt;/p&gt;
&lt;p&gt;我说：“7 天，21 号。”&lt;/p&gt;
&lt;p&gt;…&lt;/p&gt;
&lt;p&gt;凌晨四点，我突然醒来，西西和往常一样，在枕头那上面横着睡着, 得亏家里还是二十三四度的样子，不然光着屁股就得冻感冒了。&lt;/p&gt;
&lt;p&gt;老父亲依旧按规律的给西西掂了个尿然后就又呼呼大睡了。&lt;/p&gt;</content:encoded></item><item><title>“看，我会穿”</title><link>https://guzhongren.github.io/posts/2025/12/%E7%9C%8B%E6%88%91%E4%BC%9A%E7%A9%BF/</link><guid isPermaLink="true">https://guzhongren.github.io/posts/2025/12/%E7%9C%8B%E6%88%91%E4%BC%9A%E7%A9%BF/</guid><pubDate>Thu, 11 Dec 2025 00:18:32 GMT</pubDate><content:encoded>&lt;p&gt;昨天下午，西西早早就吃完饭了，我到楼下，西西打来了电话，第一句就是：“爸爸，你到哪了？”&lt;/p&gt;
&lt;p&gt;我把手机转过来朝向小区说：“楼下了。”&lt;/p&gt;
&lt;p&gt;西西说： “噢，爸爸到楼下了。”&lt;/p&gt;
&lt;p&gt;我说：“我马上就上来了，挂了吧。”&lt;/p&gt;
&lt;p&gt;然而西西不说话，自顾自的又开始玩耍，时而说一句，时而听一下。最后我到家才把电话挂了。&lt;/p&gt;
&lt;p&gt;…&lt;/p&gt;
&lt;p&gt;我们都吃完饭了，西西今天选择了学英语，而不是玩 Switch, 于是妈妈陪着他学英语，她在 iPad 上跟着学写字母和数数字，玩的不亦乐乎。&lt;/p&gt;
&lt;p&gt;过了一会，妈妈要去卫生间试衣服就走了。&lt;/p&gt;
&lt;p&gt;突然，西西说：“我要去卫生间！”&lt;/p&gt;
&lt;p&gt;她每次这么说都感觉很着急，必须立马到达的样子，于是，她开始找她那双奶奶做的拖鞋，找大后，放在了沙发边，她扶着沙发开始穿，毫不意外，和她每次穿鞋一样，这次又是右脚穿左鞋。&lt;/p&gt;
&lt;p&gt;我提醒说：“西西，穿反了。”&lt;/p&gt;
&lt;p&gt;西西不再尝试反着穿，反而她拿起了鞋子放在了电视柜上，然后一个劲地努力把自己的左腿抬起来放在电视柜上，最终还真在电视柜上穿上了鞋子，一只穿上了，另一只也得穿上吧，于是她找到了右脚那只鞋，又把鞋放在了电视柜上，准备抬起右腿，可腿是上去了，但就是进不了鞋，左挪傩，右跳跳，脚就是进不了鞋。&lt;/p&gt;
&lt;p&gt;我在边上看着说：“西西，需要帮忙吗？”&lt;/p&gt;
&lt;p&gt;西西说：“不需要。”&lt;/p&gt;
&lt;p&gt;过了不到半分钟，西西就穿上了鞋子，然后平和地说：“看，我会穿。”&lt;/p&gt;
&lt;p&gt;我只能附和说：“你真棒。”&lt;/p&gt;
&lt;p&gt;然后西西屁颠屁颠地就去卫生间了。&lt;/p&gt;</content:encoded></item><item><title>“尿尿”</title><link>https://guzhongren.github.io/posts/2025/11/%E5%B0%BF%E5%B0%BF/</link><guid isPermaLink="true">https://guzhongren.github.io/posts/2025/11/%E5%B0%BF%E5%B0%BF/</guid><pubDate>Tue, 25 Nov 2025 00:22:41 GMT</pubDate><content:encoded>&lt;p&gt;昨天回家我们吃完饭，西西就开始看她新一期巧的虎视频了。看视频的时候一会跟着视频说英语，一会拍手，一会又跳舞，一会又唱诗，玩的不亦乐乎。&lt;/p&gt;
&lt;p&gt;看完了巧虎视频，她关掉了电视，我准备去主卧，看到他低着头走路，我好奇的说：“西西，你干嘛去？”&lt;/p&gt;
&lt;p&gt;西西继续地址头，慢悠悠的说：“尿尿。”&lt;/p&gt;
&lt;p&gt;听到西西说话，坐在沙发上的妈妈哈哈大笑起来，还嘲讽地说：“你娃长大了，不需要你了。”&lt;/p&gt;
&lt;p&gt;西西还是低着头，找到了奶奶给她做的花色拖鞋，慢悠悠地穿上走进了卫生间，我们也没进去帮她脱裤子。&lt;/p&gt;
&lt;p&gt;过了一会，我在卫生间门口看西西是不是已经把裤子都提好了。但我头一伸，西西看到之后就不提了，直接撒娇说：“爸爸，你帮我提一下，我不会提。”&lt;/p&gt;
&lt;p&gt;我站在门外说：“屁股后面提一下，前面提一下就好了。”&lt;/p&gt;
&lt;p&gt;西西还是一动不动地站着，然后又努力地提了一下屁股后面的裤子和前面的裤子，但提的地方不对，裤子始终提不起来，还时不时地发出声音：“哎哟，哎呦。”&lt;/p&gt;
&lt;p&gt;最终，自己提裤子以失败告终，我不得不进去帮她提。&lt;/p&gt;
&lt;p&gt;出来后，媳妇又嘲讽地说：“你娃已经不需要你了。”&lt;/p&gt;
&lt;p&gt;我只能给她个眼神了。&lt;/p&gt;</content:encoded></item><item><title>通过 openMTP 在 Switch 上安装游戏</title><link>https://guzhongren.github.io/posts/2025/11/%E9%80%9A%E8%BF%87openmtp%E5%9C%A8switch%E4%B8%8A%E5%AE%89%E8%A3%85%E6%B8%B8%E6%88%8F/</link><guid isPermaLink="true">https://guzhongren.github.io/posts/2025/11/%E9%80%9A%E8%BF%87openmtp%E5%9C%A8switch%E4%B8%8A%E5%AE%89%E8%A3%85%E6%B8%B8%E6%88%8F/</guid><pubDate>Thu, 20 Nov 2025 15:49:51 GMT</pubDate><content:encoded>&lt;h2 id=&quot;问题&quot;&gt;问题&lt;/h2&gt;
&lt;p&gt;前几天入手了 OLED 版本最新的 Switch 一代，顺便破解了装了好多游戏，拿到手之后，发现好多游戏都不喜欢玩，为了玩射击类和动作类游戏，随即开始自己安装游戏，问同事要了他安装游戏的网盘资源，晚上在闲鱼上花了不到 3 块钱开了个夸克的会员下游戏。&lt;/p&gt;
&lt;p&gt;游戏下载好之后就需要安装到 Switch 上了，接下来就把 Switch 和 我的 MacBook Pro 连接起来，准备安装游戏，但是 MacBook Pro 就是始终不识别我的 Switch SD 卡，估计是 SD 卡格式不识别。所以我就开始启用所谓的破解版的官方使用的 MTP 来安装游戏，但是 MacBook Pro 也是不能找到；&lt;/p&gt;
&lt;p&gt;因为在 MTP 下面还有个 FTP, 我准备用 FTP 来传输，然后再安装游戏，但是 MacBook Pro 可以访问 Switch 的 FTP 服务器，但是，没有写的权限，又失败了。&lt;/p&gt;
&lt;h2 id=&quot;解决思路&quot;&gt;解决思路&lt;/h2&gt;
&lt;p&gt;网上有很多说用一个&lt;a href=&quot;https://commander-one.com/&quot;&gt;Commander one&lt;/a&gt; 可以安装在 MacBook 上，然后就可以找到 Switch 的 MTP 设备，然后就可以安装游戏了。好消息是确实可以找到 Switch 的 MTP 设备，坏消息是，拷贝游戏到 Switch 时，会探窗框说继续免费使用拷贝，但是没有任何进度。好无语啊，连个提示都没有，这不应该是一个商业公司开发的产品。&lt;/p&gt;
&lt;p&gt;没有什么是能难到程序员的。于是我就在 GitHub 上搜 MTP, 果然有个 &lt;a href=&quot;https://github.com/ganeshrvel/openmtp&quot;&gt;OpenMTP&lt;/a&gt; 的项目，打开一看，README 文档也写的不错，直接就有 Homebrew 的安装命令，毫不犹豫的就尝试安装，果然有些开源的产品做的就是非常的懂用户体验，尤其是给程序员用的。&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;brew&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; install&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; --cask&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; openmtp&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id=&quot;最终方案&quot;&gt;最终方案&lt;/h2&gt;
&lt;p&gt;因为 OpenMTP 使用起来非常简单，只要要找对目标磁盘，直接将要拷贝的文件（游戏）拖拽到目标磁盘就可以了。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://cdn.jsdelivr.net/gh/guzhongren/picx-images-hosting@master/Tools/mtp/openMTP-switch.2yysbj8l4m.webp&quot; alt=&quot;OpenMTP&quot;&gt;&lt;/p&gt;
&lt;h2 id=&quot;总结&quot;&gt;总结&lt;/h2&gt;
&lt;p&gt;Commander One 可能是个好软件，但是在复制游戏到目标磁盘的时候不可用，但开源世界总有代替的东西，有时候可能很直接，拿来就可以用，有时候需要多个工具组合一下，但最终都可以解决问题。程序员的世界就是这样，永远不会缺少解决问题的工具。&lt;/p&gt;</content:encoded></item></channel></rss>