<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>编程手札</title><description>一只默默工作程序猿的编程日记</description><link>https://www.samoy.fun/</link><language>zh-CN</language><item><title>VibeGuard：专为AI生成代码打造的安全Lint工具</title><link>https://www.samoy.fun/2026/08/VibeGuard%EF%BC%9A%E4%B8%93%E4%B8%BAAI%E7%94%9F%E6%88%90%E4%BB%A3%E7%A0%81%E6%89%93%E9%80%A0%E7%9A%84%E5%AE%89%E5%85%A8Lint%E5%B7%A5%E5%85%B7/</link><guid isPermaLink="true">https://www.samoy.fun/2026/08/VibeGuard%EF%BC%9A%E4%B8%93%E4%B8%BAAI%E7%94%9F%E6%88%90%E4%BB%A3%E7%A0%81%E6%89%93%E9%80%A0%E7%9A%84%E5%AE%89%E5%85%A8Lint%E5%B7%A5%E5%85%B7/</guid><description>近年来，“Vibe Coding”（氛围编程，指开发者通过自然语言提示让 AI 生成代码，自身主要把控整体方向和结果）席卷了开发者社区。AI 编码助手让代码产出呈指数级增长，但正如业界近期达成的一个深刻共识：“当 AI 负责写代码时，验证（Verification）就成了新的实现（Implementation）。” 开…</description><pubDate>Sun, 30 Aug 2026 02:18:43 GMT</pubDate><category>AI</category></item><item><title>前后端分离部署期间如何优雅地通知用户刷新页面</title><link>https://www.samoy.fun/2026/08/%E5%89%8D%E5%90%8E%E7%AB%AF%E5%88%86%E7%A6%BB%E9%83%A8%E7%BD%B2%E6%9C%9F%E9%97%B4%E5%A6%82%E4%BD%95%E4%BC%98%E9%9B%85%E5%9C%B0%E9%80%9A%E7%9F%A5%E7%94%A8%E6%88%B7%E5%88%B7%E6%96%B0%E9%A1%B5%E9%9D%A2/</link><guid isPermaLink="true">https://www.samoy.fun/2026/08/%E5%89%8D%E5%90%8E%E7%AB%AF%E5%88%86%E7%A6%BB%E9%83%A8%E7%BD%B2%E6%9C%9F%E9%97%B4%E5%A6%82%E4%BD%95%E4%BC%98%E9%9B%85%E5%9C%B0%E9%80%9A%E7%9F%A5%E7%94%A8%E6%88%B7%E5%88%B7%E6%96%B0%E9%A1%B5%E9%9D%A2/</guid><description>问题背景 在前后端分离的架构中，前端和后端通常是独立部署的。一次完整的发布流程往往是这样的： 1. 后端先发布新版本（API 变更、数据结构调整等） 2. 等待后端部署完成并健康检查通过 3. 前端再发布新版本 在「后端发布完成」到「前端发布完成」这段时间窗口内，线上已经打开了旧版前端页面的用户，他们的浏览器里运行的仍…</description><pubDate>Thu, 27 Aug 2026 09:07:47 GMT</pubDate><category>Web</category></item><item><title>把AI当实习生而非软件：斯坦福教授的AI协作指南</title><link>https://www.samoy.fun/2026/08/%E6%8A%8AAI%E5%BD%93%E5%AE%9E%E4%B9%A0%E7%94%9F%E8%80%8C%E9%9D%9E%E8%BD%AF%E4%BB%B6%EF%BC%9A%E6%96%AF%E5%9D%A6%E7%A6%8F%E6%95%99%E6%8E%88%E7%9A%84AI%E5%8D%8F%E4%BD%9C%E6%8C%87%E5%8D%97/</link><guid isPermaLink="true">https://www.samoy.fun/2026/08/%E6%8A%8AAI%E5%BD%93%E5%AE%9E%E4%B9%A0%E7%94%9F%E8%80%8C%E9%9D%9E%E8%BD%AF%E4%BB%B6%EF%BC%9A%E6%96%AF%E5%9D%A6%E7%A6%8F%E6%95%99%E6%8E%88%E7%9A%84AI%E5%8D%8F%E4%BD%9C%E6%8C%87%E5%8D%97/</guid><description>在日常使用AI工具时，你是否经历过这样的挫败时刻：AI能轻易生成一个精致的超级马里奥3D模型，却无法为你家扫地机器人设计一个简单的楔形坡道？这种看似矛盾的现象，揭示了当前大语言模型（LLM）的一个核心特质。斯坦福大学的 Jeremy Utley 教授和 Mihail Eric 等专家近期不约而同地指出：阻碍我们发挥AI…</description><pubDate>Sun, 23 Aug 2026 02:19:17 GMT</pubDate><category>AI</category></item><item><title>双流Transformer：解耦主预填充路径与额外解码计算</title><link>https://www.samoy.fun/2026/08/%E5%8F%8C%E6%B5%81Transformer%EF%BC%9A%E8%A7%A3%E8%80%A6%E4%B8%BB%E9%A2%84%E5%A1%AB%E5%85%85%E8%B7%AF%E5%BE%84%E4%B8%8E%E9%A2%9D%E5%A4%96%E8%A7%A3%E7%A0%81%E8%AE%A1%E7%AE%97/</link><guid isPermaLink="true">https://www.samoy.fun/2026/08/%E5%8F%8C%E6%B5%81Transformer%EF%BC%9A%E8%A7%A3%E8%80%A6%E4%B8%BB%E9%A2%84%E5%A1%AB%E5%85%85%E8%B7%AF%E5%BE%84%E4%B8%8E%E9%A2%9D%E5%A4%96%E8%A7%A3%E7%A0%81%E8%AE%A1%E7%AE%97/</guid><description>在大语言模型（LLM）的实际部署中，工程师们常常面临一个令人头疼的“跷跷板”难题：优化了首字延迟（TTFT, Time To First Token），却牺牲了后续的生成速度（ITL, Inter-Token Latency）；提高了系统的整体吞吐量，却导致长文本请求频繁阻塞。这种性能矛盾的根源，在于传统推理引擎将两个…</description><pubDate>Sun, 16 Aug 2026 02:13:11 GMT</pubDate><category>AI</category></item><item><title>揭秘LLM模型交换技巧：如何暴露AI的隐藏推理痕迹</title><link>https://www.samoy.fun/2026/08/%E6%8F%AD%E7%A7%98LLM%E6%A8%A1%E5%9E%8B%E4%BA%A4%E6%8D%A2%E6%8A%80%E5%B7%A7%EF%BC%9A%E5%A6%82%E4%BD%95%E6%9A%B4%E9%9C%B2AI%E7%9A%84%E9%9A%90%E8%97%8F%E6%8E%A8%E7%90%86%E7%97%95%E8%BF%B9/</link><guid isPermaLink="true">https://www.samoy.fun/2026/08/%E6%8F%AD%E7%A7%98LLM%E6%A8%A1%E5%9E%8B%E4%BA%A4%E6%8D%A2%E6%8A%80%E5%B7%A7%EF%BC%9A%E5%A6%82%E4%BD%95%E6%9A%B4%E9%9C%B2AI%E7%9A%84%E9%9A%90%E8%97%8F%E6%8E%A8%E7%90%86%E7%97%95%E8%BF%B9/</guid><description>近年来，大语言模型（LLM）的推理能力突飞猛进。为了提升复杂问题的解决能力，前沿模型引入了“隐藏推理”（Hidden Reasoning）或内部思维链（Chain-of-Thought, CoT）机制。为了保护知识产权、防止恶意提示词注入以及避免信息泄露，模型提供商通常会将这些中间推理步骤加密，或者在 API 响应中将…</description><pubDate>Wed, 12 Aug 2026 01:27:32 GMT</pubDate><category>AI</category></item><item><title>是否应该自托管大模型推理？成本与风险指南</title><link>https://www.samoy.fun/2026/08/%E6%98%AF%E5%90%A6%E5%BA%94%E8%AF%A5%E8%87%AA%E6%89%98%E7%AE%A1%E5%A4%A7%E6%A8%A1%E5%9E%8B%E6%8E%A8%E7%90%86%EF%BC%9F%E6%88%90%E6%9C%AC%E4%B8%8E%E9%A3%8E%E9%99%A9%E6%8C%87%E5%8D%97/</link><guid isPermaLink="true">https://www.samoy.fun/2026/08/%E6%98%AF%E5%90%A6%E5%BA%94%E8%AF%A5%E8%87%AA%E6%89%98%E7%AE%A1%E5%A4%A7%E6%A8%A1%E5%9E%8B%E6%8E%A8%E7%90%86%EF%BC%9F%E6%88%90%E6%9C%AC%E4%B8%8E%E9%A3%8E%E9%99%A9%E6%8C%87%E5%8D%97/</guid><description>2026年，大语言模型（LLM）已从实验室的“玩具”彻底演变为企业级应用的“基础设施”。然而，当开发者或 CTO 们准备将 AI 接入业务时，第一道选择题依然棘手：是直接调用云端 API，还是咬咬牙自托管（Self-hosted）本地推理？ 这并非简单的技术偏好问题，而是一场涉及成本结构、数据主权与系统架构的深度博弈。…</description><pubDate>Tue, 11 Aug 2026 13:50:37 GMT</pubDate><category>AI</category></item><item><title>SDD + TDD 多 Agent 协同代码审查流程最佳实践</title><link>https://www.samoy.fun/2026/08/%E5%A4%9AAgent%E5%8D%8F%E4%BD%9C/</link><guid isPermaLink="true">https://www.samoy.fun/2026/08/%E5%A4%9AAgent%E5%8D%8F%E4%BD%9C/</guid><description>适用场景：Vibe Coding 中利用 AI 生成/修改代码，通过「规格驱动 + 测试驱动 + 多 Agent 交叉审查 + 人工兜底」构建可信交付流水线。 核心理念：AI 生成的代码天然不可信，可信度不来自任何单个 Agent，而来自结构化的制衡机制。 一、核心思想 原则 说明 规格是唯一事实源 代码是否符合预期，…</description><pubDate>Sat, 08 Aug 2026 12:50:00 GMT</pubDate><category>AI</category></item><item><title>MySQL储存过程和存储函数</title><link>https://www.samoy.fun/2024/10/MySQL%E5%82%A8%E5%AD%98%E8%BF%87%E7%A8%8B%E5%92%8C%E5%AD%98%E5%82%A8%E5%87%BD%E6%95%B0/</link><guid isPermaLink="true">https://www.samoy.fun/2024/10/MySQL%E5%82%A8%E5%AD%98%E8%BF%87%E7%A8%8B%E5%92%8C%E5%AD%98%E5%82%A8%E5%87%BD%E6%95%B0/</guid><description>1. 存储过程 1.1 语法： 说明: 1. 参数前面符号的意思： IN：有入参无返回值 OUT：无入参有返回值 INOUT：有入参有返回值 2. 形参可以是MySQL中的任何类型 3. 表示创建储存过程中指定的对储存过程的约束条件，其取值信息如下： ：表示存储过程使用SQL语句，默认值是SQL : 表示存储过程是否是…</description><pubDate>Mon, 07 Oct 2024 01:19:00 GMT</pubDate><category>Others</category></item><item><title>请使用performance.now()而不是new Date().getTime()</title><link>https://www.samoy.fun/2024/08/%E8%AF%B7%E4%BD%BF%E7%94%A8performance.now()%E8%80%8C%E4%B8%8D%E6%98%AFnew%20Date().getTime()/</link><guid isPermaLink="true">https://www.samoy.fun/2024/08/%E8%AF%B7%E4%BD%BF%E7%94%A8performance.now()%E8%80%8C%E4%B8%8D%E6%98%AFnew%20Date().getTime()/</guid><description>在Web开发过程中，我们经常会遇到这样的需求，即比较两个时间点的时间差，大多数同学都会使用以下方法： 一般来说，这样做是不会出现什么问题的，但是假如 函数执行时间非常长，那么就会出现异常。 考虑以下场景: 当在执行 函数时，我手动或者使用NTP软件把系统时间修改了，那么 和 之间的差值就会变得不准确。 所以 这个函数是…</description><pubDate>Thu, 01 Aug 2024 07:50:00 GMT</pubDate><category>Web</category></item><item><title>前端模拟面试</title><link>https://www.samoy.fun/2024/07/%E5%89%8D%E7%AB%AF%E6%A8%A1%E6%8B%9F%E9%9D%A2%E8%AF%95/</link><guid isPermaLink="true">https://www.samoy.fun/2024/07/%E5%89%8D%E7%AB%AF%E6%A8%A1%E6%8B%9F%E9%9D%A2%E8%AF%95/</guid><description>1. 请说一说 JavaScript 中闭包的概念以及它的作用 &lt;details&gt; &lt;summary&gt;查看答案&lt;/summary&gt; 闭包是 JavaScript 中一个重要的概念，它允许函数在定义时访问其外部函数的变量和参数。 &lt;br&gt; 闭包的作用是： &lt;ol&gt; &lt;li&gt;实现私有变量，保护数据的安全性和隐私性。&lt;/li…</description><pubDate>Thu, 25 Jul 2024 09:33:00 GMT</pubDate><category>Web</category></item><item><title>JS中this的指向</title><link>https://www.samoy.fun/2024/06/JS%E4%B8%ADthis%E7%9A%84%E6%8C%87%E5%90%91/</link><guid isPermaLink="true">https://www.samoy.fun/2024/06/JS%E4%B8%ADthis%E7%9A%84%E6%8C%87%E5%90%91/</guid><description>总结一下 的指向： 调用方式 示例 指向 解释 通过 调用 新对象 ，此时this指向 直接调用 全局对象 取决于运行环境，在浏览器中为 ，在node中为 通过对象调用 前面的对象 函数 的this指向 通过 / / 调用 第一个参数 ，此时this指向 由此可见，this的指向取决于调用方式，而不是函数定义方式。当你…</description><pubDate>Thu, 06 Jun 2024 09:04:00 GMT</pubDate><category>Web</category></item><item><title>一文说清SKU算法的实现</title><link>https://www.samoy.fun/2024/03/%E4%B8%80%E6%96%87%E8%AF%B4%E6%B8%85SKU%E7%AE%97%E6%B3%95%E7%9A%84%E5%AE%9E%E7%8E%B0/</link><guid isPermaLink="true">https://www.samoy.fun/2024/03/%E4%B8%80%E6%96%87%E8%AF%B4%E6%B8%85SKU%E7%AE%97%E6%B3%95%E7%9A%84%E5%AE%9E%E7%8E%B0/</guid><description>什么是SKU SKU（Stock Keeping Unit）是库存管理中的基本概念，指的是库存进出计量的单位，也是产品库存控制的最小可用单位。 SKU是商业运营中对商品进行管理和追踪的一种独特标识符，通常是由一串数字或字母数字组合而成的代码。 对于不同的商品，即使颜色、尺寸、款式等属性有所差异，也会被赋予不同的SKU号…</description><pubDate>Tue, 26 Mar 2024 03:32:10 GMT</pubDate><category>Web</category></item><item><title>使用Typescript实现一个LRU缓存算法</title><link>https://www.samoy.fun/2024/03/%E4%BD%BF%E7%94%A8Typescript%E5%AE%9E%E7%8E%B0%E4%B8%80%E4%B8%AALRU%E7%BC%93%E5%AD%98%E7%AE%97%E6%B3%95/</link><guid isPermaLink="true">https://www.samoy.fun/2024/03/%E4%BD%BF%E7%94%A8Typescript%E5%AE%9E%E7%8E%B0%E4%B8%80%E4%B8%AALRU%E7%BC%93%E5%AD%98%E7%AE%97%E6%B3%95/</guid><description>1. 什么是 LRU 缓存算法 LRU（Least Recently Used）算法是一种常用的页面替换或缓存淘汰策略。它的核心思想是在资源有限的情况下，当需要添加新的数据项但存储空间已满时，优先淘汰最近最少使用的数据项，以保证最常访问或最近使用过的数据能够保留在缓存中。 2. 实现 LRU 算法的核心步骤 1. 数据…</description><pubDate>Tue, 05 Mar 2024 06:57:36 GMT</pubDate><category>Others</category></item><item><title>React深入理解</title><link>https://www.samoy.fun/2024/03/React%E6%B7%B1%E5%85%A5%E7%90%86%E8%A7%A3/</link><guid isPermaLink="true">https://www.samoy.fun/2024/03/React%E6%B7%B1%E5%85%A5%E7%90%86%E8%A7%A3/</guid><description>React自从 React 16 版本引入 Fiber 架构后，渲染过程变得更加精细和可控。整个更新流程主要可以分为三个关键模块：Scheduler（调度器）、Reconciler（协调器） 和 Renderer（渲染器）。 关键模块 Scheduler（调度器） 调度器是React内部的一个核心模块，它负责决定何时以…</description><pubDate>Fri, 01 Mar 2024 01:19:36 GMT</pubDate><category>Web</category></item><item><title>使用exiv2读取或者修改图片元数据</title><link>https://www.samoy.fun/2024/02/%E4%BD%BF%E7%94%A8exiv2%E8%AF%BB%E5%8F%96%E6%88%96%E8%80%85%E4%BF%AE%E6%94%B9%E5%9B%BE%E7%89%87%E5%85%83%E6%95%B0%E6%8D%AE/</link><guid isPermaLink="true">https://www.samoy.fun/2024/02/%E4%BD%BF%E7%94%A8exiv2%E8%AF%BB%E5%8F%96%E6%88%96%E8%80%85%E4%BF%AE%E6%94%B9%E5%9B%BE%E7%89%87%E5%85%83%E6%95%B0%E6%8D%AE/</guid><description>0. 前言 开发环境为Windows，使用vcpkg安装exiv2库。关于vcpkg的安装，请参考vcpkg官方文档。 如果使用其他环境，请自行通过搜索引擎查找相关资料。 1. 安装 exiv2 2. CMmakeLists.txt 配置 3. 引入头文件 4. 读取图片元数据 5. 修改图片元数据 6. 完整代码</description><pubDate>Mon, 19 Feb 2024 02:27:13 GMT</pubDate><category>C/C++</category></item><item><title>Typescript装饰器简介（下）</title><link>https://www.samoy.fun/2024/01/Typescript%E8%A3%85%E9%A5%B0%E5%99%A8%E7%AE%80%E4%BB%8B%EF%BC%88%E4%B8%8B%EF%BC%89/</link><guid isPermaLink="true">https://www.samoy.fun/2024/01/Typescript%E8%A3%85%E9%A5%B0%E5%99%A8%E7%AE%80%E4%BB%8B%EF%BC%88%E4%B8%8B%EF%BC%89/</guid><description>在上一篇文章中，我们介绍了装饰器的基本概念，并通过一个简单的例子来展示了装饰器的使用方法。然后，Typescript同时支持装饰器的新语法和旧语法。本文来介绍Typescript的旧语法。 在本文中，所使用的语法均为旧语法。 1.装饰器配置 如果通过旧语法使用装饰器，需要在tsconfig.json中配置compile…</description><pubDate>Fri, 05 Jan 2024 06:43:13 GMT</pubDate><category>Web</category></item><item><title>Typescript装饰器简介（上）</title><link>https://www.samoy.fun/2024/01/Typescript%E8%A3%85%E9%A5%B0%E5%99%A8%E7%AE%80%E4%BB%8B%EF%BC%88%E4%B8%8A%EF%BC%89/</link><guid isPermaLink="true">https://www.samoy.fun/2024/01/Typescript%E8%A3%85%E9%A5%B0%E5%99%A8%E7%AE%80%E4%BB%8B%EF%BC%88%E4%B8%8A%EF%BC%89/</guid><description>1. 装饰器的作用 装饰器是一种特殊的声明，它可以被附加到类、方法或属性上，用来修改类，属性或者方法的行为。 2. 装饰器类型 类装饰器 方法装饰器 属性装饰器 Getter/Setter装饰器 accessor装饰器 3. 装饰器语法 目前TypeScript使用的语法是5.0引入的装饰器语法，Typescript同…</description><pubDate>Thu, 04 Jan 2024 07:40:13 GMT</pubDate><category>Web</category></item><item><title>Mac终端部分快捷键</title><link>https://www.samoy.fun/2023/11/Mac%E7%BB%88%E7%AB%AF%E5%BF%AB%E6%8D%B7%E9%94%AE/</link><guid isPermaLink="true">https://www.samoy.fun/2023/11/Mac%E7%BB%88%E7%AB%AF%E5%BF%AB%E6%8D%B7%E9%94%AE/</guid><description>快捷键 操作 ^ + A 移动光标至行首 ^ + E 移动光标至行尾 ^ + F 移动光标至下一个字符 ^ + B 移动光标至上一个字符 ^ + P 移动光标至上一行 ^ + N 移动光标至下一行 ^ + K 删除光标前一个字符 ^ + D 删除光标后一个字符 ^ + H 删除至行首 ^ + W 删除至下一个单词 ^ …</description><pubDate>Sun, 26 Nov 2023 10:34:00 GMT</pubDate><category>Others</category></item><item><title>使用GitHub Actions进行持久化构建</title><link>https://www.samoy.fun/2019/12/%E4%BD%BF%E7%94%A8GitHub%20Actions%E8%BF%9B%E8%A1%8C%E6%8C%81%E4%B9%85%E5%8C%96%E6%9E%84%E5%BB%BA/</link><guid isPermaLink="true">https://www.samoy.fun/2019/12/%E4%BD%BF%E7%94%A8GitHub%20Actions%E8%BF%9B%E8%A1%8C%E6%8C%81%E4%B9%85%E5%8C%96%E6%9E%84%E5%BB%BA/</guid><description>日前Github新推出了一项功能Actions，可利用该功能进行持久化构建，该功能十分强大，我们可以利用它进行自动化测试、部署、持久化构建。 话不多说，我们来看一下具体怎么操作的吧？ 首先当你将你的项目上传到GitHub上后，会发现有一个Actions的标签，如图所示： 然后我们点击这个标签 ，会看到一些推荐的工作流 …</description><pubDate>Fri, 13 Dec 2019 07:32:00 GMT</pubDate><category>Others</category></item><item><title>解决git使用push提交到远程仓库出现403错误的问题</title><link>https://www.samoy.fun/2019/06/%E8%A7%A3%E5%86%B3git%E4%BD%BF%E7%94%A8push%E6%8F%90%E4%BA%A4%E5%88%B0%E8%BF%9C%E7%A8%8B%E4%BB%93%E5%BA%93%E5%87%BA%E7%8E%B0%20403%E9%94%99%E8%AF%AF/</link><guid isPermaLink="true">https://www.samoy.fun/2019/06/%E8%A7%A3%E5%86%B3git%E4%BD%BF%E7%94%A8push%E6%8F%90%E4%BA%A4%E5%88%B0%E8%BF%9C%E7%A8%8B%E4%BB%93%E5%BA%93%E5%87%BA%E7%8E%B0%20403%E9%94%99%E8%AF%AF/</guid><description>问题出现 由于电脑之前切换过github账号,此次git clone的项目是原有账号的项目，然后提交到远程仓库时就出现了如下错误: 解决方案 打开cmd，输入命令： ，出现存储的用户名和密码窗口 将github相关的条目删除 重新执行命令： ，提示输入账户名及密码后，成功。 参考资料 &lt;https://blog.csd…</description><pubDate>Sat, 29 Jun 2019 02:31:00 GMT</pubDate><category>Others</category></item><item><title>如何优雅的关闭VMWare虚拟机</title><link>https://www.samoy.fun/2019/05/%E5%A6%82%E4%BD%95%E4%BC%98%E9%9B%85%E7%9A%84%E5%85%B3%E9%97%ADVMWare%E8%99%9A%E6%8B%9F%E6%9C%BA/</link><guid isPermaLink="true">https://www.samoy.fun/2019/05/%E5%A6%82%E4%BD%95%E4%BC%98%E9%9B%85%E7%9A%84%E5%85%B3%E9%97%ADVMWare%E8%99%9A%E6%8B%9F%E6%9C%BA/</guid><description>VMWare（以下简称VM）虚拟机大家应该都用过，但是关闭VM后，我们会发现托盘仍然有VM的图标，对于强迫症来说很不爽，因为此时VM并没有彻底关闭，那么如何让VM彻底关闭呢。下面介绍两种方法： 第一种：通用法 1. 首先我们打开VM，然后编辑-&gt;首选项，界面如下： 然后将显示托盘图标选择为“从不”。 2. 然后我们打开…</description><pubDate>Tue, 21 May 2019 06:57:00 GMT</pubDate><category>Others</category></item><item><title>Android触摸事件传递机制</title><link>https://www.samoy.fun/2018/09/Android%E8%A7%A6%E6%91%B8%E4%BA%8B%E4%BB%B6%E4%BC%A0%E9%80%92%E6%9C%BA%E5%88%B6/</link><guid isPermaLink="true">https://www.samoy.fun/2018/09/Android%E8%A7%A6%E6%91%B8%E4%BA%8B%E4%BB%B6%E4%BC%A0%E9%80%92%E6%9C%BA%E5%88%B6/</guid><description>触摸事件的类型 触摸事件对应的MotionEvent类型,事件类型主要有如下三种: ACTIONDOWN:用户手指按下的操作,一个按下操作标志着一次触摸事件的开始. ACTIONMOVE:用户按压屏幕后,在松开之前,如果移动的距离超过一定的阈值,那么就会被判定为ACTIONMOVE操作,一般情况下,手指的轻微移动都会触…</description><pubDate>Mon, 17 Sep 2018 02:06:00 GMT</pubDate><category>Android</category></item><item><title>利用抓包工具获取今日头条的文章信息</title><link>https://www.samoy.fun/2018/09/%E5%88%A9%E7%94%A8%E6%8A%93%E5%8C%85%E5%B7%A5%E5%85%B7%E8%8E%B7%E5%8F%96%E4%BB%8A%E6%97%A5%E5%A4%B4%E6%9D%A1%E7%9A%84%E6%96%87%E7%AB%A0%E4%BF%A1%E6%81%AF/</link><guid isPermaLink="true">https://www.samoy.fun/2018/09/%E5%88%A9%E7%94%A8%E6%8A%93%E5%8C%85%E5%B7%A5%E5%85%B7%E8%8E%B7%E5%8F%96%E4%BB%8A%E6%97%A5%E5%A4%B4%E6%9D%A1%E7%9A%84%E6%96%87%E7%AB%A0%E4%BF%A1%E6%81%AF/</guid><description>安装 Windows推荐使用Fiddler，Mac推荐使用Charles。两个工具均属于收费应用，请自行百度下载地址。由于笔者使用的是Mac，接下来以Charles为例来做说明，Fiddler与其大同小异。 Charles配置 首先我们打开Charles，界面如下： 此时没有任何信息，接下来我们点击Proxy-&gt;Pro…</description><pubDate>Sat, 08 Sep 2018 02:33:00 GMT</pubDate><category>Others</category></item><item><title>Python实现微信的发送消息,定时发送,自动回复功能</title><link>https://www.samoy.fun/2018/09/Python%E5%AE%9E%E7%8E%B0%E5%BE%AE%E4%BF%A1%E7%9A%84%E5%8F%91%E9%80%81%E6%B6%88%E6%81%AF%2C%E5%AE%9A%E6%97%B6%E5%8F%91%E9%80%81%2C%E8%87%AA%E5%8A%A8%E5%9B%9E%E5%A4%8D%E5%8A%9F%E8%83%BD/</link><guid isPermaLink="true">https://www.samoy.fun/2018/09/Python%E5%AE%9E%E7%8E%B0%E5%BE%AE%E4%BF%A1%E7%9A%84%E5%8F%91%E9%80%81%E6%B6%88%E6%81%AF%2C%E5%AE%9A%E6%97%B6%E5%8F%91%E9%80%81%2C%E8%87%AA%E5%8A%A8%E5%9B%9E%E5%A4%8D%E5%8A%9F%E8%83%BD/</guid><description>代码如下:</description><pubDate>Mon, 03 Sep 2018 05:25:00 GMT</pubDate><category>Python</category></item><item><title>Python实现爬取百度地图全国小区数据</title><link>https://www.samoy.fun/2018/07/Python%E5%AE%9E%E7%8E%B0%E7%88%AC%E5%8F%96%E7%99%BE%E5%BA%A6%E5%9C%B0%E5%9B%BE%E5%85%A8%E5%9B%BD%E5%B0%8F%E5%8C%BA%E6%95%B0%E6%8D%AE/</link><guid isPermaLink="true">https://www.samoy.fun/2018/07/Python%E5%AE%9E%E7%8E%B0%E7%88%AC%E5%8F%96%E7%99%BE%E5%BA%A6%E5%9C%B0%E5%9B%BE%E5%85%A8%E5%9B%BD%E5%B0%8F%E5%8C%BA%E6%95%B0%E6%8D%AE/</guid><description>代码如下: 代码没有做异常处理,因此可能会在网络不佳的情况下报错.</description><pubDate>Mon, 02 Jul 2018 02:11:00 GMT</pubDate><category>Python</category></item><item><title>Python实现生成验证码</title><link>https://www.samoy.fun/2018/06/Python%E5%AE%9E%E7%8E%B0%E7%94%9F%E6%88%90%E9%AA%8C%E8%AF%81%E7%A0%81/</link><guid isPermaLink="true">https://www.samoy.fun/2018/06/Python%E5%AE%9E%E7%8E%B0%E7%94%9F%E6%88%90%E9%AA%8C%E8%AF%81%E7%A0%81/</guid><description>下面是用Python实现的生成验证码的代码,以便日后使用.需要注意的是: 1. 需要引入Pillow图片处理库, 2. 字体须是已安装的字体.</description><pubDate>Wed, 20 Jun 2018 07:48:02 GMT</pubDate><category>Python</category></item><item><title>一些React第三方库收藏</title><link>https://www.samoy.fun/2018/05/%E4%B8%80%E4%BA%9BReact%E7%AC%AC%E4%B8%89%E6%96%B9%E5%BA%93%E6%94%B6%E8%97%8F/</link><guid isPermaLink="true">https://www.samoy.fun/2018/05/%E4%B8%80%E4%BA%9BReact%E7%AC%AC%E4%B8%89%E6%96%B9%E5%BA%93%E6%94%B6%E8%97%8F/</guid><description>1.Ant官网收集的库 Ant官网已经收集许多react组件. 地址:&lt;https://ant.design/docs/react/recommendation-cn&gt; 2.redux redux是一个js的数据处理库,与react并无联系,但是可与react连接起来使用,所使用的库为为: Github地址:&lt;http…</description><pubDate>Thu, 31 May 2018 06:49:24 GMT</pubDate><category>Web</category></item><item><title>Android的三种动画</title><link>https://www.samoy.fun/2018/04/Android%E7%9A%84%E4%B8%89%E7%A7%8D%E5%8A%A8%E7%94%BB/</link><guid isPermaLink="true">https://www.samoy.fun/2018/04/Android%E7%9A%84%E4%B8%89%E7%A7%8D%E5%8A%A8%E7%94%BB/</guid><description>先看一下动画的效果: Android的动画分为三种,分别为帧动画、补间动画和属性动画。下面说一下各种动画的特点。 1. 帧动画 帧动画就是指将图片逐帧的播放出来,在 目录下添加animationframe.xml文件(xml实现方式,实现红、绿、蓝、的切换): 2. 补间动画 补间动画的特点是将开始帧和结束帧给出，系统…</description><pubDate>Mon, 09 Apr 2018 07:08:24 GMT</pubDate><category>Android</category></item><item><title>初始Redux</title><link>https://www.samoy.fun/2018/03/%E5%88%9D%E5%A7%8BRedux/</link><guid isPermaLink="true">https://www.samoy.fun/2018/03/%E5%88%9D%E5%A7%8BRedux/</guid><description>先来看下通过Redux实现的实例吧: 这个Demo的功能很简单，通过三个按钮实现 组件的文本变换,当点击&quot;增加&quot;按钮时，我们会新增一篇&quot;日记&quot;,内容为&quot;This is a new article.&quot;, 当点击&quot;修改&quot;时，&quot;日记&quot;会更改为&quot;This article is modified.&quot;，当点击&quot;删除&quot;按钮时，会将这…</description><pubDate>Fri, 16 Mar 2018 01:01:13 GMT</pubDate><category>Web</category></item><item><title>Redis基本命令用法</title><link>https://www.samoy.fun/2018/02/Redis%E5%9F%BA%E6%9C%AC%E5%91%BD%E4%BB%A4%E7%94%A8%E6%B3%95/</link><guid isPermaLink="true">https://www.samoy.fun/2018/02/Redis%E5%9F%BA%E6%9C%AC%E5%91%BD%E4%BB%A4%E7%94%A8%E6%B3%95/</guid><description>一、String 概述:String是redis最基本的类型，最大能存储512MB的数据,String类型是二进制安全的，即可以存储任何数据，比如数字、图片、序列化对象等。 1. 设置 设置键值 设置键值以及过期时间 设置多个键值 2. 获取 根据键获取值 根据多个键获取多个值 3. 运算 要求:值为字符串类型的数字 …</description><pubDate>Mon, 12 Feb 2018 05:06:13 GMT</pubDate><category>Others</category></item><item><title>一个Alert弹出框的工具类:AlertUtils</title><link>https://www.samoy.fun/2018/01/%E4%B8%80%E4%B8%AAAlert%E5%BC%B9%E5%87%BA%E6%A1%86%E7%9A%84%E5%B7%A5%E5%85%B7%E7%B1%BB/</link><guid isPermaLink="true">https://www.samoy.fun/2018/01/%E4%B8%80%E4%B8%AAAlert%E5%BC%B9%E5%87%BA%E6%A1%86%E7%9A%84%E5%B7%A5%E5%85%B7%E7%B1%BB/</guid><description>最近在做Android项目的时候总觉得系统提供的Alert弹出框代码过于繁琐, 因此对系统Alert的代码进行了二次封装，这样以后开发的时候再也不用写很多代码了。 代码如下: 后记:单项和多项选择以后再实现,这样的需求不是很多。</description><pubDate>Thu, 11 Jan 2018 15:34:00 GMT</pubDate><category>Android</category></item><item><title>关于Java和OC深浅复制的问题</title><link>https://www.samoy.fun/2018/01/%E5%85%B3%E4%BA%8EJava%E5%92%8COC%E6%B7%B1%E6%B5%85%E5%A4%8D%E5%88%B6%E7%9A%84%E9%97%AE%E9%A2%98/</link><guid isPermaLink="true">https://www.samoy.fun/2018/01/%E5%85%B3%E4%BA%8EJava%E5%92%8COC%E6%B7%B1%E6%B5%85%E5%A4%8D%E5%88%B6%E7%9A%84%E9%97%AE%E9%A2%98/</guid><description>昨天做项目的时候才发现Java和OC的深浅复制和Java的完全相反，Java的深复制是复制对象的地址，即两个对象有相同的内存地址（或者说这是同一个对象），而浅复制才是复制是一个新的对象，即新开辟一个新的内存地址，属性通过赋值传递。 下面是Java的一个例子: 而OC的深浅复制（OC通常称为拷贝）和Java正好相反: 浅…</description><pubDate>Fri, 05 Jan 2018 04:10:24 GMT</pubDate><category>Java</category></item><item><title>使用CocoaPods卡在了&quot;pod setup&quot;界面的解决办法</title><link>https://www.samoy.fun/2017/09/%E4%BD%BF%E7%94%A8CocoaPods%E5%8D%A1%E5%9C%A8%E4%BA%86pod%20setup%E7%95%8C%E9%9D%A2%E7%9A%84%E8%A7%A3%E5%86%B3%E5%8A%9E%E6%B3%95/</link><guid isPermaLink="true">https://www.samoy.fun/2017/09/%E4%BD%BF%E7%94%A8CocoaPods%E5%8D%A1%E5%9C%A8%E4%BA%86pod%20setup%E7%95%8C%E9%9D%A2%E7%9A%84%E8%A7%A3%E5%86%B3%E5%8A%9E%E6%B3%95/</guid><description>有时候，我们在执行 或 命令时，会在终端偶现卡在&apos;pod setup&apos;界面的情况， 其实，该情况也许并非真的卡住，下面给出两种解决方案。 方案1： 1. 在执行 命令时加上参数 即: ,可在终端详细显示安装信息，看到pod目前正在做什么(其实是在安装第三方库的索引)，确认是否是真的卡住。 2.进入终端家目录，输入 可看…</description><pubDate>Sun, 10 Sep 2017 00:35:24 GMT</pubDate><category>iOS</category></item><item><title>ReactNative开发中遇到的坑(持续更新中...)</title><link>https://www.samoy.fun/2017/08/React%20Native%E5%BC%80%E5%8F%91%E4%B8%AD%E9%81%87%E5%88%B0%E7%9A%84%E5%9D%91(%E6%8C%81%E7%BB%AD%E6%9B%B4%E6%96%B0%E4%B8%AD...)/</link><guid isPermaLink="true">https://www.samoy.fun/2017/08/React%20Native%E5%BC%80%E5%8F%91%E4%B8%AD%E9%81%87%E5%88%B0%E7%9A%84%E5%9D%91(%E6%8C%81%E7%BB%AD%E6%9B%B4%E6%96%B0%E4%B8%AD...)/</guid><description>由于近期在进行React Native开发，遇到了不少坑，在此列出来。 1、使用Android的GenyMotion模拟器时,双击&quot;R&quot;出现&quot;Could not connect to development server&quot;红屏的解决方法. 答:由于模拟器和服务器不在同一个网络下，最有可能的是模拟器没有连接WiFi，将模…</description><pubDate>Wed, 09 Aug 2017 07:04:24 GMT</pubDate><category>Web</category></item><item><title>如何解决&quot;Adb not responding&quot;的问题</title><link>https://www.samoy.fun/2016/07/%E5%A6%82%E4%BD%95%E8%A7%A3%E5%86%B3Adb%20not%20responding%E7%9A%84%E9%97%AE%E9%A2%98/</link><guid isPermaLink="true">https://www.samoy.fun/2016/07/%E5%A6%82%E4%BD%95%E8%A7%A3%E5%86%B3Adb%20not%20responding%E7%9A%84%E9%97%AE%E9%A2%98/</guid><description>&lt;p&gt;今天在写Demo的时候，发现程序包名不合适，就Rename了一下，然而却出现了题目中所提到的问题，Genymotion模拟器加载不出来，初步以为是模拟器路径不对，更改了一下路径，然而并没什么卵用。&lt;/p&gt; &lt;p&gt;重启了Android Studio后，初始化adb时，出现了&quot;adb connection error…</description><pubDate>Wed, 06 Jul 2016 03:45:24 GMT</pubDate><category>Android</category></item><item><title>Java控制台小游戏------猜拳游戏</title><link>https://www.samoy.fun/2016/06/Java%E6%8E%A7%E5%88%B6%E5%8F%B0%E5%B0%8F%E6%B8%B8%E6%88%8F------%E7%8C%9C%E6%8B%B3%E6%B8%B8%E6%88%8F/</link><guid isPermaLink="true">https://www.samoy.fun/2016/06/Java%E6%8E%A7%E5%88%B6%E5%8F%B0%E5%B0%8F%E6%B8%B8%E6%88%8F------%E7%8C%9C%E6%8B%B3%E6%B8%B8%E6%88%8F/</guid><description>先来看一下效果图: 首先我们创建一个Person类，这个类有name和score两个属性，有play这个方法，源代码如下: 接下来是主程序入口: &lt;a href=&quot;http://pan.baidu.com/s/1o8iu8tk&quot; target=&quot;blank&quot;&gt;源代码下载(提取码:7hwi)&lt;/a&gt;</description><pubDate>Thu, 23 Jun 2016 01:10:10 GMT</pubDate><category>Java</category></item><item><title>一个简单的Java命令行添加/删除联系人程序(仿C语言)</title><link>https://www.samoy.fun/2016/05/%E4%B8%80%E4%B8%AA%E7%AE%80%E5%8D%95%E7%9A%84Java%E5%91%BD%E4%BB%A4%E8%A1%8C%E6%B7%BB%E5%8A%A0(%E5%88%A0%E9%99%A4)%E8%81%94%E7%B3%BB%E4%BA%BA%E7%A8%8B%E5%BA%8F(%E4%BB%BFC%E8%AF%AD%E8%A8%80)/</link><guid isPermaLink="true">https://www.samoy.fun/2016/05/%E4%B8%80%E4%B8%AA%E7%AE%80%E5%8D%95%E7%9A%84Java%E5%91%BD%E4%BB%A4%E8%A1%8C%E6%B7%BB%E5%8A%A0(%E5%88%A0%E9%99%A4)%E8%81%94%E7%B3%BB%E4%BA%BA%E7%A8%8B%E5%BA%8F(%E4%BB%BFC%E8%AF%AD%E8%A8%80)/</guid><description>声明:Java初学者适用 演示效果: 联系人Class: 主程序入口Class: 源代码下载(提取码: 28yt)</description><pubDate>Fri, 13 May 2016 14:20:00 GMT</pubDate><category>Java</category></item><item><title>iOS一个弹出的时间选择器视图(UIDatePicker)</title><link>https://www.samoy.fun/2016/03/iOS%E4%B8%80%E4%B8%AA%E5%BC%B9%E5%87%BA%E7%9A%84%E6%97%B6%E9%97%B4%E9%80%89%E6%8B%A9%E5%99%A8(UIDatePicker)/</link><guid isPermaLink="true">https://www.samoy.fun/2016/03/iOS%E4%B8%80%E4%B8%AA%E5%BC%B9%E5%87%BA%E7%9A%84%E6%97%B6%E9%97%B4%E9%80%89%E6%8B%A9%E5%99%A8(UIDatePicker)/</guid><description>效果图: 代码: &lt;a href=&quot;https://github.com/Samoy/DatePickerDemo&quot; target=&quot;blank&quot;&gt;源代码下载&lt;/a&gt;</description><pubDate>Wed, 09 Mar 2016 00:20:13 GMT</pubDate><category>iOS</category></item></channel></rss>