<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:media="http://search.yahoo.com/mrss/" version="2.0"><channel><title>运阳的小窝</title><link>https://lyuy.top</link><atom:link href="https://lyuy.top/rss.xml" rel="self" type="application/rss+xml"/><description>人生苦短，我用python</description><generator>Halo v2.21.7</generator><language>zh-cn</language><image><url>https://lyuy.top/upload/logo.png</url><title>运阳的小窝</title><link>https://lyuy.top</link></image><lastBuildDate>Sun, 5 Apr 2026 16:08:56 GMT</lastBuildDate><item><title><![CDATA[“问三句再动笔”——一份让工程师少加班的AI设计模板]]></title><link>https://lyuy.top/archives/jaC93E0D</link><description><![CDATA[<img src="https://lyuy.top/plugins/feed/assets/telemetry.gif?title=%E2%80%9C%E9%97%AE%E4%B8%89%E5%8F%A5%E5%86%8D%E5%8A%A8%E7%AC%94%E2%80%9D%E2%80%94%E2%80%94%E4%B8%80%E4%BB%BD%E8%AE%A9%E5%B7%A5%E7%A8%8B%E5%B8%88%E5%B0%91%E5%8A%A0%E7%8F%AD%E7%9A%84AI%E8%AE%BE%E8%AE%A1%E6%A8%A1%E6%9D%BF&amp;url=/archives/jaC93E0D" width="1" height="1" alt="" style="opacity:0;">这篇文章探讨了一种通过AI辅助生成设计文档的方法，以减少返工率和缩短评审时间。作者提出在开始任何新功能设计之前，先利用AI进行三轮提问以澄清设计假设，然后再撰写设计文档。这一流程帮助团队将返工率从30%降到5%，将评审时长减半。AI提问策略包括复述用户需求并提出关键问题，逐步收窄设计方案，最终在用户确认设计假设后生成完整的设计文档。这种方法避免了传统流程中文档中堆积的“待定”内容，提高了设计文档的执行性。实现流程简单，通过创建专用文件夹和引入AI对话可轻松融入项目。文章还提供了完整模板下载，强调设计阶段应专注于设计问题而非代码实现或需求文档。这种方法提示：“问得少，返工少，下班早”，有效减少了因沟通不畅导致的加班。]]></description><guid isPermaLink="false">/archives/jaC93E0D</guid><dc:creator>运阳</dc:creator><pubDate>Mon, 22 Dec 2025 07:33:37 GMT</pubDate></item><item><title><![CDATA[当“加固”变成“炸点”：Cloudflare 11·18 事故随想]]></title><link>https://lyuy.top/archives/NH70tGsA</link><description><![CDATA[<img src="https://lyuy.top/plugins/feed/assets/telemetry.gif?title=%E5%BD%93%E2%80%9C%E5%8A%A0%E5%9B%BA%E2%80%9D%E5%8F%98%E6%88%90%E2%80%9C%E7%82%B8%E7%82%B9%E2%80%9D%EF%BC%9ACloudflare%2011%C2%B718%20%E4%BA%8B%E6%95%85%E9%9A%8F%E6%83%B3&amp;url=/archives/NH70tGsA" width="1" height="1" alt="" style="opacity:0;">这篇文章讲述了一次由错误的 SQL 语句导致的全球性宕机事件，并从中提出三点警示。首先，任何内部配置都需谨慎处理，视为用户输入；权限变更需谨慎审核，避免不必要的全链路影响。其次，对回滚和可观测性功能进行优化，使其快速有效。事件的具体过程包括数据库权限补丁上线后引发的一系列问题，表面上看是超大规模DDoS，其实是特征文件生成错误导致服务崩溃。文章指出了三个潜在问题：配置即代码问题、权限与性能变更的回归测试缺失和观测数据过于繁杂而导致误判。针对这些问题，文中提出了一系列解决方案，如平台化回滚能力、CI中的权限变更检测以及高耗观测的一键关闭功能。最后，作者总结指出，小问题连锁反应可能导致大问题，需在日常工作中提前识别并避免。]]></description><guid isPermaLink="false">/archives/NH70tGsA</guid><dc:creator>运阳</dc:creator><pubDate>Wed, 19 Nov 2025 02:10:03 GMT</pubDate></item><item><title><![CDATA[今天闲着，把吃灰的 ESP32-CAM 拉出来遛遛  ]]></title><link>https://lyuy.top/archives/skxappI2</link><description><![CDATA[<img src="https://lyuy.top/plugins/feed/assets/telemetry.gif?title=%E4%BB%8A%E5%A4%A9%E9%97%B2%E7%9D%80%EF%BC%8C%E6%8A%8A%E5%90%83%E7%81%B0%E7%9A%84%20ESP32-CAM%20%E6%8B%89%E5%87%BA%E6%9D%A5%E9%81%9B%E9%81%9B%20%20&amp;url=/archives/skxappI2" width="1" height="1" alt="" style="opacity:0;">本文指导读者如何在30分钟内通过ESP32-CAM在浏览器中实现30fps的小型监控。步骤明确，首先需下载并安装CH340驱动，以确保设备正常连接。然后，配置Arduino IDE环境，下载ESP32开发板支持包。接下来，通过修改官方提供的CameraWebServer示例代码中WiFi名称和密码，使摄像头能够连接网络。通过正确的接线和上传步骤，启用摄像头传输视频流。 一旦成功连接，用户可在浏览器中观看实时视频。若发现帧率不够流畅，可调整配置参数，如降低画质、修改帧抓取模式等，以提升帧率。文章还提醒了一些易出错的环节，如供电不足或连接不良，并提出解决方案。 最后，该项目花费低廉且实现简单，适合希望快速搭建监控系统的技术爱好者。读者可进一步扩展功能，如集成到Node-RED或Home Assistant中，或加入人脸识别功能。]]></description><guid isPermaLink="false">/archives/skxappI2</guid><dc:creator>运阳</dc:creator><pubDate>Wed, 15 Oct 2025 12:05:12 GMT</pubDate></item><item><title><![CDATA[ESP32学习笔记]]></title><link>https://lyuy.top/archives/PF9zNxeO</link><description><![CDATA[<img src="https://lyuy.top/plugins/feed/assets/telemetry.gif?title=ESP32%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0&amp;url=/archives/PF9zNxeO" width="1" height="1" alt="" style="opacity:0;">本文介绍了一系列利用Python编程实现的电子实训项目。这些项目涵盖了不同的硬件操作和编程技巧，如点亮LED灯、控制RGB灯带、显示OLED字符、进行电压测量、温湿度传感器读取、控制电机以及超声波测距等。 每个实训都详细列出了实施步骤和代码示例，包括导入模块、设置引脚和操作电平等基本操作。此外，还介绍了如何使用循环语句控制灯光闪烁，如何通过for和while循环实现持续或顺序的LED闪烁效果。 OLED显示部分介绍了字符和图形显示方法，包括显示字符的居中算法和中文显示步骤。测量电压和控制电机的部分则展示了如何实时读取并显示传感器数据，以及利用电压或距离数据控制电机或灯光的联动操作。 这些实训项目不仅为电子爱好者提供了丰富的学习材料，也为实用开发提供了具体的实施案例。每个步骤都配有相应的代码示例，使得实践过程更加直观和易于操作。]]></description><guid isPermaLink="false">/archives/PF9zNxeO</guid><dc:creator>运阳</dc:creator><pubDate>Tue, 14 Oct 2025 07:53:45 GMT</pubDate></item><item><title><![CDATA[用 6 位数字动态密码，悄悄保护你的小破站 ]]></title><link>https://lyuy.top/archives/w57EcsVO</link><description><![CDATA[<img src="https://lyuy.top/plugins/feed/assets/telemetry.gif?title=%E7%94%A8%206%20%E4%BD%8D%E6%95%B0%E5%AD%97%E5%8A%A8%E6%80%81%E5%AF%86%E7%A0%81%EF%BC%8C%E6%82%84%E6%82%84%E4%BF%9D%E6%8A%A4%E4%BD%A0%E7%9A%84%E5%B0%8F%E7%A0%B4%E7%AB%99%20&amp;url=/archives/w57EcsVO" width="1" height="1" alt="" style="opacity:0;">本文概述了 RFC 6238 定义的 TOTP（基于时间的一次性密码）的工作原理，并通过通俗易懂的方式剖析其运作机制，同时附带 Python 实现代码和基于 PyQt5 的离线管理器开发参考。TOTP 是一种安全的两步验证方式，其核心流程包括四步：1) 使用共享密钥；2) 根据当前 Unix 时间戳计算时间片；3) 使用 HMAC 哈希生成动态数据；4) 截断生成一个 6 位数字验证码。验证码每 30 秒刷新一次，客户端与服务器通过时间片同步计算，从而无需网络传输，提高安全性。此外，文章回答了一些常见问题，例如适配 SHA-256、时钟同步问题，以及如何实现离线管理器。整体内容技术性与实操性兼备，适合开发者学习或实际应用。]]></description><guid isPermaLink="false">/archives/w57EcsVO</guid><dc:creator>运阳</dc:creator><pubDate>Fri, 10 Oct 2025 06:55:24 GMT</pubDate></item><item><title><![CDATA[pygame scene更新日志]]></title><link>https://lyuy.top/archives/qFi9lk1Y</link><description><![CDATA[<img src="https://lyuy.top/plugins/feed/assets/telemetry.gif?title=pygame%20scene%E6%9B%B4%E6%96%B0%E6%97%A5%E5%BF%97&amp;url=/archives/qFi9lk1Y" width="1" height="1" alt="" style="opacity:0;">版本 1.1.0 更新于 2025年9月22日，主要新增功能包括 SceneManager 支持设置全局默认过渡效果，通过 `register_default_transition()` 方法统一管理场景切换效果，减少重复代码。此外，新版本新增了三种过渡预设：淡入淡出的 `FadeTransition`，侧滑进入的 `SlideTransition`，以及圆形展开切换的 `CircleWipeTransition`。提升了场景切换的灵活性和美观性。 改进方面，代码结构经过优化，所有过渡效果类（`FadeTransition`、`SlideTransition` 和 `CircleWipeTransition`）已移至 `transition.py` 模块，更便于项目中的复用。同时，`main.py` 演示文件已更新，展示了新功能的具体用法。这些更新显著提升了代码的易用性和可维护性。]]></description><guid isPermaLink="false">/archives/qFi9lk1Y</guid><dc:creator>运阳</dc:creator><pubDate>Mon, 22 Sep 2025 07:39:33 GMT</pubDate></item><item><title><![CDATA[Pygame通用场景管理器设计与实现]]></title><link>https://lyuy.top/archives/cF32OZTl</link><description><![CDATA[<img src="https://lyuy.top/plugins/feed/assets/telemetry.gif?title=Pygame%E9%80%9A%E7%94%A8%E5%9C%BA%E6%99%AF%E7%AE%A1%E7%90%86%E5%99%A8%E8%AE%BE%E8%AE%A1%E4%B8%8E%E5%AE%9E%E7%8E%B0&amp;url=/archives/cF32OZTl" width="1" height="1" alt="" style="opacity:0;">文章详细探讨了Pygame场景管理器的核心架构及其实现方式，旨在提高游戏开发中的模块化、可维护性和扩展性。场景管理器采用面向对象设计，通过抽象基类定义场景接口，以高内聚、低耦合方式管理游戏状态，支持清晰的生命周期管理与场景间切换。主要组件包括场景基类（负责逻辑更新、事件处理与画面渲染）、场景管理器（维护场景字典、协调切换和封装游戏主循环）以及过渡效果系统（实现视觉上的平滑场景过渡，比如淡入淡出动画）。文章还阐述了场景堆栈管理（适用于暂停菜单或对话框）与事件传递机制优化。此外，针对性能优化提出解决方案，如延迟加载场景和资源管理器构建。示例代码全面覆盖从场景定义到过渡实现，并详细描述了场景切换逻辑和主循环操作，是构建模块化游戏框架的参考典范。]]></description><guid isPermaLink="false">/archives/cF32OZTl</guid><dc:creator>运阳</dc:creator><pubDate>Tue, 16 Sep 2025 07:28:26 GMT</pubDate></item><item><title><![CDATA[从零开始：Pygame游戏开发完全指南]]></title><link>https://lyuy.top/archives/f32flWr1</link><description><![CDATA[<img src="https://lyuy.top/plugins/feed/assets/telemetry.gif?title=%E4%BB%8E%E9%9B%B6%E5%BC%80%E5%A7%8B%EF%BC%9APygame%E6%B8%B8%E6%88%8F%E5%BC%80%E5%8F%91%E5%AE%8C%E5%85%A8%E6%8C%87%E5%8D%97&amp;url=/archives/f32flWr1" width="1" height="1" alt="" style="opacity:0;">### 摘要 本文全面介绍了使用Pygame进行2D游戏开发的流程和核心概念。首先简述了Pygame作为基于SDL的跨平台游戏开发库，能方便地处理图形渲染、声音播放以及用户输入。文章详细讲解了环境搭建、窗口创建、事件处理、游戏循环等基础内容，并重点分析了精灵系统及碰撞检测机制，包括矩形、圆形和像素级碰撞及其适用场景。此外，讲解了如何设计和实现一个完整的打砖块小游戏，涵盖游戏窗口、挡板、球、砖块的精灵定义，事件处理、游戏主循环、碰撞检测、得分与生命系统等，同时提供了代码分步实现及优化建议。最后，文章探讨了Pygame的适用场景及学习资源，包括官方文档、开源项目以及进阶学习方向，如物理引擎、网络开发和设计模式等，适合初学者和独立开发者快速入门游戏开发。]]></description><guid isPermaLink="false">/archives/f32flWr1</guid><dc:creator>运阳</dc:creator><pubDate>Sun, 14 Sep 2025 03:30:49 GMT</pubDate></item><item><title><![CDATA[🎮 Pygame 游戏开发流程 ]]></title><link>https://lyuy.top/archives/8SD7X6YE</link><description><![CDATA[<img src="https://lyuy.top/plugins/feed/assets/telemetry.gif?title=%F0%9F%8E%AE%20Pygame%20%E6%B8%B8%E6%88%8F%E5%BC%80%E5%8F%91%E6%B5%81%E7%A8%8B%20&amp;url=/archives/8SD7X6YE" width="1" height="1" alt="" style="opacity:0;">本文提供了一个从零开始的游戏开发简易指南，重点聚焦于使用 Python 和 Pygame 创建游戏框架。文章首先介绍一次性准备工作，包括推荐目录结构与基础环境配置。接着提供一个可运行的最小模板代码，用于快速验证项目正确性。标准开发流程分为初始化、资源加载、主循环、状态管理以及退出，并通过清晰的清单总结核心操作与技巧。优化部分列举了闪屏、帧率不稳、高速穿模等常见问题的解决方案，并提到内存管理和打包工具。文章最后列出了可扩展模块的建议，例如地图编辑器、粒子特效、物理引擎及网络对战等，鼓励开发者按需逐步加料。核心思想是确保项目从0到1的基础运行，再优化玩法与商业价值，形成一个可迭代的开发流程。]]></description><guid isPermaLink="false">/archives/8SD7X6YE</guid><dc:creator>运阳</dc:creator><pubDate>Tue, 9 Sep 2025 03:16:04 GMT</pubDate></item><item><title><![CDATA[🚀 Pygame 游戏开发「从零到上架」全流程]]></title><link>https://lyuy.top/archives/LC3l26on</link><description><![CDATA[<img src="https://lyuy.top/plugins/feed/assets/telemetry.gif?title=%F0%9F%9A%80%20Pygame%20%E6%B8%B8%E6%88%8F%E5%BC%80%E5%8F%91%E3%80%8C%E4%BB%8E%E9%9B%B6%E5%88%B0%E4%B8%8A%E6%9E%B6%E3%80%8D%E5%85%A8%E6%B5%81%E7%A8%8B&amp;url=/archives/LC3l26on" width="1" height="1" alt="" style="opacity:0;">本文详细介绍了从游戏立项到最终发布的完整流程，适用于基于 Pygame 开发的独立游戏项目，分为10个清晰步骤： 1. **立项**：通过10分钟商业画布快速定义核心玩法、目标用户、平台、卖点及竞品，制定1人3个月的开发周期规划。 2. **设计**：整理GDD（游戏设计文档）、美术需求表、技术方案和里程碑等，提供相关Notion模板链接及范例。 3. **原型**：以灰盒开始，逐步完善内容并收集用户反馈，决定是否继续开发。 4. **编码**：按照7步迭代，每步均可运行，确保流程高效可控，同时遵循代码规范及质量标准。 5. **项目结构**：提供最终目录结构，涵盖代码模块分工清晰明确。 6. **性能优化**：列出性能优化 checklist，利用工具确保稳定帧率。 7. **打包与测试**：定位Windows平台，提供Nuitka打包方法和测试矩阵，确保兼容性。 8. **上架与运营**：涵盖Steam和itch.io平台发布流程、Demo试玩策略及社区管理措施。 9. **发布后迭代**：规划更新版本内容及时间表，包括新角色、排行榜和联机功能等。 10. **工具清单**：推荐从像素绘制到版本管理的全流程工具选择。 通过上述步骤，你将能够高效完成一款“能玩、能打包、能卖”的完整Pygame作品，同时兼顾用户体验和技术细节。]]></description><guid isPermaLink="false">/archives/LC3l26on</guid><dc:creator>运阳</dc:creator><pubDate>Tue, 9 Sep 2025 03:15:18 GMT</pubDate></item></channel></rss>