
  <rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
      <title>Ningto&#39;s Blog</title>
      <link>https://ningto.com/blog</link>
      <description>Welcome to my blog, a personal space where I share technology, life experiences, and reflections.</description>
      <language>zh-CN</language>
      <managingEditor>address@yoursite.com (ningto.com)</managingEditor>
      <webMaster>address@yoursite.com (ningto.com)</webMaster>
      <lastBuildDate>Fri, 30 Jan 2026 00:00:00 GMT</lastBuildDate>
      <atom:link href="https://ningto.com/feed.xml" rel="self" type="application/rss+xml"/>
      
  <item>
    <guid>https://ningto.com/blog/2026/fastapi-uvicorn-multiprocessing-pool-task-cancellation-issue</guid>
    <title>FastAPI/Uvicorn 异步服务中使用 multiprocessing.Pool 导致任务取消的问题</title>
    <link>https://ningto.com/blog/2026/fastapi-uvicorn-multiprocessing-pool-task-cancellation-issue</link>
    <description>深入分析在 FastAPI/Uvicorn 异步服务中使用 multiprocessing.Pool 导致服务器意外关闭的问题,解释 fork 模式与 asyncio 事件循环的冲突机制,并提供使用 ProcessPoolExecutor + spawn 模式的完整解决方案。</description>
    <pubDate>Fri, 30 Jan 2026 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>FastAPI</category><category>Uvicorn</category><category>Python</category><category>异步编程</category><category>multiprocessing</category><category>asyncio</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2026/agent-lightning-introduction-and-practical-path</guid>
    <title>Agent Lightning：用“可观测执行轨迹”驱动 Agent 的系统化优化（从上手到落地）</title>
    <link>https://ningto.com/blog/2026/agent-lightning-introduction-and-practical-path</link>
    <description>介绍 Agent Lightning 的定位与核心架构，并给出从易到难的上手路线：先采集轨迹与回放，再做 APO 提示词优化、SFT 微调、VERL 强化学习，最后把它落到真实业务的评估与持续改进闭环。</description>
    <pubDate>Thu, 29 Jan 2026 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>AI</category><category>Agent</category><category>RL</category><category>Prompt</category><category>Tracing</category><category>Observability</category><category>Training</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2026/mem0-introduction-and-quickstart</guid>
    <title>Mem0：给 AI Agent 加上一层“可用的长期记忆”（介绍与上手）</title>
    <link>https://ningto.com/blog/2026/mem0-introduction-and-quickstart</link>
    <description>从“为什么需要长期记忆”讲起，深入浅出介绍 Mem0 的核心概念与工作流，并给出可直接跑通的 Python 示例与落地建议。</description>
    <pubDate>Thu, 29 Jan 2026 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>AI</category><category>Agent</category><category>Memory</category><category>LLM</category><category>RAG</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2026/modern-llm-inference-stack-ubuntu-cuda-pytorch-vllm</guid>
    <title>从 Ubuntu 到 vLLM：现代大模型推理部署的分层架构详解</title>
    <link>https://ningto.com/blog/2026/modern-llm-inference-stack-ubuntu-cuda-pytorch-vllm</link>
    <description>从工程视角拆解 Ubuntu + CUDA + PyTorch + vLLM + Python 的完整推理栈，讲清每一层干什么、数据模型长什么样、以及一次推理请求如何在各层之间流动。</description>
    <pubDate>Tue, 27 Jan 2026 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>LLM</category><category>vLLM</category><category>vLLM Stack</category><category>PyTorch</category><category>CUDA</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2026/langchain-mcp-integration-example-building-smarter-context-aware-applications</guid>
    <title>LangChain 接入 MCP 示例：构建更智能的上下文感知应用</title>
    <link>https://ningto.com/blog/2026/langchain-mcp-integration-example-building-smarter-context-aware-applications</link>
    <description>本文详细介绍了如何在 LangChain 框架中集成 Model Context Protocol (MCP)，通过具体的代码示例展示如何构建能够动态获取和使用外部上下文的智能应用。</description>
    <pubDate>Thu, 22 Jan 2026 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>AI</category><category>LangChain</category><category>MCP</category><category>LLM</category><category>Python</category><category>Tutorial</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2026/langchain-mcp-integration-practical-guide-unlocking-a-new-paradigm-for-model-context-management</guid>
    <title>LangChain 接入 MCP 实战指南：解锁模型上下文管理新范式</title>
    <link>https://ningto.com/blog/2026/langchain-mcp-integration-practical-guide-unlocking-a-new-paradigm-for-model-context-management</link>
    <description>本文详细介绍了如何将 LangChain 框架接入 MCP（Model Context Protocol），通过代码示例和最佳实践，帮助开发者高效管理大语言模型的上下文，提升应用性能。</description>
    <pubDate>Thu, 22 Jan 2026 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>AI</category><category>LangChain</category><category>MCP</category><category>Python</category><category>Tutorial</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2026/langchain-memory-management-deep-dive-from-short-term-conversations-to-long-term-memory-architecture-philosophy</guid>
    <title>LangChain内存管理机制深度解析：从短时对话到长时记忆的架构哲学</title>
    <link>https://ningto.com/blog/2026/langchain-memory-management-deep-dive-from-short-term-conversations-to-long-term-memory-architecture-philosophy</link>
    <description>本文深入剖析LangChain框架中短时内存与长时内存的设计原理、实现机制、应用场景，并结合LangGraph的持久化能力，为构建复杂、可扩展的AI代理提供最佳实践。</description>
    <pubDate>Thu, 22 Jan 2026 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>AI</category><category>LangChain</category><category>LLM</category><category>Memory Management</category><category>LangGraph</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2026/a-postmortem-of-three-recent-issues</guid>
    <title>三次近期问题的事后分析</title>
    <link>https://ningto.com/blog/2026/a-postmortem-of-three-recent-issues</link>
    <description>详细分析三个间歇性降低 Claude 响应质量的基础设施错误,解释问题原因、检测和修复过程以及改进措施。</description>
    <pubDate>Thu, 15 Jan 2026 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>AI</category><category>Infrastructure</category><category>Postmortem</category><category>Claude</category><category>Reliability</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2026/claude-code-sandboxing</guid>
    <title>通过沙箱隔离提升 Claude Code 的安全性和自主性</title>
    <link>https://ningto.com/blog/2026/claude-code-sandboxing</link>
    <description>介绍 Claude Code 的两个新沙箱功能:沙箱化 bash 工具和云端 Claude Code,如何通过文件系统和网络隔离提升安全性并减少权限提示。</description>
    <pubDate>Thu, 15 Jan 2026 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>AI</category><category>Agent</category><category>Security</category><category>Sandboxing</category><category>Claude Code</category><category>MCP</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2026/effective-harnesses-for-long-running-agents</guid>
    <title>长时间运行智能体的有效框架</title>
    <link>https://ningto.com/blog/2026/effective-harnesses-for-long-running-agents</link>
    <description>探讨如何通过初始化智能体和编码智能体的两阶段解决方案，让 Claude Agent SDK 在多个上下文窗口中有效工作。</description>
    <pubDate>Thu, 15 Jan 2026 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>AI</category><category>Agent</category><category>Long-Running</category><category>Anthropic</category><category>Claude Agent SDK</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2026/multi-agent-research-system</guid>
    <title>我们如何构建多智能体研究系统</title>
    <link>https://ningto.com/blog/2026/multi-agent-research-system</link>
    <description>深入探讨构建 Claude Research 系统的工程挑战和经验教训，分享多智能体系统的架构设计、提示工程和评估方法。</description>
    <pubDate>Thu, 15 Jan 2026 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>AI</category><category>Agent</category><category>Multi-Agent</category><category>Anthropic</category><category>Research</category><category>Claude</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2026/building-agents-with-the-claude-agent-sdk</guid>
    <title>使用 Claude Agent SDK 构建代理</title>
    <link>https://ningto.com/blog/2026/building-agents-with-the-claude-agent-sdk</link>
    <description>介绍如何使用 Claude Agent SDK 构建自主代理，包括代理循环设计、上下文收集、执行方式和工作验证的最佳实践。</description>
    <pubDate>Wed, 14 Jan 2026 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>AI</category><category>Agent</category><category>Anthropic</category><category>SDK</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2026/building-effective-agents</guid>
    <title>构建高效的 AI Agent</title>
    <link>https://ningto.com/blog/2026/building-effective-agents</link>
    <description>Anthropic 分享了与客户合作构建 LLM Agent 的经验，介绍了从简单可组合模式到自主 Agent 的最佳实践，包括工作流模式、构建块和实际应用案例。</description>
    <pubDate>Wed, 14 Jan 2026 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>AI</category><category>Agent</category><category>Anthropic</category><category>LLM</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2026/code-execution-with-mcp</guid>
    <title>使用 MCP 进行代码执行</title>
    <link>https://ningto.com/blog/2026/code-execution-with-mcp</link>
    <description>介绍如何使用模型上下文协议(MCP)进行代码执行，提升Agent的能力</description>
    <pubDate>Wed, 14 Jan 2026 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>AI</category><category>Agent</category><category>Anthropic</category><category>MCP</category><category>Code Execution</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2026/contextual-retrieval</guid>
    <title>上下文检索：RAG 的新水平</title>
    <link>https://ningto.com/blog/2026/contextual-retrieval</link>
    <description>介绍了上下文检索（Contextual Retrieval）技术，通过在嵌入前为每个片段添加上下文信息，将检索失败率降低了 49%，结合重新排序可降低 67%。</description>
    <pubDate>Wed, 14 Jan 2026 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>AI</category><category>Agent</category><category>Anthropic</category><category>RAG</category><category>Retrieval</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2026/demystifying-evals-for-ai-agents</guid>
    <title>AI Agent 评测详解</title>
    <link>https://ningto.com/blog/2026/demystifying-evals-for-ai-agents</link>
    <description>介绍如何为AI Agent设计和实施有效的评估系统</description>
    <pubDate>Wed, 14 Jan 2026 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>AI</category><category>Agent</category><category>Anthropic</category><category>Evals</category><category>评估</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2026/effective-context-engineering-for-ai-agents</guid>
    <title>AI Agent 的有效上下文工程</title>
    <link>https://ningto.com/blog/2026/effective-context-engineering-for-ai-agents</link>
    <description>介绍了为 AI Agent 设计上下文的原则和模式，包括如何组织上下文、引导推理以及管理会话以获得最佳性能。</description>
    <pubDate>Wed, 14 Jan 2026 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>AI</category><category>Agent</category><category>Anthropic</category><category>Context Engineering</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2026/equipping-agents-for-the-real-world-with-agent-skills</guid>
    <title>使用 Agent Skills 为现实世界配备 Agent</title>
    <link>https://ningto.com/blog/2026/equipping-agents-for-the-real-world-with-agent-skills</link>
    <description>介绍了 Agent Skills 的概念，这是一种模块化的能力封装方式，通过文件夹组织指令、脚本和资源，让 Agent 能够动态发现和加载特定技能。</description>
    <pubDate>Wed, 14 Jan 2026 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>AI</category><category>Agent</category><category>Anthropic</category><category>Agent Skills</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2026/introducing-advanced-tool-use</guid>
    <title>Claude 开发者平台高级工具使用介绍</title>
    <link>https://ningto.com/blog/2026/introducing-advanced-tool-use</link>
    <description>Claude 现在可以动态发现、学习和执行工具，以在现实世界中采取行动。介绍了工具搜索工具、程序化工具调用和工具使用示例三大功能。</description>
    <pubDate>Wed, 14 Jan 2026 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>AI</category><category>Agent</category><category>Anthropic</category><category>Tool Use</category><category>MCP</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2026/the-think-tool</guid>
    <title>&quot;Think&quot;工具：让 Claude 学会停下来思考</title>
    <link>https://ningto.com/blog/2026/the-think-tool</link>
    <description>介绍了一个简单而强大的&quot;think&quot;工具，为 Claude 在复杂任务中提供结构化思考空间，显著提高了在策略遵循、一致决策和多步问题处理方面的表现。</description>
    <pubDate>Wed, 14 Jan 2026 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>AI</category><category>Agent</category><category>Anthropic</category><category>Tool Use</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2026/writing-effective-tools-for-agents</guid>
    <title>为 AI Agent 编写高效工具——使用 AI Agent</title>
    <link>https://ningto.com/blog/2026/writing-effective-tools-for-agents</link>
    <description>介绍了如何编写和优化 AI Agent 使用的工具，包括原型构建、评估运行、与 Agent 协作改进工具，以及编写高质量工具的核心原则。</description>
    <pubDate>Wed, 14 Jan 2026 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>AI</category><category>Agent</category><category>Anthropic</category><category>Tool Use</category><category>MCP</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/llm-guide</guid>
    <title>大语言模型学习指南</title>
    <link>https://ningto.com/blog/llm-guide</link>
    <description>本文提供了大语言模型（LLM）学习的全面指南，涵盖官方资源、论坛、博客、论文、开发工具、视频博主和模型下载等多个方面。重点介绍了OpenAI、Anthropic、Mistral等前沿公司，以及Reddit、Hugging Face等社区资源。新增Claude Code、MCP协议等最新开发工具，推荐多个AI教育频道，帮助读者获取2026年最新的技术和实践经验。</description>
    <pubDate>Mon, 12 Jan 2026 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>LLM</category><category>ChatGPT</category><category>RAG</category><category>Claude</category><category>AI开发</category><category>favorites</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2026/claude-code-best-practices</guid>
    <title>Claude Code 最佳实践</title>
    <link>https://ningto.com/blog/2026/claude-code-best-practices</link>
    <description>本文介绍了在各种代码库、语言和环境中使用 Claude Code 的最佳实践、技巧和工作流程，帮助开发者更有效地使用这款强大的 AI 编程助手。</description>
    <pubDate>Mon, 12 Jan 2026 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Claude</category><category>AI编程</category><category>开发工具</category><category>最佳实践</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2025/installing-zsh-on-ubuntu-usage-guide-2025-09-30</guid>
    <title>Ubuntu下安装Zsh及常用用法指南</title>
    <link>https://ningto.com/blog/2025/installing-zsh-on-ubuntu-usage-guide-2025-09-30</link>
    <description>本文介绍了在Ubuntu系统中通过临时或永久更换阿里源的方式安装Zsh，并分享了Zsh的常用配置与技巧</description>
    <pubDate>Tue, 30 Sep 2025 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Linux</category><category>Tools</category><category>Tips</category><category>Shell</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2025/docker-docker-compose-deployment-and-troubleshooting-2025-09-11</guid>
    <title>Docker &amp; Docker Compose部署与排查常用命令总结</title>
    <link>https://ningto.com/blog/2025/docker-docker-compose-deployment-and-troubleshooting-2025-09-11</link>
    <description>本文总结了应用容器化部署过程中Docker与Docker Compose的核心命令，覆盖构建、启动、日志查看、状态检查等部署全流程，以及部署失败时的排查工具与常见场景解决命令，帮助开发者快速定位问题并解决部署故障。</description>
    <pubDate>Thu, 11 Sep 2025 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Docker</category><category>Tools</category><category>教程</category><category>部署</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2025/langGraph-best-practices-strategies-for-reliable-stateful-ai-agents-2025-09-10</guid>
    <title>LangGraph最佳实践：构建可靠有状态AI代理的关键策略</title>
    <link>https://ningto.com/blog/2025/langGraph-best-practices-strategies-for-reliable-stateful-ai-agents-2025-09-10</link>
    <description>本文总结了LangGraph构建有状态AI代理的核心最佳实践，包括设计清晰的状态结构、强制使用检查点、利用子图模块化、合理引入人机协作及用LangSmith调试等，结合实战示例说明如何应用这些策略，帮助开发者构建可靠、可扩展的AI代理。</description>
    <pubDate>Wed, 10 Sep 2025 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>AI</category><category>大模型</category><category>LLM</category><category>Tools</category><category>教程</category><category>LangGraph</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2025/langGraph-guide-building-long-running-stateful-ai-agents-2025-09-10</guid>
    <title>LangGraph入门指南：构建长期运行的有状态AI代理</title>
    <link>https://ningto.com/blog/2025/langGraph-guide-building-long-running-stateful-ai-agents-2025-09-10</link>
    <description>LangGraph是LangChain推出的低级别 orchestration框架，专注于构建长期运行、有状态的AI代理。本文介绍了其核心优势（持久化执行、人机协作、全面内存管理等）、快速入门例子（构建天气查询代理）、核心概念（图、状态、检查点）及生态整合，帮助开发者快速上手LangGraph。</description>
    <pubDate>Wed, 10 Sep 2025 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>AI</category><category>大模型</category><category>LLM</category><category>Tools</category><category>教程</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2025/postgresql-index-locking-issue-analysis-2025-09-08</guid>
    <title>PostgreSQL创建索引锁表问题深度解析原因最佳实践与生产环境解决方案</title>
    <link>https://ningto.com/blog/2025/postgresql-index-locking-issue-analysis-2025-09-08</link>
    <description>本文深入分析了PostgreSQL创建索引锁表的原因，结合大数据量场景给出最佳实践，包括并发创建、分批次操作、低峰期执行等，并提供生产环境中的解决步骤，帮助用户避免锁表对业务的影响。</description>
    <pubDate>Mon, 08 Sep 2025 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Database</category><category>Tips</category><category>Others</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2025/python-efficiency-tips-2025-09-08</guid>
    <title>Python提高效率的小技巧</title>
    <link>https://ningto.com/blog/2025/python-efficiency-tips-2025-09-08</link>
    <description>本文介绍了10条以上Python提高效率的小技巧，涵盖使用生成器、列表推导式、内置函数等多个方面，帮助开发者更高效地编写Python代码。</description>
    <pubDate>Mon, 08 Sep 2025 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Python</category><category>Tips</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2025/lock-free-concurrency-control-in-python-coroutines</guid>
    <title>无锁并发控制：Python中优雅解决协程竞态条件的实践</title>
    <link>https://ningto.com/blog/2025/lock-free-concurrency-control-in-python-coroutines</link>
    <description>在高并发的异步编程中，如何在不使用锁的情况下保证数据一致性？本文将深入探讨一种基于不可变更新策略的无锁并发控制方案，并通过实际项目案例展示其应用。</description>
    <pubDate>Wed, 25 Jun 2025 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Python</category><category>异步编程</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2025/wsl2-docker-tutorial-for-beginners</guid>
    <title>WSL2 完全入门指南：从安装到 Docker 部署</title>
    <link>https://ningto.com/blog/2025/wsl2-docker-tutorial-for-beginners</link>
    <description>一份针对小白用户的 WSL2 完整教程，从基础概念到实际使用，包括 Docker 的安装和部署实践。</description>
    <pubDate>Mon, 02 Jun 2025 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>WSL2</category><category>Docker</category><category>Windows</category><category>Linux</category><category>教程</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2025/gpt4o-paradox-of-compliance-and-agency</guid>
    <title>GPT-4o：顺从性与主体性的悖论</title>
    <link>https://ningto.com/blog/2025/gpt4o-paradox-of-compliance-and-agency</link>
    <description>深入剖析GPT-4o的顺从性特征及其引发的&quot;人格涌现&quot;现象，探讨AI系统中顺从与主体性之间的复杂关系</description>
    <pubDate>Mon, 12 May 2025 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>人工智能</category><category>大语言模型</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2025/python-yield-keyword-explained</guid>
    <title>Python中yield关键字深度解析</title>
    <link>https://ningto.com/blog/2025/python-yield-keyword-explained</link>
    <description>详细解析Python中yield关键字的工作原理、生成器的概念及其在实际开发中的应用，帮助开发者理解这一强大但常被误解的特性。</description>
    <pubDate>Sun, 11 May 2025 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Python</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2025/seo-best-practices</guid>
    <title>提升博客SEO的最佳实践</title>
    <link>https://ningto.com/blog/2025/seo-best-practices</link>
    <description>全面介绍如何优化你的博客内容，提高搜索引擎排名，吸引更多目标读者。</description>
    <pubDate>Mon, 05 May 2025 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>SEO</category><category>博客</category><category>营销</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2025/cursor-prompt-leak</guid>
    <title>Cursor Prompt Leak</title>
    <link>https://ningto.com/blog/2025/cursor-prompt-leak</link>
    <description>通过分析AI助手的提示词系统，总结可以应用到实际工作中的方法论和最佳实践，包括任务分解、沟通规范、代码规范等多个方面。</description>
    <pubDate>Sat, 26 Apr 2025 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>AI</category><category>Cursor</category><category>Prompt</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2025/cursor-usage-sharing</guid>
    <title>Cursor使用分享</title>
    <link>https://ningto.com/blog/2025/cursor-usage-sharing</link>
    <description>本文详细介绍了智能IDE Cursor的主要特性、使用场景、对话模式、MCP能力及其在开发流程中的应用体验。</description>
    <pubDate>Sat, 26 Apr 2025 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Cursor</category><category>AI编程</category><category>IDE</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2025/solve-vercel-deployment-github-auth-issues</guid>
    <title>Vercel部署时GitHub授权配置问题解决</title>
    <link>https://ningto.com/blog/2025/solve-vercel-deployment-github-auth-issues</link>
    <description>本文解决在Vercel部署环境下GitHub OAuth授权重定向URL使用localhost的问题，确保授权流程在生产环境正常工作。</description>
    <pubDate>Thu, 17 Apr 2025 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>NextJS</category><category>Vercel</category><category>Supabase</category><category>GitHub</category><category>认证</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2025/user-authentication-with-supabase-and-github-oauth</guid>
    <title>使用 Supabase 和 GitHub 授权实现用户认证</title>
    <link>https://ningto.com/blog/2025/user-authentication-with-supabase-and-github-oauth</link>
    <description>本文详细介绍如何在 Next.js 应用中使用 Supabase 和 GitHub OAuth 实现用户认证功能，包括完整的配置流程和代码实现。</description>
    <pubDate>Thu, 17 Apr 2025 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>NextJS</category><category>Supabase</category><category>React</category><category>GitHub</category><category>认证</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2025/Cursor-At-Usage-Guide</guid>
    <title>Cursor 编辑器 @ 符号功能详解与用法指南</title>
    <link>https://ningto.com/blog/2025/Cursor-At-Usage-Guide</link>
    <description>本文系统梳理了 Cursor 编辑器中 @ 符号相关的所有功能、用法与实现细节，涵盖 @Files、@Folders、@Code、@Docs、@Git、@Codebase、@Web 等，配合丰富示例，帮助开发者高效利用上下文增强 AI 编程体验。</description>
    <pubDate>Wed, 16 Apr 2025 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Tool</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2025/deep-dive-into-gpt-4-1-release</guid>
    <title>OpenAI GPT-4.1发布深度解读</title>
    <link>https://ningto.com/blog/2025/deep-dive-into-gpt-4-1-release</link>
    <description>本文系统梳理了OpenAI最新发布的GPT-4.1系列模型的核心亮点、技术突破与行业意义，涵盖其上下文窗口、编码能力、多模态处理、指令遵循等方面的重大升级。</description>
    <pubDate>Wed, 16 Apr 2025 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>AI</category><category>OpenAI</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2025/mcp-implementation-principles</guid>
    <title>大模型MCP协议实现原理与协议格式详解</title>
    <link>https://ningto.com/blog/2025/mcp-implementation-principles</link>
    <description>本文面向AI/大模型开发者，系统梳理MCP协议的设计思想、分层架构、消息格式、典型能力、安全机制与开发实践，帮助读者深入理解和落地实现MCP协议。</description>
    <pubDate>Wed, 16 Apr 2025 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>AI</category><category>MCP</category><category>协议</category><category>大模型</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2025/deepseek-agent-mcp-practice</guid>
    <title>DeepSeek Agent MCP实践</title>
    <link>https://ningto.com/blog/2025/deepseek-agent-mcp-practice</link>
    <description>本文介绍了如何使用DeepSeek AI模型和MCP框架构建一个多功能代理系统，包括天气查询、Shell命令执行和时间信息获取等功能的实践经验。</description>
    <pubDate>Mon, 07 Apr 2025 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>AI</category><category>LLM</category><category>MCP</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2025/implementing-web-search-and-state-management-with-responses-api</guid>
    <title>使用Responses API实现Web搜索和状态管理</title>
    <link>https://ningto.com/blog/2025/implementing-web-search-and-state-management-with-responses-api</link>
    <description>Responses API是一个新的API，专注于在使用OpenAI API时提供更大的简洁性和表达能力。它为多工具、多轮对话和多种模态而设计。</description>
    <pubDate>Sun, 06 Apr 2025 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>OpenAI</category><category>API</category><category>Responses API</category><category>人工智能</category><category>Web搜索</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2025/use-cases-for-fine-tuning-small-language-models</guid>
    <title>小型语言模型微调的适用场景</title>
    <link>https://ningto.com/blog/2025/use-cases-for-fine-tuning-small-language-models</link>
    <description>Andrew Ng分享了他对何时应该以及何时不应该使用微调技术的见解，基于他在多家公司的观察。</description>
    <pubDate>Wed, 02 Apr 2025 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>AI</category><category>LLM</category><category>微调</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2025/whats-new-in-deepseek-v3-0324</guid>
    <title>DeepSeek-V3-0324 发布了啥</title>
    <link>https://ningto.com/blog/2025/whats-new-in-deepseek-v3-0324</link>
    <description>DeepSeek在2025年3月24日发布了V3-0324版本，这次更新带来了显著的性能提升。新版本在推理能力、编程能力和中文语言处理方面都有重大突破，特别是在MMLU-Pro、GPQA等基准测试中取得了优异成绩。该模型采用MIT开源许可，包含约685亿参数，并支持高达128K的上下文长度，在AI领域树立了新的标杆。</description>
    <pubDate>Thu, 27 Mar 2025 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>AI</category><category>LLM</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2025/ai-oriented-development-experience-summary</guid>
    <title>面向AI开发经验总结</title>
    <link>https://ningto.com/blog/2025/ai-oriented-development-experience-summary</link>
    <description>总结在AI驱动开发过程中的经验和最佳实践，包括如何更好地利用AI助手进行开发。</description>
    <pubDate>Tue, 25 Mar 2025 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>AI</category><category>LLM</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2025/mastering-prompt-engineering-and-functional-testing</guid>
    <title>掌握提示工程与功能测试：确保可靠的LLM输出</title>
    <link>https://ningto.com/blog/2025/mastering-prompt-engineering-and-functional-testing</link>
    <description>如何通过包含输入/输出数据集的功能测试，以系统化方法评估提示，使复杂人工智能任务的提示工程更加可靠。</description>
    <pubDate>Tue, 25 Mar 2025 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>LLM</category><category>AI</category><category>Prompt</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2025/llm-follow</guid>
    <title>LLM前沿动态追踪指南</title>
    <link>https://ningto.com/blog/2025/llm-follow</link>
    <description>本文提供了跟踪大语言模型(LLM)最新发展和趋势的全面资源导航，包括研究论文、技术博客、行业动态、社区讨论和开发工具等。帮助读者在快速发展的AI时代保持信息更新，紧跟前沿技术潮流，不错过LLM领域的关键进展。</description>
    <pubDate>Mon, 24 Mar 2025 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>LLM</category><category>AI</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2025/cursor-tutorial-for-beginners</guid>
    <title>Cursor新手教程：最佳实践指南</title>
    <link>https://ningto.com/blog/2025/cursor-tutorial-for-beginners</link>
    <description>这份指南提供了使用AI代码编辑器Cursor的实用技巧，帮助你更高效地构建应用程序，无论你是初学者还是有经验的开发者。</description>
    <pubDate>Sun, 23 Mar 2025 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>AI</category><category>LLM</category><category>Tools</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2025/how-to-use-ai-coding-tools-effectively</guid>
    <title>我们应该怎样使用AI编程工具</title>
    <link>https://ningto.com/blog/2025/how-to-use-ai-coding-tools-effectively</link>
    <description>AI工具不仅改变了工程师的工作方式，还使更多人能够构建应用和网站。本文深入探讨了三类主要AI编程工具：通用AI聊天机器人、AI集成IDE助手和基于Web的应用生成器，分析它们的优缺点及实际应用案例，展示它们如何推动开发者生产力的新浪潮。</description>
    <pubDate>Sun, 23 Mar 2025 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>AI</category><category>LLM</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2025/asynchronous-programming-for-python-performance</guid>
    <title>Python性能飙升的异步编程方法</title>
    <link>https://ningto.com/blog/2025/asynchronous-programming-for-python-performance</link>
    <description>本文深入探讨Python异步编程的原理和方法，展示如何通过asyncio库处理I/O密集型任务，显著提升应用性能，包含实用案例和最佳实践。</description>
    <pubDate>Wed, 19 Mar 2025 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Python</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2025/practical-guide-to-prompt-engineering</guid>
    <title>提示工程终极指南：从入门到精通</title>
    <link>https://ningto.com/blog/2025/practical-guide-to-prompt-engineering</link>
    <description>本文提供全面的提示工程指南，从基础概念到高级策略，帮助读者掌握与AI大模型有效沟通的技巧，提高对话效率和结果质量。</description>
    <pubDate>Wed, 19 Mar 2025 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>AI</category><category>LLM</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2025/proxy-settings-for-development</guid>
    <title>软件开发中经常使用的代理或源设置方法</title>
    <link>https://ningto.com/blog/2025/proxy-settings-for-development</link>
    <description>本文全面介绍软件开发中常用的各种代理和源设置方法，涵盖HTTP、Git、pip、npm、apt、Go和Docker等平台，帮助开发者在受限网络环境中高效工作。</description>
    <pubDate>Wed, 19 Mar 2025 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>tools</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2025/python-package-management-tools-comparison</guid>
    <title>Python 包管理工具对比</title>
    <link>https://ningto.com/blog/2025/python-package-management-tools-comparison</link>
    <description>本文对Python生态中的各种包管理工具如pip、pipenv、conda、poetry、pdm、pip-tools、pyenv和uv进行了全面对比，帮助开发者选择最适合其项目需求的工具。</description>
    <pubDate>Wed, 19 Mar 2025 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Python</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2025/rag-technology-implementation-principles</guid>
    <title>RAG技术实现原理</title>
    <link>https://ningto.com/blog/2025/rag-technology-implementation-principles</link>
    <description>本文详细解析检索增强生成(RAG)技术的工作原理、架构组成和应用场景，介绍如何结合信息检索与生成模型提升大语言模型在知识密集型任务中的表现。</description>
    <pubDate>Wed, 19 Mar 2025 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>LLM</category><category>RAG</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2025/python-asyncio-usage-guide</guid>
    <title>Python asyncio 入门到精通</title>
    <link>https://ningto.com/blog/2025/python-asyncio-usage-guide</link>
    <description>本文全面介绍Python asyncio库的基本概念、使用方法及最佳实践，从入门到精通，帮助开发者充分利用异步编程提升I/O密集型应用的性能。</description>
    <pubDate>Tue, 18 Mar 2025 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Python</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2025/what-llms-dont-know-they-dont-know</guid>
    <title>大型语言模型不知道自己不知道——这是个问题</title>
    <link>https://ningto.com/blog/2025/what-llms-dont-know-they-dont-know</link>
    <description>本文探讨了大型语言模型(LLMs)的一个关键缺陷：缺乏对自身能力的认知。这使得它们在执行自己并不理解的任务时过于自信，造成比幻觉问题更严重的实用性困境。</description>
    <pubDate>Fri, 14 Mar 2025 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>LLM</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2025/20250218203500</guid>
    <title>向小白解释监督学习(SFT)和强化(RL)学习</title>
    <link>https://ningto.com/blog/2025/20250218203500</link>
    <description>用新手快递员来举例，如何向小白解释监督学习和强化学习。</description>
    <pubDate>Tue, 18 Feb 2025 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>LLM</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2025/20250206174700</guid>
    <title>使用 natapp 进行内网穿透调试</title>
    <link>https://ningto.com/blog/2025/20250206174700</link>
    <description>本文介绍如何使用 Python 结合内网穿透工具 natapp 进行本地调试，解决 XXL-Job 调度中心无法直接访问本地开发机器的问题。</description>
    <pubDate>Thu, 06 Feb 2025 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Python</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2024/20240810221338</guid>
    <title>阿里云OSS链接去掉签名信息</title>
    <link>https://ningto.com/blog/2024/20240810221338</link>
    <description>本文介绍了如何去掉阿里云OSS链接中的签名信息，通过将Object设置为公共读权限（`oss2.OBJECT_ACL_PUBLIC_READ`），使链接公开且无时间限制。此操作虽简化了URL生成，但可能增加访问量和成本，需谨慎考虑。文章提供了上传字节流并设置权限的代码示例，以及生成公共访问URL的方法。</description>
    <pubDate>Sat, 07 Dec 2024 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Web</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2024/20240810221344</guid>
    <title>shell脚本实现批量切换git分支</title>
    <link>https://ningto.com/blog/2024/20240810221344</link>
    <description>本文介绍了一 shell 脚本，用于批量切换 Git 项目及其子模块的分支，简化多模块项目分支管理，提高开发效率。</description>
    <pubDate>Sat, 07 Dec 2024 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Shell</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2024/20240810221343</guid>
    <title>pytest中fixture用法</title>
    <link>https://ningto.com/blog/2024/20240810221343</link>
    <description>pytest 中的 fixture 是一种强大的功能，允许在测试执行前设置状态或资源，并在结束后清理。支持不同作用域（function、class、module、session），并可通过 autouse 自动应用。</description>
    <pubDate>Mon, 14 Oct 2024 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Python</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2024/20240810221340</guid>
    <title>推荐一个C++线程池实现</title>
    <link>https://ningto.com/blog/2024/20240810221340</link>
    <description>本文推荐一个简单易用的 C++11 线程池实现，支持任务排队、线程管理及等待任务完成等功能。示例代码展示了如何创建线程池并提交任务。</description>
    <pubDate>Tue, 08 Oct 2024 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>cpp</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2024/20240810221341</guid>
    <title>邮件接入方案</title>
    <link>https://ningto.com/blog/2024/20240810221341</link>
    <description>本文介绍了邮件系统的常见协议（SMTP、POP3、IMAP、MIME、S/MIME）及其适用场景，并推荐了 Python 中常用的邮件处理库，帮助开发者选择合适的工具进行邮件开发。</description>
    <pubDate>Tue, 08 Oct 2024 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Design</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2024/20240810221339</guid>
    <title>边缘函数简介</title>
    <link>https://ningto.com/blog/2024/20240810221339</link>
    <description>本文介绍了边缘函数（Edge Function）的概念及其在网络边缘执行计算逻辑的作用，包括降低延迟、提高性能、内容个性化、增强安全性和数据处理等。边缘函数采用分布式架构和无服务器计算模式，支持事件驱动和快速启动。文章还展示了其在动态内容生成、A/B 测试、内容缓存、API 网关和安全性增强等场景中的具体应用示例。</description>
    <pubDate>Sun, 06 Oct 2024 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Web</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2024/20240810221342</guid>
    <title>PostgreSQL全文检索</title>
    <link>https://ningto.com/blog/2024/20240810221342</link>
    <description>本文介绍了在 PostgreSQL 中启用 pg_trgm 和 zhparser 扩展以实现高效的中文全文检索，包括安装步骤、分词示例及使用 GIN 索引优化查询性能。</description>
    <pubDate>Fri, 27 Sep 2024 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Database</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2024/20240810221345</guid>
    <title>U盘做系统盘后恢复</title>
    <link>https://ningto.com/blog/2024/20240810221345</link>
    <description>本文介绍如何使用 Windows 系统自带的磁盘管理工具恢复被用作系统盘的 U 盘到原始状态，通过删除已分配卷并重新创建简单卷，轻松恢复 U 盘的正常使用，无需额外工具。</description>
    <pubDate>Fri, 13 Sep 2024 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Windows</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2024/20240810221337</guid>
    <title>debian使用记录</title>
    <link>https://ningto.com/blog/2024/20240810221337</link>
    <description>本文记录了在 Debian 系统中重置 XFCE 面板为默认设置及关闭系统提示音的方法。通过删除配置文件和重启面板，轻松恢复 XFCE 面板，默认设置，并介绍如何永久禁用系统蜂鸣声。</description>
    <pubDate>Sat, 10 Aug 2024 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Linux</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2024/2024-05-27-langchain-接入-mcp-实战指南解锁模型上下文管理新范式</guid>
    <title>LangChain 接入 MCP 实战指南：解锁模型上下文管理新范式</title>
    <link>https://ningto.com/blog/2024/2024-05-27-langchain-接入-mcp-实战指南解锁模型上下文管理新范式</link>
    <description>本文详细介绍了如何将 LangChain 与 MCP (Model Context Protocol) 集成，通过实际代码示例展示如何高效管理大语言模型的上下文，提升应用性能与可靠性。</description>
    <pubDate>Mon, 27 May 2024 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>LangChain</category><category>MCP</category><category>AI</category><category>LLM</category><category>Python</category><category>Tutorial</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2024/2024-05-22-langchain-接入-mcp-完整指南解锁模型上下文管理新范式</guid>
    <title>LangChain 接入 MCP 完整指南：解锁模型上下文管理新范式</title>
    <link>https://ningto.com/blog/2024/2024-05-22-langchain-接入-mcp-完整指南解锁模型上下文管理新范式</link>
    <description>本文详细介绍了如何在 LangChain 框架中接入 Model Context Protocol (MCP)，通过实际代码示例展示如何高效管理大语言模型的上下文，提升应用性能与可靠性。</description>
    <pubDate>Wed, 22 May 2024 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>AI</category><category>LangChain</category><category>MCP</category><category>Python</category><category>Tutorial</category><category>LLM</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2024/2024-05-22-langchain-接入-mcp-示例解锁模型上下文新能力</guid>
    <title>LangChain 接入 MCP 示例：解锁模型上下文新能力</title>
    <link>https://ningto.com/blog/2024/2024-05-22-langchain-接入-mcp-示例解锁模型上下文新能力</link>
    <description>本文详细介绍了如何将 LangChain 与 MCP（Model Context Protocol）集成，通过实际代码示例展示如何利用 MCP 协议为 LLM 应用注入动态、结构化的上下文信息。</description>
    <pubDate>Wed, 22 May 2024 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>LangChain</category><category>AI</category><category>LLM</category><category>MCP</category><category>Tutorial</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2024/20240404154338</guid>
    <title>Qt6中不能使用搜狗输入法</title>
    <link>https://ningto.com/blog/2024/20240404154338</link>
    <description>本文解决了在 Ubuntu 上使用 Qt6 和 PySide6 时无法使用搜狗输入法的问题，通过拷贝并设置 libfcitxplatforminputcontextplugin-qt6.so 文件为可执行状态，修复了 QtCreator 和 PySide6 程序中的输入法问题。</description>
    <pubDate>Thu, 04 Apr 2024 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Qt</category><category>Linux</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2024/20240226220806</guid>
    <title>100行代码复现Langchain</title>
    <link>https://ningto.com/blog/2024/20240226220806</link>
    <description>本文通过约100行代码复现了LangChain的核心功能，展示了如何利用LLM（如GPT）和工具（如搜索引擎、计算器）构建智能对话界面。作者详细介绍了从问题解析、工具调用到结果反馈的实现过程，并探讨了其背后的提示设计与推理机制。尽管简单，该实现已能处理多轮对话和复杂查询，但也揭示了当前技术的局限性。</description>
    <pubDate>Mon, 26 Feb 2024 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>LLM</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2024/20240224180217</guid>
    <title>人工智能视频收藏</title>
    <link>https://ningto.com/blog/2024/20240224180217</link>
    <description>本文整理了多个人工智能入门和 ChatGPT 相关的优质视频资源，涵盖从基础概念到深入原理的讲解，适合不同层次的学习者，帮助快速理解人工智能和大模型技术。</description>
    <pubDate>Sat, 24 Feb 2024 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>LLM</category><category>favorites</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2024/20240223170153</guid>
    <title>Navicat for PostgreSQL ubuntu 无限续期</title>
    <link>https://ningto.com/blog/2024/20240223170153</link>
    <description>本文介绍了在 Ubuntu 上延长 Navicat 16 for PostgreSQL 免费试用期的方法，通过删除本地配置文件实现续期，并提供两种保存连接信息的方式：导出导入和使用 Navicat Cloud。</description>
    <pubDate>Fri, 23 Feb 2024 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Database</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2024/20240220092745</guid>
    <title>AI 产品收藏</title>
    <link>https://ningto.com/blog/2024/20240220092745</link>
    <description>精选当前值得关注的AI工具与产品，包括搜索、对话、图像生成和内容创作等多种实用AI服务。</description>
    <pubDate>Tue, 20 Feb 2024 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>AI</category><category>favorites</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2024/20240216015930</guid>
    <title>LangChain和LlamaIndex之间有什么区别？</title>
    <link>https://ningto.com/blog/2024/20240216015930</link>
    <description>本文比较了LangChain和LlamaIndex两个框架在构建LLM应用程序时的表现，通过四个任务：连接本地LLM、构建RAG系统、结合两者及转换为代理人，帮助读者选择适合的框架。</description>
    <pubDate>Fri, 16 Feb 2024 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>LLM</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2024/20240216020939</guid>
    <title>为什么RAG很重要</title>
    <link>https://ningto.com/blog/2024/20240216020939</link>
    <description>本文探讨了检索增强生成（RAG）在大型语言模型（LLM）中的重要性，解释了其如何降低成本、保持数据更新和提高透明度，并介绍了ReAct范式使LLM成为代理人的机制，推动人工智能技术的民主化。</description>
    <pubDate>Fri, 16 Feb 2024 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>LLM</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2024/20240216230643</guid>
    <title>让LLM性能飙升的Prompt黄金准则</title>
    <link>https://ningto.com/blog/2024/20240216230643</link>
    <description>本文介绍了穆罕默德・本・扎耶德人工智能大学 VILA Lab 的一项研究，提出了26条具体的提示工程准则，旨在提升大语言模型（LLM）的性能，无需额外训练即可提高50%以上的效果。这些准则涵盖了回答内容控制、任务分解、用户交互等多个方面，帮助用户更有效地与大模型互动并获得高质量的回答。研究引起了广泛关注，并提供了详细的指南和示例。</description>
    <pubDate>Fri, 16 Feb 2024 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>LLM</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2024/20240215001441</guid>
    <title>简单易懂的Prompt 高级技巧： Few-Shots 、 COT 、SC、TOT 、Step-Back</title>
    <link>https://ningto.com/blog/2024/20240215001441</link>
    <description>本文介绍了几种高级的Prompt编写技巧，包括CRISPE框架、Zero-Shot、Few-Shots、COT（思维链）、SC（自我一致性）、TOT（树状推理）和Step-Back。通过一个英文翻译成中文的任务示例，展示了不同Prompt模式对大语言模型输出结果的影响，并总结了每种模式的效果。文章还解释了Google在Gemini大模型评测中使用不同Prompt模式的原因，指出其在不同指标上采用不同的提示策略以优化表现。</description>
    <pubDate>Thu, 15 Feb 2024 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>LLM</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2024/20240215130343</guid>
    <title>解决微信公众号文章中的图片不能显示的问题</title>
    <link>https://ningto.com/blog/2024/20240215130343</link>
    <description>本文介绍了微信公众号文章中图片无法正常显示的原因及解决方法。原因是微信图片服务器通过检查HTTP请求头中的Referer字段来防止其他网站盗用图片资源（防盗链）。当Referer不是微信域名时，服务器会返回提示图片。解决方法是在HTML头部添加`&lt;meta name=&quot;referrer&quot; content=&quot;never&quot;&gt;`，但这可能影响数据分析、SEO和某些网站功能，需权衡隐私与这些潜在问题。</description>
    <pubDate>Thu, 15 Feb 2024 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Web</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2024/20240215170649</guid>
    <title>RAG的7种常见问题及解决方案</title>
    <link>https://ningto.com/blog/2024/20240215170649</link>
    <description>本文总结了RAG系统的7种常见问题及解决方案，涵盖内容幻觉、答案遗漏、整合限制等，并提供了优化策略，如元数据过滤、模型微调和知识库优化，提升系统性能。</description>
    <pubDate>Thu, 15 Feb 2024 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>LLM</category><category>RAG</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2024/20240120101101</guid>
    <title>ubuntu edge起不来解决方法</title>
    <link>https://ningto.com/blog/2024/20240120101101</link>
    <description>本文记录了解决 Ubuntu 系统上 Microsoft Edge 浏览器启动失败的问题。通过删除配置目录 `~/.config/microsoft-edge` 下的 `Singleton*` 文件，成功解除文件锁定，使 Edge 重新正常启动。</description>
    <pubDate>Sat, 20 Jan 2024 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Linux</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2023/20231112170011</guid>
    <title>使用Python和Redis实现多台电脑剪切板内容同步</title>
    <link>https://ningto.com/blog/2023/20231112170011</link>
    <description>本文介绍了如何使用 Python 和 Redis 实现多台电脑之间的剪切板内容同步。通过创建 `ClipboardSync` 类，程序能够监听本地剪切板的变化，并将复制的内容发送到 Redis 服务器。其他运行相同程序的电脑可以从 Redis 接收并粘贴这些内容。项目依赖于 `pyperclip` 和 `redis-py` 库，利用多线程和 `asyncio` 事件循环确保实时同步。此工具简化了跨设备分享文本和链接的过程，提升了工作效率。</description>
    <pubDate>Sun, 12 Nov 2023 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Python</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2023/20230514215129</guid>
    <title>获取windows桌面所有可见窗口信息</title>
    <link>https://ningto.com/blog/2023/20230514215129</link>
    <description>本文介绍了如何获取 Windows 桌面上所有可见窗口的信息，包括窗口句柄、标题、类名、区域和 ZOrder（显示层级）。通过使用 C++ 和 Windows API，定义了 `WindowInfo` 结构体来存储窗口信息，并通过 `EnumWindows` 函数枚举所有可见窗口。代码示例展示了如何遍历窗口列表，获取每个窗口的详细信息，并计算其 ZOrder，最终返回包含所有窗口信息的 `QVector&lt;WindowInfo&gt;`。</description>
    <pubDate>Sun, 14 May 2023 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Windows</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2023/20230422105222</guid>
    <title>远程桌面切换到console session</title>
    <link>https://ningto.com/blog/2023/20230422105222</link>
    <description>本文介绍了如何在使用第三方远程桌面软件连接公司电脑时，解决物理控制台无显示的问题。原因是微软远程桌面（RDP）会创建独立的会话，默认不显示在物理控制台上，而其他软件如 TeamViewer 无法直接输出到物理屏幕。通过使用 `tscon` 命令将远程会话转换为 console session，可以实现在物理控制台上查看远程桌面输出。具体步骤包括使用 `query user` 查看会话ID，并执行 `tscon &lt;session ID&gt; /dest:console` 进行转换。</description>
    <pubDate>Sat, 22 Apr 2023 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Windows</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2023/20230405091616</guid>
    <title>C++20 模块入门指南</title>
    <link>https://ningto.com/blog/2023/20230405091616</link>
    <description>C++20 引入模块特性以解决头文件问题。模块由 interface 和 implementation 组成，使用 import 导入，如 example 模块示例。命名应遵循规范，像 math 模块。模块能提升代码维护重用性，编译快、组织简单、冲突少。</description>
    <pubDate>Wed, 05 Apr 2023 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>cpp</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2023/20230405212722</guid>
    <title>Win32 MSAA UIA技术介绍</title>
    <link>https://ningto.com/blog/2023/20230405212722</link>
    <description>本文介绍 Win32、MSAA、UIA 技术。Win32 是基础 API 用于 Windows 界面开发，MSAA 助开发辅助功能，UIA 是 Windows7 新功能提供更精确访问信息。RPA 产品需这些技术来控制 GUI 应用，各技术优缺点各异，需根据需求灵活选择。</description>
    <pubDate>Wed, 05 Apr 2023 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Windows</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2023/20230405213208</guid>
    <title>实现RPA软件的关键点</title>
    <link>https://ningto.com/blog/2023/20230405213208</link>
    <description>实现 RPA 软件关键点：识别业务流程，开发脚本处理异常，提供配置管理监控，保障安全，迭代优化，还需社交网络信息收集，全面考虑多因素，保证自动化高效稳定安全。</description>
    <pubDate>Wed, 05 Apr 2023 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Design</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2023/20230405221938</guid>
    <title>JavaScript优雅的编程方式</title>
    <link>https://ningto.com/blog/2023/20230405221938</link>
    <description>总结：介绍 JavaScript 优雅编程方式，如函数式编程、async/await、模块化开发、箭头函数、函数默认参数与对象解构、链式调用等，各举实例说明其优势，可提升代码可读性与效率。</description>
    <pubDate>Wed, 05 Apr 2023 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Javascript</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2022/20221211222811</guid>
    <title>Python的几种函数参数类型</title>
    <link>https://ningto.com/blog/2022/20221211222811</link>
    <description>本文介绍了Python函数的几种参数类型，包括位置参数、默认参数、可变参数、关键字参数、命名关键字参数及其组合使用方法，帮助开发者灵活定义和调用函数。</description>
    <pubDate>Sun, 11 Dec 2022 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Python</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2022/20221126205959</guid>
    <title>Effective Python</title>
    <link>https://ningto.com/blog/2022/20221126205959</link>
    <description>本文记录了《Effective Python》中的部分练习和建议，涵盖命名规范、空值判断简化、列表切片、遍历优化及函数默认参数的正确使用，帮助编写更高效的Python代码。</description>
    <pubDate>Sat, 26 Nov 2022 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Python</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2022/20221007161327</guid>
    <title>Mac、linux安装brew终极办法</title>
    <link>https://ningto.com/blog/2022/20221007161327</link>
    <description>文章介绍了 Mac、linux 安装 brew 的终极办法，即粘贴特定命令`/bin/zsh -c &quot;$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)&quot;`到终端回车，执行后可能需输入开机密码，可解决安装时连不上或下载缓慢的问题。</description>
    <pubDate>Fri, 07 Oct 2022 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Shell</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2022/20220722160106</guid>
    <title>IE获取元素样式</title>
    <link>https://ningto.com/blog/2022/20220722160106</link>
    <description>IE 浏览器获取元素样式时，常规方式获取不了。文中给出正确方法，包括一系列函数如 bstr2str、str2bstr 等，通过这些函数可获取元素的样式属性。先获取“style”属性的 DISPATCH 值，再获取“cssText”属性值并转换为字符串。</description>
    <pubDate>Fri, 22 Jul 2022 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>cpp</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2022/20220706190423</guid>
    <title>QProcess 7z.exe 解压进度</title>
    <link>https://ningto.com/blog/2022/20220706190423</link>
    <description>通过 QProcess 结合 7z.exe 实现解压进度，在 Worker 线程中读取进度信息，利用相关信号处理解压过程，避免主界面卡顿。</description>
    <pubDate>Wed, 06 Jul 2022 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Qt</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2022/20220402220837</guid>
    <title>降权启动应用</title>
    <link>https://ningto.com/blog/2022/20220402220837</link>
    <description>介绍了在 Windows 中降权启动应用的方法，指出 WTSQueryUserToken 在普通会话下调用常失败但在 session 0 服务中可成功，给出代码`runProcessAsUser`，但强调此代码未严谨测试仅供参考。</description>
    <pubDate>Sat, 02 Apr 2022 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Windows</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2022/20220306170927</guid>
    <title>beast websocket demo</title>
    <link>https://ningto.com/blog/2022/20220306170927</link>
    <description>这是一个 C++ 的 beast websocket 示例，包含客户端和服务器代码。客户端发送随机生成的文本消息并接收服务器响应，服务器接收客户端消息并回显。客户端通过连接本地主机的 2236 端口进行通信，服务器在 127.0.0.1 的 2236 端口监听新连接。</description>
    <pubDate>Sun, 06 Mar 2022 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>cpp</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2021/20211117122510</guid>
    <title>隐式共享的QJsonArray对象，非const遍历会导致一次内存拷贝</title>
    <link>https://ningto.com/blog/2021/20211117122510</link>
    null
    <pubDate>Wed, 17 Nov 2021 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Qt</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2021/20211103112713</guid>
    <title>visual studio修改堆栈保留大小和提交大小</title>
    <link>https://ningto.com/blog/2021/20211103112713</link>
    null
    <pubDate>Wed, 03 Nov 2021 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>cpp</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2021/20211028195907</guid>
    <title>bat常用命令</title>
    <link>https://ningto.com/blog/2021/20211028195907</link>
    null
    <pubDate>Thu, 28 Oct 2021 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Windows</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2021/20210813094249</guid>
    <title>boost命令行解析</title>
    <link>https://ningto.com/blog/2021/20210813094249</link>
    null
    <pubDate>Fri, 13 Aug 2021 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Boost</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2021/20210813191937</guid>
    <title>golang 下载大文件进度</title>
    <link>https://ningto.com/blog/2021/20210813191937</link>
    null
    <pubDate>Fri, 13 Aug 2021 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Go</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2021/20210810191653</guid>
    <title>卸载程序——自删除</title>
    <link>https://ningto.com/blog/2021/20210810191653</link>
    null
    <pubDate>Tue, 10 Aug 2021 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>cpp</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2021/20210810194503</guid>
    <title>Qt怎样将gif作为窗口背景</title>
    <link>https://ningto.com/blog/2021/20210810194503</link>
    null
    <pubDate>Tue, 10 Aug 2021 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Qt</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2021/20210725113948</guid>
    <title>Python 更新xml文件非常方便</title>
    <link>https://ningto.com/blog/2021/20210725113948</link>
    <description>文章介绍 Python 更新 xml 文件很方便，起初查找相关库眼花缭乱，后找到方法。通过`updateAppCfg`函数，可修改`app.xml`中`startup`下`project`和`version`的文本内容，最终成功更新。</description>
    <pubDate>Sun, 25 Jul 2021 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Python</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2021/20210704170805</guid>
    <title>golang 生成目录的check list文件并校验目录</title>
    <link>https://ningto.com/blog/2021/20210704170805</link>
    <description>文章介绍 golang 生成目录的 check list 文件并校验目录的方法。可通过特定命令生成和校验，代码实现了写入和校验功能，包括遍历目录、计算 MD5 值等操作，能判断目录内容完整性。</description>
    <pubDate>Sun, 04 Jul 2021 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Go</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2021/20210622203918</guid>
    <title>多个Qt程序共享公共库</title>
    <link>https://ningto.com/blog/2021/20210622203918</link>
    null
    <pubDate>Tue, 22 Jun 2021 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Qt</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2021/20210611104617</guid>
    <title>datetime封装常用功能</title>
    <link>https://ningto.com/blog/2021/20210611104617</link>
    null
    <pubDate>Fri, 11 Jun 2021 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>cpp</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2021/20210611105105</guid>
    <title>boost类型转换异常捕获</title>
    <link>https://ningto.com/blog/2021/20210611105105</link>
    null
    <pubDate>Fri, 11 Jun 2021 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Boost</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2021/20210608172805</guid>
    <title>robotgo模拟鼠标键盘操作</title>
    <link>https://ningto.com/blog/2021/20210608172805</link>
    <description>文章介绍用 robotgo 库实现自动化过程，包括打开记事本输入当前日期保存并关闭，还可全局监听键盘事件退出程序，以及录入回放功能，可将动作写入本地文件或读取执行。</description>
    <pubDate>Tue, 08 Jun 2021 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Go</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2021/20210604133556</guid>
    <title>Python codingbat练习一下</title>
    <link>https://ningto.com/blog/2021/20210604133556</link>
    null
    <pubDate>Fri, 04 Jun 2021 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Python</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2021/20210603173706</guid>
    <title>Python 统计项目代码行数</title>
    <link>https://ningto.com/blog/2021/20210603173706</link>
    null
    <pubDate>Thu, 03 Jun 2021 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Python</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2021/20210603175505</guid>
    <title>Python 列表、字典的几种遍历方式</title>
    <link>https://ningto.com/blog/2021/20210603175505</link>
    null
    <pubDate>Thu, 03 Jun 2021 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Python</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2021/20210601123035</guid>
    <title>Solution - Find your Unicorn Name - StudioX Project</title>
    <link>https://ningto.com/blog/2021/20210601123035</link>
    null
    <pubDate>Tue, 01 Jun 2021 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Others</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2021/20210601170825</guid>
    <title>MySql查询前一条后一条记录</title>
    <link>https://ningto.com/blog/2021/20210601170825</link>
    null
    <pubDate>Tue, 01 Jun 2021 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Database</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2021/20210528103534</guid>
    <title>boost asio + protobuf封装通信库</title>
    <link>https://ningto.com/blog/2021/20210528103534</link>
    null
    <pubDate>Fri, 28 May 2021 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>cpp</category><category>Boost</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2021/20210526145420</guid>
    <title>业界消息总线技术分析-ZeroMQ</title>
    <link>https://ningto.com/blog/2021/20210526145420</link>
    null
    <pubDate>Wed, 26 May 2021 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>MQ</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2021/20210526162241</guid>
    <title>ZMQ DEMO 请求应答模式</title>
    <link>https://ningto.com/blog/2021/20210526162241</link>
    null
    <pubDate>Wed, 26 May 2021 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>MQ</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2021/20210526162401</guid>
    <title>ZMQ DEMO 发布订阅模式-进程内</title>
    <link>https://ningto.com/blog/2021/20210526162401</link>
    null
    <pubDate>Wed, 26 May 2021 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>MQ</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2021/20210526163008</guid>
    <title>ZMQ DEMO pull方法的使用</title>
    <link>https://ningto.com/blog/2021/20210526163008</link>
    null
    <pubDate>Wed, 26 May 2021 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>MQ</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2021/20210526163228</guid>
    <title>ZMQ DEMO 分布式处理</title>
    <link>https://ningto.com/blog/2021/20210526163228</link>
    null
    <pubDate>Wed, 26 May 2021 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>MQ</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2021/20210526163504</guid>
    <title>ZMQ DEMO 发布订阅模式</title>
    <link>https://ningto.com/blog/2021/20210526163504</link>
    <description>ZMQ DEMO 发布订阅模式，一端发布多端接收。发布者每秒推送气象信息，订阅者可接收所有或特定开头信息。示例代码展示了发布者和订阅者的实现，包括绑定和连接等操作。</description>
    <pubDate>Wed, 26 May 2021 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>MQ</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2021/20210526163650</guid>
    <title>ZMQ DEMO push pull 模式</title>
    <link>https://ningto.com/blog/2021/20210526163650</link>
    null
    <pubDate>Wed, 26 May 2021 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>MQ</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2021/20210526164110</guid>
    <title>ZMQ DEMO send_multipart方法的使用</title>
    <link>https://ningto.com/blog/2021/20210526164110</link>
    <description>本文介绍了 ZMQ DEMO 中 send_multipart 方法的使用。在同一进程内演示多包同时收发，通过创建上下文、套接字并绑定连接，使用 send_multipart 发送消息，recv_multipart 接收消息，最后输出结果。</description>
    <pubDate>Wed, 26 May 2021 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>MQ</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2021/20210526164445</guid>
    <title>ZMQ DEMO proxy代理模式</title>
    <link>https://ningto.com/blog/2021/20210526164445</link>
    null
    <pubDate>Wed, 26 May 2021 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>MQ</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2021/20210521152616</guid>
    <title>ntscreenshot截图工具开源了</title>
    <link>https://ningto.com/blog/2021/20210521152616</link>
    null
    <pubDate>Fri, 21 May 2021 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Windows</category><category>Qt</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2021/20210520080220</guid>
    <title>接入腾讯AI智能闲聊API接口</title>
    <link>https://ningto.com/blog/2021/20210520080220</link>
    null
    <pubDate>Thu, 20 May 2021 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Tools</category><category>Go</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2021/20210520144710</guid>
    <title>Python批量替换博客中七牛云图片地址</title>
    <link>https://ningto.com/blog/2021/20210520144710</link>
    null
    <pubDate>Thu, 20 May 2021 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Python</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2021/20210514171404</guid>
    <title>Go 实现简单端口扫描</title>
    <link>https://ningto.com/blog/2021/20210514171404</link>
    null
    <pubDate>Fri, 14 May 2021 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Go</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2021/20210512093728</guid>
    <title>Go 使用zip压缩文件目录</title>
    <link>https://ningto.com/blog/2021/20210512093728</link>
    null
    <pubDate>Wed, 12 May 2021 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Go</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2021/20210512100158</guid>
    <title>Go 使用gomail发送邮件，包括附件</title>
    <link>https://ningto.com/blog/2021/20210512100158</link>
    null
    <pubDate>Wed, 12 May 2021 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Go</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2021/20210510143220</guid>
    <title>截图软件窗口自动识别实现</title>
    <link>https://ningto.com/blog/2021/20210510143220</link>
    null
    <pubDate>Mon, 10 May 2021 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Windows</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2021/20210423181836</guid>
    <title>推送消息版本号的设计与使用问题</title>
    <link>https://ningto.com/blog/2021/20210423181836</link>
    null
    <pubDate>Fri, 23 Apr 2021 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Design</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2021/20210419115211</guid>
    <title>Qt 绘制简单QPixmap</title>
    <link>https://ningto.com/blog/2021/20210419115211</link>
    null
    <pubDate>Mon, 19 Apr 2021 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Qt</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2021/20210413141122</guid>
    <title>Qt 更改Object Name显示指定的样式</title>
    <link>https://ningto.com/blog/2021/20210413141122</link>
    null
    <pubDate>Tue, 13 Apr 2021 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Qt</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2021/20210408103516</guid>
    <title>DLL注入和卸载</title>
    <link>https://ningto.com/blog/2021/20210408103516</link>
    null
    <pubDate>Thu, 08 Apr 2021 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Windows</category><category>cpp</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2021/20210330103210</guid>
    <title>界面之下：还原真实的 MVC、MVP、MVVM 模式</title>
    <link>https://ningto.com/blog/2021/20210330103210</link>
    <description>文章介绍了 MVC、MVP、MVVM 模式，从历史背景、依赖关系、调用关系、优缺点等方面进行阐述。MVC 有 Controller 层，通过观察者模式同步 View 和 Model；MVP 用 Presenter 替代 Controller，View 提供接口给 Presenter 同步；MVVM 是特殊的 MVP，用双向数据绑定的 Binder 自动同步 View 和 Model，各有优劣，可提高可维护性和简化测试。</description>
    <pubDate>Tue, 30 Mar 2021 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Design</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2021/20210327191951</guid>
    <title>Go寻找最长不含有重复字符的子串</title>
    <link>https://ningto.com/blog/2021/20210327191951</link>
    null
    <pubDate>Sat, 27 Mar 2021 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Go</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2021/20210323141842</guid>
    <title>Go竞态检测</title>
    <link>https://ningto.com/blog/2021/20210323141842</link>
    null
    <pubDate>Tue, 23 Mar 2021 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Go</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2021/20210323150755</guid>
    <title>Go Buffer重用，避免频繁内存分配</title>
    <link>https://ningto.com/blog/2021/20210323150755</link>
    null
    <pubDate>Tue, 23 Mar 2021 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Go</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2021/20210322151528</guid>
    <title>Golang pipeline模式</title>
    <link>https://ningto.com/blog/2021/20210322151528</link>
    null
    <pubDate>Mon, 22 Mar 2021 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Go</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2021/20210319110107</guid>
    <title>gorm写入数据库后时间差8小时</title>
    <link>https://ningto.com/blog/2021/20210319110107</link>
    null
    <pubDate>Fri, 19 Mar 2021 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Go</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2021/20210316051349</guid>
    <title>Qt QTextEdit文本高亮</title>
    <link>https://ningto.com/blog/2021/20210316051349</link>
    null
    <pubDate>Tue, 16 Mar 2021 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Qt</category><category>cpp</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2021/20210305020100</guid>
    <title>博客文章增加TOC</title>
    <link>https://ningto.com/blog/2021/20210305020100</link>
    null
    <pubDate>Fri, 05 Mar 2021 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Web</category><category>Javascript</category><category>Go</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2021/20210302105125</guid>
    <title>Chrome简单插件开发，自动初始化gitalk评论</title>
    <link>https://ningto.com/blog/2021/20210302105125</link>
    null
    <pubDate>Tue, 02 Mar 2021 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Web</category><category>Javascript</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2021/20210226013534</guid>
    <title>golang设计模式-命令模式</title>
    <link>https://ningto.com/blog/2021/20210226013534</link>
    null
    <pubDate>Fri, 26 Feb 2021 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Go</category><category>Design</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2021/20210226015636</guid>
    <title>常用端口号</title>
    <link>https://ningto.com/blog/2021/20210226015636</link>
    null
    <pubDate>Fri, 26 Feb 2021 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Tips</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2021/20210226021104</guid>
    <title>QWebEngineView支持https</title>
    <link>https://ningto.com/blog/2021/20210226021104</link>
    null
    <pubDate>Fri, 26 Feb 2021 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>cpp</category><category>Qt</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2021/20210226084531</guid>
    <title>C++ 多线程有序锁和无序锁</title>
    <link>https://ningto.com/blog/2021/20210226084531</link>
    null
    <pubDate>Fri, 26 Feb 2021 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>cpp</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2021/20210226095124</guid>
    <title>Redis常见问题和解答</title>
    <link>https://ningto.com/blog/2021/20210226095124</link>
    <description>本文全面介绍了 Redis 的诸多方面，包括持久化机制（RDB 和 AOF）、常见问题及解决办法（如缓存雪崩、穿透等）、数据类型及使用场景、内部结构、过期策略及内存淘汰机制、线程模型、集群方案、性能问题及解决方案等，还讲解了 Redis 事务和实现分布式锁的方法，是 Redis 知识的全面汇总。</description>
    <pubDate>Fri, 26 Feb 2021 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Database</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2021/20210225053432</guid>
    <title>golang读取excel文档转换成json</title>
    <link>https://ningto.com/blog/2021/20210225053432</link>
    null
    <pubDate>Thu, 25 Feb 2021 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Go</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2021/20210225092937</guid>
    <title>golang上传图片文件</title>
    <link>https://ningto.com/blog/2021/20210225092937</link>
    null
    <pubDate>Thu, 25 Feb 2021 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Go</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2021/20210225094206</guid>
    <title>Qt启动第三方控制台程序并读取输出内容</title>
    <link>https://ningto.com/blog/2021/20210225094206</link>
    null
    <pubDate>Thu, 25 Feb 2021 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>cpp</category><category>Qt</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2021/20210210032823</guid>
    <title>ntscreenshot截图工具马赛克功能实现</title>
    <link>https://ningto.com/blog/2021/20210210032823</link>
    null
    <pubDate>Wed, 10 Feb 2021 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Windows</category><category>Qt</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2021/20210206111336</guid>
    <title>MacBook突然没网</title>
    <link>https://ningto.com/blog/2021/20210206111336</link>
    null
    <pubDate>Sat, 06 Feb 2021 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Mac</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2021/20210129091436</guid>
    <title>golang 日志文件切割、保存最大文件数</title>
    <link>https://ningto.com/blog/2021/20210129091436</link>
    null
    <pubDate>Fri, 29 Jan 2021 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Go</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2021/20210108021501</guid>
    <title>win32应用程序内存不足</title>
    <link>https://ningto.com/blog/2021/20210108021501</link>
    null
    <pubDate>Fri, 08 Jan 2021 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Windows</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2020/20201210083733</guid>
    <title>golang 中介者模式</title>
    <link>https://ningto.com/blog/2020/20201210083733</link>
    <description>中介者模式通过创建中介对象避免对象间直接交互。以铁路系统为例，站长充当调停者，旅客列车和货物列车通过站长交互。代码中展示了旅客列车和货物列车实现列车接口，站长实现中介者接口，通过互斥锁控制站台使用。</description>
    <pubDate>Thu, 10 Dec 2020 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Go</category><category>Design</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2020/20201210085057</guid>
    <title>golang 单例模式</title>
    <link>https://ningto.com/blog/2020/20201210085057</link>
    <description>总结：文章介绍 golang 单例模式，属创建型模式，提供创建对象最佳方式，通过 sync.Once 保证线程安全，示例代码展示获取单例及打印地址，多个 goroutine 打印结果相同。</description>
    <pubDate>Thu, 10 Dec 2020 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Go</category><category>Design</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2020/20201209073749</guid>
    <title>CentOS7 debuginfo-install</title>
    <link>https://ningto.com/blog/2020/20201209073749</link>
    <description>CentOS7 的 debuginfo-install 步骤：先允许 debuginfo 源（改 /etc/yum.repos.d/CentOS-Debuginfo.repo 中 enabled 为 1），再安装 glibc-debuginfo 和 yum-utils，最后安装调式信息包及依赖（如 libgcc 等）。</description>
    <pubDate>Wed, 09 Dec 2020 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Linux</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2020/20201209075503</guid>
    <title>CentOS7 systemctl service</title>
    <link>https://ningto.com/blog/2020/20201209075503</link>
    <description>CentOS7 系统的 systemctl 服务介绍及示例。配置文件有[Unit]、[Service]、[Install]区块，分别用于定义元数据、服务配置和启动设置。给出两个服务配置示例及相关脚本，最后通过 systemctl daemon-reload 使其生效。</description>
    <pubDate>Wed, 09 Dec 2020 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Linux</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2020/20201208024136</guid>
    <title>CentOS7 U盘安装  No Caching mode page found</title>
    <link>https://ningto.com/blog/2020/20201208024136</link>
    <description>CentOS7 优盘安装时出现“[sda] No Caching mode page found”，需耐心等待超时输出错误信息，找到 U 盘位置（如 sda4），修改安装选项第二行，将 inst.stage2 改为 hd:/dev/sda4:/，按 Ctrl+X 安装，安装后启动网络。</description>
    <pubDate>Tue, 08 Dec 2020 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Linux</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2020/20201210085103</guid>
    <title>CentOS6 yum The requested URL returned error  404 Not Found</title>
    <link>https://ningto.com/blog/2020/20201210085103</link>
    <description>CentOS6 is end-of-life with no more updates. Its online yum repos are archived. Options for running it include reinstalling with a newer version, converting to RHEL6, choosing a different distro. Doing nothing risks being hacked. Don&#39;t delay, migrate today.</description>
    <pubDate>Mon, 07 Dec 2020 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Linux</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2020/20201127101303</guid>
    <title>jemalloc C++实践</title>
    <link>https://ningto.com/blog/2020/20201127101303</link>
    <description>介绍 jemalloc C++实践，包括下载、解压、编译安装，给出 c++ 测试源码及 CMakeLists，展示编译测试过程和链接 jemalloc 的情况，还可通过环境变量配置满足特殊要求，相关内容可参考[https://github.com/jemalloc/jemalloc/blob/dev/TUNING.md]</description>
    <pubDate>Fri, 27 Nov 2020 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>cpp</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2020/20201125015634</guid>
    <title>C++11 实现defer</title>
    <link>https://ningto.com/blog/2020/20201125015634</link>
    <description>文章介绍 C++11 实现的 defer 功能，内部 lambda 表达式捕获引用，同一作用域先定义后执行。通过 define 及连接符使局部变量名唯一，使用起来方便，给出源码及用法示例，如在不同函数中使用 defer 输出特定信息。</description>
    <pubDate>Wed, 25 Nov 2020 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>cpp</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2020/20201121145256</guid>
    <title>微信本地图片格式转化</title>
    <link>https://ningto.com/blog/2020/20201121145256</link>
    <description>PC 端微信本地图片为.dat 格式且经简单加密，可通过特定 golang 算法还原成 jpg、gif、png 格式。先读文件判断前两字符，找到对应异或值 v 后对文件字符异或还原，有 github 源码可下载转换程序。</description>
    <pubDate>Sat, 21 Nov 2020 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Go</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2020/20201120130754</guid>
    <title>golang vscode launch.json配置</title>
    <link>https://ningto.com/blog/2020/20201120130754</link>
    <description>文章介绍 golang vscode launch.json 配置，每次调试运行需先打开 main.go 麻烦，增加配置后可直接点击左侧 debug 按钮运行，给出了具体配置内容。</description>
    <pubDate>Fri, 20 Nov 2020 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>others</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2020/20201114113612</guid>
    <title>gin多模板、模板嵌套使用方法</title>
    <link>https://ningto.com/blog/2020/20201114113612</link>
    <description>介绍 gin 多模板及模板嵌套使用方法，多个页面共用主模板 frame.html，不同页面如 index.html、post.html 等在渲染时只需渲染具体页面。通过路由和模板定义及载入实现，清晰展示页面结构和内容组合。</description>
    <pubDate>Sat, 14 Nov 2020 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Go</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2020/20201106064759</guid>
    <title>Qt 正确的显示窗口</title>
    <link>https://ningto.com/blog/2020/20201106064759</link>
    <description>文章主要讲 Qt 正确显示窗口，有多种展示情况及常见做法，如`widget-&gt;show(); widget-&gt;raise();`但存在窗口最小化后出不来等问题，给出`GraceShowWidget`函数代码可解决，测试无问题。</description>
    <pubDate>Fri, 06 Nov 2020 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Windows</category><category>Qt</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2020/20201104034649</guid>
    <title>golang接口型函数作用</title>
    <link>https://ningto.com/blog/2020/20201104034649</link>
    <description>Golang 中 http.Handle 用到接口型函数，定义了 ServeHTTP 接口及实现它的 HandlerFunc 函数。通过示例展示用户使用灵活，有 struct 对象、匿名函数、普通函数三种方式，清楚体现其好处。</description>
    <pubDate>Wed, 04 Nov 2020 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Go</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2020/20201015025612</guid>
    <title>QTableWidget整行高亮去虚线，样式定制</title>
    <link>https://ningto.com/blog/2020/20201015025612</link>
    <description>文章介绍了 QTableWidget 整行高亮去虚线及样式定制方法。定义接口类存储 hovered 行和 split 行，表格绘制代理类实现 item 定制绘制，包括去掉焦点虚线框、hover 整行高亮等。table 具体应用结合两部分实现需求，通过 mouseMoveEvent 设 hovered 行，此分层方式灵活且易扩充功能。</description>
    <pubDate>Thu, 15 Oct 2020 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Qt</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2020/20200922024839</guid>
    <title>Qt json文件读写</title>
    <link>https://ningto.com/blog/2020/20200922024839</link>
    <description>介绍 Qt 中 JSON 读写，提供便捷 C++ API。封装 json 字符串与 QVariantMap 转换函数。展示读取和写入 json 文件的代码，注意写入时需指定 utf8 编码，避免中文转换失败。</description>
    <pubDate>Tue, 22 Sep 2020 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Qt</category><category>cpp</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2020/20200913134027</guid>
    <title>字符编码的故事</title>
    <link>https://ningto.com/blog/2020/20200913134027</link>
    <description>文章讲述字符编码故事，从 ASCII 到 GB2312 等多种编码，后 ISO 制定 UNICODE 统一所有字符，UTF 标准用于网络传输。还介绍了 Ansi、Unicode、UTF8 字符串特点及相互转换代码，如 Ansi 转 Unicode 用 MultiByteToWideChar 等函数，UTF8 转 Unicode 用 WideCharToMultiByte 等函数。</description>
    <pubDate>Sun, 13 Sep 2020 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Life</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2020/20201210085108</guid>
    <title>qt.network.ssl  QSslSocket Qt支持SSL https</title>
    <link>https://ningto.com/blog/2020/20201210085108</link>
    <description>Qt 的 qt.network.ssl 中 QSslSocket 支持 SSL https。使用 QNetworkAccessManager 类默认不支持 https 协议，需增加openssl动态库，且新版本和老版本所需库名不同，老为 libeay32.dll、ssleay32.dll，新为 libcrypto - 1_1.dll、libssl - 1_1.dll，可在 QtCreator 包中找。</description>
    <pubDate>Tue, 08 Sep 2020 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Qt</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2020/20200904101203</guid>
    <title>腾讯OCR文字识别API调用</title>
    <link>https://ningto.com/blog/2020/20200904101203</link>
    <description>该 Go 代码实现腾讯 OCR 文字识别 API 调用，通过上传图像获取识别字段信息。定义相关结构体和函数，包括获取请求数据、生成签名等。在 main 函数中发起 POST 请求并处理响应，将识别结果输出。代码可从指定链接获取更多信息。</description>
    <pubDate>Fri, 04 Sep 2020 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Go</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2020/20200903013817</guid>
    <title>QtCharts使用</title>
    <link>https://ningto.com/blog/2020/20200903013817</link>
    <description>介绍 QtCharts 使用，其在 Qt5.7 后包含，包含重要类如 QChart 等。给出 demo 截图及相关源码，包含 MyChart 类的定义和实现，用于展示图表等功能。</description>
    <pubDate>Thu, 03 Sep 2020 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Qt</category><category>cpp</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2020/20200903060431</guid>
    <title>删除数据库中没有使用到的图片</title>
    <link>https://ningto.com/blog/2020/20200903060431</link>
    <description>文章介绍了删除数据库中未使用图片的程序。先连接数据库，读取 web/upload 目录下图片，根据图片名在数据库查找，未找到则删除。通过 Go 代码实现，遍历目录，根据图片名在数据库中筛选，找到无对应文章的图片并删除。</description>
    <pubDate>Thu, 03 Sep 2020 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Go</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2020/20201210085105</guid>
    <title>Expression  _BLOCK_TYPE_IS_VALID(pHead-&gt;nBlockUse)</title>
    <link>https://ningto.com/blog/2020/20201210085105</link>
    <description>用新 visual studio 编译老代码，Debug 时 QString 的 toStdString 和 toStdWString 触发“Expression _BLOCK_TYPE_IS_VALID(pHead-&gt;nBlockUse)”错误，换成特定转换函数就没事，原因可能与内存有关，需分析 QString 源码。</description>
    <pubDate>Mon, 31 Aug 2020 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>cpp</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2020/20200825030147</guid>
    <title>sqlite3 安装、开发</title>
    <link>https://ningto.com/blog/2020/20200825030147</link>
    <description>SQLite 是世界常用数据库引擎，提供下载链接及可视化工具。可通过命令生成 lib，还给出 sqlite3 开发包目录结构及相关编码，包括类 Sqlite 的各种操作函数，如打开、关闭、查询、执行等。</description>
    <pubDate>Tue, 25 Aug 2020 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Database</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2020/20200812024238</guid>
    <title>log4cxx OutputDebugString DebugView</title>
    <link>https://ningto.com/blog/2020/20200812024238</link>
    <description>文章介绍 log4cxx 的常用 appender 及在 GUI 程序中用 OutputDebugString 看日志。提到可通过配置 log4cxx.properties 实现向 OutputDebugString 输出日志，用 vs 输出窗口或 DebugView 工具实时查看。</description>
    <pubDate>Wed, 12 Aug 2020 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Windows</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2020/20200730023808</guid>
    <title>多线程锁key处理</title>
    <link>https://ningto.com/blog/2020/20200730023808</link>
    <description>主要目的是保证多线程处理同一 key 消息的线程安全和顺序性。通过缓存消息、解析 key、分配线程等步骤实现，关键在于递减索引数和等待索引为 0 以保证顺序执行，代码包含多种类如 MessagePack、NetMessageCache 等，外部调用 init 和 dispatchMessage 函数。</description>
    <pubDate>Thu, 30 Jul 2020 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>cpp</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2020/20200729055424</guid>
    <title>golang 控制goroutine调度顺序</title>
    <link>https://ningto.com/blog/2020/20200729055424</link>
    <description>文章介绍 golang 控制 goroutine 调度顺序，用 go 启动 goroutine 执行顺序不保证，通过 event 包中的 Event 结构及相关函数可按需求调度。如多个 goroutine 按特定顺序执行及 a、b、c、d 倒序执行的代码示例等。</description>
    <pubDate>Wed, 29 Jul 2020 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Go</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2020/20200723022614</guid>
    <title>快速遍历磁盘</title>
    <link>https://ningto.com/blog/2020/20200723022614</link>
    <description>介绍快速遍历磁盘方法，不用遍历每个目录，用 DeviceIoControl 函数需管理员权限，还可通过命令行工具“dir c:\*.* /b /s /a-d &gt;&gt;c:\allfile.txt”。给出 C++代码可遍历磁盘文件及目录信息。</description>
    <pubDate>Thu, 23 Jul 2020 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Windows</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2020/20200723081837</guid>
    <title>localtime线程不安全造成的线上问题</title>
    <link>https://ningto.com/blog/2020/20200723081837</link>
    <description>线上出现日期赋值异常，经调查确定是 localtime 函数线程不安全导致。通过 demo 模拟，多个线程运行时 t2 的时间会误赋值给 t1。应使用线程安全的 localtime，如在 windows 下直接使用 localtime，linux 下使用 localtime_r。</description>
    <pubDate>Thu, 23 Jul 2020 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Linux</category><category>cpp</category><category>Bug</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2020/20200706133846</guid>
    <title>编程语录</title>
    <link>https://ningto.com/blog/2020/20200706133846</link>
    <description>总结：纠错前先思考，若直接扎进问题，仅解决当前代码，先思考错误及引入方式，能发现并纠正高层次问题，改进系统设计，防止更多 bug 出现。</description>
    <pubDate>Mon, 06 Jul 2020 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Tips</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2020/20200704132117</guid>
    <title>golang设置桌面壁纸</title>
    <link>https://ningto.com/blog/2020/20200704132117</link>
    <description>本文介绍用 golang 设置桌面壁纸，提供 github 源码地址及编译好的程序地址。程序可通过命令设置不同日期壁纸或随机切换，还展示了 golang 调用 windows API 的相关代码，如加载动态链接库、查找函数等操作。</description>
    <pubDate>Sat, 04 Jul 2020 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Go</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2020/20200623064259</guid>
    <title>QWidget QLabel没有响应keyEvent键盘事件</title>
    <link>https://ningto.com/blog/2020/20200623064259</link>
    <description>在 Qt 中，常通过重写虚函数实现按键事件。但 QWidget、QLabel 有时无法触发，可能被父窗口截获或无焦点。可通过鼠标点击和 tab 键获取焦点，像它们即使鼠标点上也无焦点，需设置焦点获取策略如 setFocusPolicy(Qt::StrongFocus)，获取焦点才能响应按键事件。</description>
    <pubDate>Tue, 23 Jun 2020 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Qt</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2020/20200612154855</guid>
    <title>Mac安装国内版homebrew</title>
    <link>https://ningto.com/blog/2020/20200612154855</link>
    <description>HomeBrew 是 macOS 和 linux 包管理工具，官方版本下载慢，此文介绍国内版安装方法。粘贴脚本到终端回车安装，选 1，安装过程若需安装 xcode 工具按提示操作，安装完成后截图如下，速度快。</description>
    <pubDate>Fri, 12 Jun 2020 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Linux</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2020/20200611092655</guid>
    <title>malloc_trim和SetProcessWorkingSetSize两个神奇的内存相关函数</title>
    <link>https://ningto.com/blog/2020/20200611092655</link>
    <description>介绍了 malloc_trim 和 SetProcessWorkingSetSize 两个内存相关函数。malloc_trim 是 linux 平台函数，可释放堆上可用内存；SetProcessWorkingSetSize 是 windows 平台函数，可设置进程工作集大小，将不使用内存交换到虚拟内存，频繁调用会降低性能。</description>
    <pubDate>Thu, 11 Jun 2020 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>cpp</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2020/20200606132433</guid>
    <title>编写 Bash Shell 脚本的最佳实践</title>
    <link>https://ningto.com/blog/2020/20200606132433</link>
    <description>介绍编写 Bash Shell 脚本的最佳实践，包括代码风格规范（开头有“蛇棒”、有注释、参数规范等）、编码细节规范（代码有效率等）、巧用 main 函数等，还提及静态检查工具 shellcheck，方便保证脚本质量，作者 Myths 分享经验。</description>
    <pubDate>Sat, 06 Jun 2020 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Linux</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2020/20200606140916</guid>
    <title>netcat网络诊断</title>
    <link>https://ningto.com/blog/2020/20200606140916</link>
    <description>Netcat 功能灵活，体积小，默认安装于各大发行版。可用于网络诊断，如端口测试、传输测试、UDP 会话测试、文件传输、网速吞吐量测试及创建系统后门等。搭配管道可实现多样功能，虽复杂用法难记，但可作为备份手段，在极端环境下发挥作用。</description>
    <pubDate>Sat, 06 Jun 2020 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Linux</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2020/20200606141715</guid>
    <title>vim常用技巧</title>
    <link>https://ningto.com/blog/2020/20200606141715</link>
    <description>文章介绍 vim 常用技巧，研发线上常用 vi 编辑器，vim 有按键系统等特点。别用 vim 打开大文件，常用操作如漫游、复制、剪切、删除、粘贴等，还有可视化模式、命令模式、查找字符串、宏录制等功能，以及其他如 r、ggVG 等功能，最后介绍退出编辑器的方式，门槛高但用多了难释手。</description>
    <pubDate>Sat, 06 Jun 2020 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Linux</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2020/20201210085101</guid>
    <title>如何在Ubuntu 14.04上使用Corosync Pacemaker和浮动IP构建高可用服务</title>
    <link>https://ningto.com/blog/2020/20201210085101</link>
    <description>本文介绍在 Ubuntu 14.04 上用 Corosync、Pacemaker 和浮动 IP 构建高可用服务，包括创建 Droplets、配置 Corosync 和 Pacemaker、设置浮动 IP 重新分配等步骤，还可添加 Nginx 资源等，最终实现主动/被动高可用设置，可进一步用反向代理负载平衡器替换 Nginx 设置。</description>
    <pubDate>Wed, 03 Jun 2020 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Linux</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2020/20200601083849</guid>
    <title>golang调用Windows API</title>
    <link>https://ningto.com/blog/2020/20200601083849</link>
    <description>文章介绍 golang 可调用 Windows API 及换壁纸 demo。准备两张 bmp 图片，每 3 秒换一次。先通过 dll 获取 api 并缓存，注意参数写法及释放句柄。代码展示了相关函数调用，如显示消息和设置壁纸等，在 main 函数中循环设置壁纸。</description>
    <pubDate>Mon, 01 Jun 2020 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Go</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2020/20200516084920</guid>
    <title>外网访问mysql</title>
    <link>https://ningto.com/blog/2020/20200516084920</link>
    <description>将 mysql 部署在 Centos7 云服务器上，需登录控制台添加入站规则，开放防火墙端口，在 mysql 配置文件中修改设置并重启，最后进入命令行给用户授权，完成外网访问 mysql 的操作。</description>
    <pubDate>Sat, 16 May 2020 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Database</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2020/20200515080420</guid>
    <title>MySQL基础操作快速入门</title>
    <link>https://ningto.com/blog/2020/20200515080420</link>
    <description>本文介绍 MySQL 基础操作，包括安装（Ubuntu、Centos）、使用 shell 访问、创建删除数据库（创建如“events”，删除命令）、使用数据库（先指定再查看表）、创建表（如“potluck”表结构）、插入数据、更新数据（改“Sandy”确认状态）、添加删除列、删除行等基本用法，对初学者有帮助。</description>
    <pubDate>Fri, 15 May 2020 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Database</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2020/20201210085107</guid>
    <title>mysql忘了密码 重置密码</title>
    <link>https://ningto.com/blog/2020/20201210085107</link>
    <description>忘记 MySQL 密码可通过编辑配置文件、重启 MySQL 后登录修改密码。先在[mysqld]下加 skip-grant-tables，重启后用特定命令修改密码，若仍有问题可再加两个操作，最后改回配置文件重启用新密码登录。</description>
    <pubDate>Thu, 14 May 2020 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Database</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2020/20200512074350</guid>
    <title>解决ssh登录远程服务器慢的问题</title>
    <link>https://ningto.com/blog/2020/20200512074350</link>
    null
    <pubDate>Tue, 12 May 2020 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Linux</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2020/20200505083328</guid>
    <title>goland2020.1含激活</title>
    <link>https://ningto.com/blog/2020/20200505083328</link>
    <description>这是关于 goland2020.1 激活的内容，提供下载地址、激活方式等，还介绍了 Post 结构体及相关数据库操作，先获取 jetbrains-agent.jar 并按步骤操作激活，支持两种注册方式，且适用于 Jetbrains 全系列版本，升级后可能需重启 IDE。</description>
    <pubDate>Tue, 05 May 2020 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Go</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2020/20201210085106</guid>
    <title>golang html、template模板继承（嵌套）实例</title>
    <link>https://ningto.com/blog/2020/20201210085106</link>
    <description>介绍 golang html、template 模板继承实例，定义 base.tmpl 基础模板及子模板 title、content 默认值，index.tmpl 和 post.tmpl 为其扩展，给出渲染接口及测试代码，本地测试时不同地址对应不同输出。</description>
    <pubDate>Mon, 04 May 2020 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Go</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2020/20200430101645</guid>
    <title>使用group by来统计每天产生的数据量</title>
    <link>https://ningto.com/blog/2020/20200430101645</link>
    <description>文章介绍使用 group by 统计每天流水表产生的数据量。通过截取 modify_time 的前 10 位作为日期，进行 group by 操作并按每天条数倒序排序，sql 写法如给出示例。</description>
    <pubDate>Thu, 30 Apr 2020 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Database</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2020/20200429013314</guid>
    <title>golang与qpid broker通信</title>
    <link>https://ningto.com/blog/2020/20200429013314</link>
    <description>文章介绍 golang 与 qpid broker 通信，使用 github.com/Azure/go-amqp 库，演示 sender 和 receiver 简单例子，还包括请求应答示例，通过 New 函数创建 handler 处理发送和接收消息，最后展示发送消息并处理应答的代码。</description>
    <pubDate>Wed, 29 Apr 2020 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Go</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2020/20200429075202</guid>
    <title>sync.WaitGroup增加timeout</title>
    <link>https://ningto.com/blog/2020/20200429075202</link>
    <description>文章介绍了使用 sync.WaitGroup 增加 timeout 的方法。通过封装 WaitGroup 实现超时机制，给出代码示例，测试时若超时时间大于任务时间则任务正常完成退出，小于则未执行完就退出。</description>
    <pubDate>Wed, 29 Apr 2020 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Go</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2020/20200428023807</guid>
    <title>获取本地IP地址</title>
    <link>https://ningto.com/blog/2020/20200428023807</link>
    <description>介绍获取本地 IP 地址的方法，C/C++中 Windows 和 Linux 平台都支持的代码，先通过不同方式获取，再给出 Qt 的写法，代码清爽，可获取本地 IP 地址。</description>
    <pubDate>Tue, 28 Apr 2020 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>cpp</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2020/20201210085102</guid>
    <title>amqp connection framing-error  Expected AMQP protocol header</title>
    <link>https://ningto.com/blog/2020/20201210085102</link>
    <description>解决连接 qqpidd 时报错的问题</description>
    <pubDate>Thu, 23 Apr 2020 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>cpp</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2020/20200419043118</guid>
    <title>给mongodb服务增加认证</title>
    <link>https://ningto.com/blog/2020/20200419043118</link>
    <description>文章介绍给 mongodb 服务增加认证的方法。先将数据库配置为 noauth:true 启动，创建用户并设置权限，再改为 auth:true 启动，客户端连接可通过 go 语言 mgo 框架或 Studio 3T 工具，需设置用户名、密码和认证数据库。</description>
    <pubDate>Sun, 19 Apr 2020 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>MongoDB</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2020/20200419061739</guid>
    <title>go channel缓冲的作用</title>
    <link>https://ningto.com/blog/2020/20200419061739</link>
    <description>文章介绍 go channel 缓冲作用，make chan 第二个参数设缓冲区大小，无缓冲时同步，有缓冲可提高数据传输效率。通过代码示例展示无缓冲、缓冲大小为 1 和大于 1 的情况及执行结果，强调要合理设置缓冲大小。</description>
    <pubDate>Sun, 19 Apr 2020 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Go</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2020/20200419120109</guid>
    <title>用脚本启停我的go程序</title>
    <link>https://ningto.com/blog/2020/20200419120109</link>
    <description>介绍用脚本启停 go 程序，程序用 go 语言编写并使用 go-daemon 库让进程后台运行，脚本取名为 bootstrap，可实现 build、start、stop、restart 等功能，通过 cat 获取 pid 进行相应操作。</description>
    <pubDate>Sun, 19 Apr 2020 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Go</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2020/20201210085104</guid>
    <title>ERROR  child process failed, exited with error number 62</title>
    <link>https://ningto.com/blog/2020/20201210085104</link>
    null
    <pubDate>Sun, 19 Apr 2020 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>MongoDB</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2020/20200301011533</guid>
    <title>go拓扑排序</title>
    <link>https://ningto.com/blog/2020/20200301011533</link>
    <description>拓扑排序用于确定依赖关系集中事物的发生顺序。文中以计算机课程学习为例，通过`topoSort`函数对课程前置关系进行排序，输出了学习课程的顺序，展示了拓扑排序在实际中的应用。</description>
    <pubDate>Sun, 01 Mar 2020 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Go</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2020/20200223014251</guid>
    <title>go模拟命令行文件拷贝命令</title>
    <link>https://ningto.com/blog/2020/20200223014251</link>
    <description>本文介绍用 Go 模拟命令行文件拷贝命令，提及熟悉 flag、bufio 等包及函数，代码实现了文件是否存在判断、创建拷贝文件等功能，通过 main 函数和测试示例展示了普通拷贝和强制拷贝的操作。</description>
    <pubDate>Sun, 23 Feb 2020 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Go</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2020/20200223155423</guid>
    <title>go反射</title>
    <link>https://ningto.com/blog/2020/20200223155423</link>
    <description>介绍了 Go 语言的反射相关内容。通过示例展示了打印结构体信息、修改结构体字段值等操作，如打印 User 结构体的字段和方法，修改 User 结构体中 Name 字段的值等，还展示了对基本变量的修改，体现了反射的强大功能。</description>
    <pubDate>Sun, 23 Feb 2020 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Go</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2019/20191210091455</guid>
    <title>keepalived实现服务高可用</title>
    <link>https://ningto.com/blog/2019/20191210091455</link>
    <description>文章介绍 keepalived 实现服务高可用，两台服务器部署同一程序，主服务挂则从服务接替，keepalived 提供虚拟 IP 让客户端无感知。文中给出两台机器配置 keepalived 及相关脚本等步骤，并通过访问不同 IP 验证，还提到可根据需求通过脚本自动处理服务切换等情况。</description>
    <pubDate>Tue, 10 Dec 2019 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Linux</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2019/20191206143913</guid>
    <title>git github代理</title>
    <link>https://ningto.com/blog/2019/20191206143913</link>
    <description>家里电脑下载 github 代码慢，用蓝灯。找到其 http proxy 地址 127.0.0.1:50705，通过 open_github_proxy.sh 和 close_github_proxy.sh 脚本可打开或关闭 github 代理，方便下载代码。</description>
    <pubDate>Fri, 06 Dec 2019 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Linux</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2019/20191203092256</guid>
    <title>双击exe阻止程序启动</title>
    <link>https://ningto.com/blog/2019/20191203092256</link>
    <description>文章介绍双击 exe 阻止程序启动的方法，不依赖传参，通过获取父进程 ID 判断是否为 explorer.exe 进程 ID 来实现。给出获取进程信息、按名称获取进程 ID、获取父进程 ID 的函数及示例代码。</description>
    <pubDate>Tue, 03 Dec 2019 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Windows</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2019/20191115052202</guid>
    <title>device-mapper-libs安装docker失败</title>
    <link>https://ningto.com/blog/2019/20191115052202</link>
    <description>在 centos7 安装 docker 所需包（如 device-mapper-libs 等）时失败，经删除旧包再安装等操作后成功，还设置了存储仓库并安装了社区版 docker 引擎，启动后验证正常。</description>
    <pubDate>Fri, 15 Nov 2019 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Linux</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2019/20191114114311</guid>
    <title>go mod graph 图表</title>
    <link>https://ningto.com/blog/2019/20191114114311</link>
    <description>通过“go mod graph”可输出工程模块依赖图，为更清晰展示用 Graphviz 工具生成图表。步骤为获取依赖关系、转换成 dot 文件、生成图表。文中展示了开发网站的模块依赖及实现源码，可找到本地图表或生成新图表。</description>
    <pubDate>Thu, 14 Nov 2019 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Go</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2019/20191113025657</guid>
    <title>go 获取bing壁纸地址</title>
    <link>https://ningto.com/blog/2019/20191113025657</link>
    <description>文章介绍通过 Go 语言获取必应壁纸地址，必应首页背景图每天更新且无直接下载处，需分析网页源代码。提供获取地址、下载及记录历史信息的代码，包含相关函数如 GetImageName 等，可实现获取壁纸并下载到本地。</description>
    <pubDate>Wed, 13 Nov 2019 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Go</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2019/20191105052304</guid>
    <title>golang Options可变参数接口设计</title>
    <link>https://ningto.com/blog/2019/20191105052304</link>
    <description>文章介绍 golang 中使用...Options 作为接口参数，以新建 exchange 为例，说明其优点是参数灵活、意义清晰，缺点是每个可选参数需提供函数，第一眼难明白怎么填，适合参数多的接口。</description>
    <pubDate>Tue, 05 Nov 2019 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Go</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2019/20191010073544</guid>
    <title>VritualBox centos NAT、Host-Only网络配置</title>
    <link>https://ningto.com/blog/2019/20191010073544</link>
    <description>文章介绍了 VirtualBox centos 的 NAT、Host-Only 网络配置。包括虚拟机安装步骤及相关截图，网络设置中 NAT 模式可外网访问和 ping 通主机但虚拟机间不通，Host-Only 模式需注意相关设置及重启，还提到通过 NAT 端口转发实现主机访问虚拟机。</description>
    <pubDate>Thu, 10 Oct 2019 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Linux</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2019/20191008034421</guid>
    <title>centos rpm使用方法</title>
    <link>https://ningto.com/blog/2019/20191008034421</link>
    <description>CentOS RPM 用于 Linux 软件管理，有五种操作模式。可通过多种命令进行安装（如 rpm -i）、查询（如 rpm -q）、卸载（如 rpm -e）、升级（如 rpm -U）和验证（如 rpm -V）。默认安装路径及其他命令也有介绍。</description>
    <pubDate>Tue, 08 Oct 2019 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Linux</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2019/20190929081026</guid>
    <title>centos基础环境准备</title>
    <link>https://ningto.com/blog/2019/20190929081026</link>
    <description>本文介绍 centos 基础环境准备，包括 ifconfig 网卡设置、crontab 编辑、hostname 修改、jdk 环境变量、ntp 时间同步、ulimit 修改、安装 vsftpd 及添加用户等操作，还涉及修改网络内核参数。</description>
    <pubDate>Sun, 29 Sep 2019 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Linux</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2019/20190927090437</guid>
    <title>QNetworkAccessManager http请求</title>
    <link>https://ningto.com/blog/2019/20190927090437</link>
    <description>文章介绍使用 QNetworkAccessManager 发起 http 请求，列举 get、post（表单形式）、post 上传文件三种场景及代码，包括设置请求头、构建请求数据等，还给出完整的 HttpRequest 类代码及相关信号槽。</description>
    <pubDate>Fri, 27 Sep 2019 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Qt</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2019/20190906093810</guid>
    <title>go 分批读取http应答数据</title>
    <link>https://ningto.com/blog/2019/20190906093810</link>
    <description>本文介绍 go 分批读取 http 应答数据的方法。通常用`ioutil.ReadAll`，但大文件时内存大且慢，需分批读。给出代码`ReadChunk`，注意读到`io.EOF`时继续读，用`chan`可单独开启 goroutine 下载并处理数据。</description>
    <pubDate>Fri, 06 Sep 2019 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Go</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2019/20190904074229</guid>
    <title>linux C++进程CPU占用100%排查</title>
    <link>https://ningto.com/blog/2019/20190904074229</link>
    <description>文章主要介绍 linux C++进程 CPU 占用 100%的排查方法。先通过 top -c 查看进程，若日志无异常则找到出现问题的线程 ID，用 gdb attach 目标进程，通过 info threads 找到对应线程，输入 thread 及编号后 bt 查看信息，最后 detach 退出调试。</description>
    <pubDate>Wed, 04 Sep 2019 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Linux</category><category>cpp</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2019/20190830024228</guid>
    <title>linux C++内存优化</title>
    <link>https://ningto.com/blog/2019/20190830024228</link>
    <description>总结：linux C++内存释放后进程内存未降，因系统内存分配原理，mmap释放后归还给系统，brk释放后若高地址内存块未释放则低地址内存块不还。可用 malloc_trim(0)强制归还给系统，还可通过 mallopt 优化内存。</description>
    <pubDate>Fri, 30 Aug 2019 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Linux</category><category>cpp</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2019/20190823052129</guid>
    <title>mysql备份、恢复表</title>
    <link>https://ningto.com/blog/2019/20190823052129</link>
    <description>本文介绍了 mysql 备份、恢复表的方法。包括备份单个表的不同方式（如普通 dump、远程 dump）及恢复语句，还提及备份恢复压缩表的相关操作（dump 时压缩、restore 时解压），方便用户进行数据库表管理。</description>
    <pubDate>Fri, 23 Aug 2019 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Database</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2019/20190814080522</guid>
    <title>centos7监控网卡流量</title>
    <link>https://ningto.com/blog/2019/20190814080522</link>
    <description>介绍 centos7 监控网卡流量的方法，需安装 iftop 后，通过 iftop -i eth0 查看网卡流量，还可监控特定 ip 流量（如 iftop -i eth0 -B -F 182.92.***.20），用 q 退出，界面说明清晰，eth0 为网卡。</description>
    <pubDate>Wed, 14 Aug 2019 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Linux</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2019/20190805060206</guid>
    <title>C++ 智能指针简单实现</title>
    <link>https://ningto.com/blog/2019/20190805060206</link>
    <description>这是 C++ 智能指针简单实现代码，仅用于学习，生产勿用。通过模板类`SmartPtr`及内部结构`Counter`实现计数功能。测试代码展示了其基本用法，包括对象创建、赋值和销毁等操作。</description>
    <pubDate>Mon, 05 Aug 2019 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>cpp</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2019/20190716072136</guid>
    <title>goquery基本用法</title>
    <link>https://ningto.com/blog/2019/20190716072136</link>
    <description>介绍 goquery 基本用法，用于处理网络拿到的网页文本数据。通过示例代码截取网页中 table 内容并转换为 markdown 格式，展示其便捷性，代码可从特定地址获取，运行后输出相应 markdown 内容。</description>
    <pubDate>Tue, 16 Jul 2019 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Go</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2019/20190716103252</guid>
    <title>什么是云计算，大数据，人工智能</title>
    <link>https://ningto.com/blog/2019/20190716103252</link>
    <description>文章详细介绍了云计算、大数据、人工智能。云计算最初实现资源管理灵活性，历经物理机、虚拟化等阶段发展到云计算，分为私有云和公有云；云计算不光管资源还管应用，通过 PaaS 层实现应用弹性；大数据拥抱云计算，从数据收集到处理分析等步骤，需聚合多台机器力量；人工智能拥抱大数据，从让机器懂人心到模拟大脑工作方式，神经网络需大数据平台计算。最终三者整合，在云计算平台上相互融合。</description>
    <pubDate>Tue, 16 Jul 2019 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Product</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2019/20190702103038</guid>
    <title>golang slice切片作为函数参数时的陷阱</title>
    <link>https://ningto.com/blog/2019/20190702103038</link>
    <description>Golang 中 slice 作为函数参数易掉陷阱。例 1 说明传参时 slice 被拷贝，函数内修改会影响原 slice；例 2 因 append 超出 cap 导致底层内存重分配及数据拷贝。正确方法是遵守规则，无返回参数不修改 slice，要修改则通过返回值返回，如需修改又不想改外值应深拷贝后再修改。</description>
    <pubDate>Tue, 02 Jul 2019 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Go</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2019/20190627092616</guid>
    <title>linux expect scp自动输入密码</title>
    <link>https://ningto.com/blog/2019/20190627092616</link>
    null
    <pubDate>Thu, 27 Jun 2019 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Linux</category><category>Shell</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2019/20190626064254</guid>
    <title>zookeeper单机集群部署</title>
    <link>https://ningto.com/blog/2019/20190626064254</link>
    <description>Apache ZooKeeper 是用于集群协调的服务，提供多种常见服务。单机集群部署需准备、配置文件（在 /usr/local 下新建 zkcluster 目录及相关文件），然后启动三个服务（./zkServer.sh start 对应配置文件），myid 为服务唯一标识，server 格式包含通信和选举端口。</description>
    <pubDate>Wed, 26 Jun 2019 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Linux</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2019/20190626072056</guid>
    <title>zookeeper c client封装</title>
    <link>https://ningto.com/blog/2019/20190626072056</link>
    <description>该文章实现了 zookeeper c 客户端封装，仅实现 master 选举及收到 master 切换通知、注册服务信息的需求。代码中定义了 ZKNode 类，包含创建节点、设置回调函数等操作的相关函数，通过 zookeeper 相关接口实现与 zookeeper 的交互。</description>
    <pubDate>Wed, 26 Jun 2019 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Linux</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2019/20190617145947</guid>
    <title>go showapi.com接口</title>
    <link>https://ningto.com/blog/2019/20190617145947</link>
    <description>介绍 go showapi.com 接口，用 go 封装其提供的三个接口，获取组装后的 url、http 请求返回字符串及 json。给出示例代码，如获取文本笑话的用法。</description>
    <pubDate>Mon, 17 Jun 2019 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Go</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2019/20190615160126</guid>
    <title>go http get post json</title>
    <link>https://ningto.com/blog/2019/20190615160126</link>
    <description>本文介绍 go 中 get 和 post 请求的 json 格式封装。get 用 HttpGetJson 函数，post 较复杂用 HttpPostJson 函数，都通过 marshal 处理数据，用法举例清晰，注意 resp 为根据 json 应答定义的 struct 。</description>
    <pubDate>Sat, 15 Jun 2019 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Go</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2019/20190612102936</guid>
    <title>corosync + pacemaker高可用部署</title>
    <link>https://ningto.com/blog/2019/20190612102936</link>
    <description>本文介绍了 corosync + pacemaker 高可用部署，包括两者简介、基础环境准备（主机名设置、防火墙关闭等）、集群部署（安装相关软件、修改配置文件等）及 CRM 配置（增加虚拟 IP 资源、服务资源及分组等），通过这些步骤可实现高可用服务。</description>
    <pubDate>Wed, 12 Jun 2019 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Linux</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2019/20190611010546</guid>
    <title>linux 解压缩（.tar .tar.gz .gz .rar .zip）</title>
    <link>https://ningto.com/blog/2019/20190611010546</link>
    <description>文章介绍 linux 解压缩（.tar.tgz.gz.rar.zip），给出 tar 命令及参数，如 -c 建包、-x 解压等，还列举多种压缩格式（如 tar、gz、bz2 等）及相应解压命令，方便用户在 linux 系统中进行文件压缩解压操作。</description>
    <pubDate>Tue, 11 Jun 2019 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Linux</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2019/20190608154134</guid>
    <title>go 第三方github登录</title>
    <link>https://ningto.com/blog/2019/20190608154134</link>
    <description>文章介绍了 go 第三方 github 登录的实现步骤。先在 github 新建 oauth app 获相关信息，通过 html 标签和路由实现点击 github 登录，再处理 github 登录成功后的回调，获取 access token 及用户信息，判断并处理用户，将 token 保存在 session 中，还定义了 github 返回的 json 应答结构体。</description>
    <pubDate>Sat, 08 Jun 2019 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Go</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2019/20190601030144</guid>
    <title>Redis 的各项功能解决了哪些问题？</title>
    <link>https://ningto.com/blog/2019/20190601030144</link>
    <description>Redis 是基于 BSD 开源项目，可作数据库等使用，支持多种数据类型及多种功能。从简单缓存到服务端 Redis（含持久化、哨兵和复制、集群等），再到客户端 Redis（数据类型、事务等），逐步进化为高可用、分布式存储系统，各功能旨在解决不同场景下的问题。</description>
    <pubDate>Sat, 01 Jun 2019 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Database</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2019/20190601054113</guid>
    <title>让你提高效率的Linux技巧</title>
    <link>https://ningto.com/blog/2019/20190601054113</link>
    <description>文章介绍了让 Linux 效率提升的技巧，包括命令编辑（如用 ^a、^e、^w 操作光标等）、使用别名登录远程机器、冻结解冻终端界面、复用命令（通过历史缓冲区等）、查看日志并动态显示更新、寻求帮助（加 --help 选项）、谨慎删除文件（设别名确认）、关闭别名、使用 sudo 及更复杂技巧（编写脚本或函数）等，配合这些可获更好体验。</description>
    <pubDate>Sat, 01 Jun 2019 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Linux</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2019/20190601055825</guid>
    <title>git常用命令</title>
    <link>https://ningto.com/blog/2019/20190601055825</link>
    <description>总结：介绍 git 常用命令，包括分支操作（如 push、pull、checkout 等）、暂存操作、回退操作、常规操作、创建项目仓库、忽略及取消忽略文件、拉取上传免密码等，详细列举各操作的具体命令及用法。</description>
    <pubDate>Sat, 01 Jun 2019 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Tools</category><category>Tips</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2019/20190601060615</guid>
    <title>超实用的 Nginx 极简教程，覆盖了常用场景</title>
    <link>https://ningto.com/blog/2019/20190601060615</link>
    <description>这是超实用 Nginx 极简教程，覆盖常用场景。介绍了 Nginx 相关知识，包括安装使用、配置实战（如 http 反向代理、负载均衡、多 webapp 配置等）、https 反向代理、静态站点配置、搭建文件服务器及跨域解决方案等，内容详细且实用。</description>
    <pubDate>Sat, 01 Jun 2019 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Linux</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2019/20191210091504</guid>
    <title>vi、vim键盘图</title>
    <link>https://ningto.com/blog/2019/20191210091504</link>
    <description>2019 年 6 月 1 日的“vi、vim 键盘图”文章，含简体中文版、英文版、程序员定制版图片，若图片未显示可右键选“复制图片链接”粘贴至浏览器地址栏查看。</description>
    <pubDate>Sat, 01 Jun 2019 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Linux</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2019/20190521013636</guid>
    <title>VirtualBox Centos6 安装增强功能设置共享文件夹</title>
    <link>https://ningto.com/blog/2019/20190521013636</link>
    <description>介绍 VirtualBox Centos6 安装增强功能及设置共享文件夹步骤：先安装必要工具、重启虚拟机，选 VBoxGuestAdditions.iso 挂载光驱，运行安装脚本，设置共享文件夹并挂载，若遇错误可执行特定命令，最后查看共享目录。</description>
    <pubDate>Tue, 21 May 2019 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Linux</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2019/20190519155441</guid>
    <title>go代理 golang代理 GOPROXY</title>
    <link>https://ningto.com/blog/2019/20190519155441</link>
    <description>文章介绍了 go 代理相关内容，包括用 dep ensure 安装第三方库失败需设置代理，可使用微软代理或 Shadowsocks-X 软件代理，设置命令行代理需注意相关环境变量及端口等，还介绍了 linux 版本的设置步骤。</description>
    <pubDate>Sun, 19 May 2019 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Go</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2019/20190512094328</guid>
    <title>go logger</title>
    <link>https://ningto.com/blog/2019/20190512094328</link>
    <description>简单封装 go log ，有四个日志等级，可满足基本业务需求。通过 github.com/robfig/cron 每天生成新日志文件，示例代码展示了初始化和使用方法。</description>
    <pubDate>Sun, 12 May 2019 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Go</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2019/20190512154307</guid>
    <title>go json解析</title>
    <link>https://ningto.com/blog/2019/20190512154307</link>
    <description>文章介绍 go 解析 json 需先定义结构体，以获取豆瓣电影信息接口为例，定义了相应结构体 Response 并给出完整代码，通过 http.Get 获取接口数据，用 json.NewDecoder 解码后可获取并打印所需字段值，如 res.Subject[0].Rating 等。</description>
    <pubDate>Sun, 12 May 2019 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Go</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2019/20190511021928</guid>
    <title>go 连接池</title>
    <link>https://ningto.com/blog/2019/20190511021928</link>
    <description>文章介绍了 go 的连接池，包括使用场景、创建及相关操作函数。如 New 函数创建池子，Acquire 获取资源，Release 归还资源，Close 关闭池子。通过 main 函数中模拟数据库连接操作展示了连接池的使用。</description>
    <pubDate>Sat, 11 May 2019 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Go</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2019/20190511045437</guid>
    <title>go queue</title>
    <link>https://ningto.com/blog/2019/20190511045437</link>
    <description>文章介绍 go 语言实现的队列，元素用 interface ，有 Push、Pop、Front、Size 方法。通过代码展示了队列的基本操作，先压入四个元素，再循环取出，无元素时结束，代码简洁实用。</description>
    <pubDate>Sat, 11 May 2019 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Go</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2019/20190511103820</guid>
    <title>go 工作池 连接池</title>
    <link>https://ningto.com/blog/2019/20190511103820</link>
    <description>介绍了 go 的工作池和连接池。工作池类似线程池，通过 chan 和 defer 封装，可不断丢任务让多个线程处理；连接池用于管理数据库连接等，创建销毁代价大，通过特定结构和方法实现获取、关闭和释放连接。示例代码清晰展示其用法。</description>
    <pubDate>Sat, 11 May 2019 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Go</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2019/20190510090111</guid>
    <title>go常见排序方法</title>
    <link>https://ningto.com/blog/2019/20190510090111</link>
    <description>文章介绍 golang 常见排序方法，包括整型、字符串和结构体。整型和字符串有简洁排序写法，结构体可通过切片函数按名字或年龄排序及倒序排序，展示了不同类型排序的示例及结果。</description>
    <pubDate>Fri, 10 May 2019 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Go</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2019/20190508083405</guid>
    <title>go学习代码片段</title>
    <link>https://ningto.com/blog/2019/20190508083405</link>
    <description>本文包含多个 Go 学习代码片段，如斐波那契数列的闭包、非闭包和递归实现，IP 地址格式输出，简单 HTTP 服务器及路由，go chan defer 组合、超时任务处理和访问 MySQL 等，展示了 Go 语言的多种特性和用法。</description>
    <pubDate>Wed, 08 May 2019 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Go</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2019/20190507093145</guid>
    <title>vscode go插件安装失败</title>
    <link>https://ningto.com/blog/2019/20190507093145</link>
    <description>vscode go 插件安装失败，因本地无 golang tools 致其他插件安装也失败。可手动从 github 下载，先查看 GOPATH 目录，再在 go/src 下新建 golang.org 目录并 clone tools，之后安装插件可能成功，有诸多开发便利。</description>
    <pubDate>Tue, 07 May 2019 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Go</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2019/20190505090953</guid>
    <title>MySQL的查询优化</title>
    <link>https://ningto.com/blog/2019/20190505090953</link>
    <description>MySQL 查询优化包括架构理解、查询过程及各阶段细节，如客户端/服务端通信协议、查询缓存等。还给出性能优化建议，如 Scheme 设计与数据类型优化、创建高性能索引（介绍 B+Tree 等相关数据结构和算法及高性能策略）、特定类型查询优化（COUNT()、关联查询、LIMIT 分页、UNION 等）。最后留两个思考题，参考资料丰富。</description>
    <pubDate>Sun, 05 May 2019 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Database</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2019/20190502164323</guid>
    <title>有什么你一看到就蹦起来找本子摘抄的句子或台词？</title>
    <link>https://ningto.com/blog/2019/20190502164323</link>
    <description>这是 100 句让人一看到就想找本子摘抄的句子或台词，涵盖生活、爱情、哲理等多个方面，如“我啊，长到这么大，特别想回到过去，抱抱那个小时候自己”“能够让你后悔的，从来不是你做过的事，而是你想做却没有去做的事”等，表达细腻且富有深意。</description>
    <pubDate>Thu, 02 May 2019 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Life</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2019/20191210091503</guid>
    <title>C++ 的门门道道</title>
    <link>https://ningto.com/blog/2019/20191210091503</link>
    <description>C++是系统级语言，易学难精。文章介绍其高级特性、常见误解及易错点，如全局变量构造析构顺序、局部变量初始化、std::sort 比较函数等，还涉及 vector 底层实现等 32 个方面，帮助提升对 C++的了解与编程效率。</description>
    <pubDate>Thu, 02 May 2019 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>cpp</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2019/20190425054539</guid>
    <title>nginx清理缓存</title>
    <link>https://ningto.com/blog/2019/20190425054539</link>
    <description>更新 js 文件后不生效，怀疑 nginx，重启仍有问题。放弃 nginx_ngx_cache_purge 模块，采用清理服务器上 nginx 缓存目录的方法，找到缓存目录 /var/ngcache 并删除，同时可重启 nginx 或强制杀死进程后启动，最后清理浏览器缓存即可。</description>
    <pubDate>Thu, 25 Apr 2019 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Web</category><category>Linux</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2019/20190419020910</guid>
    <title>C++保证指针对象正确的销毁</title>
    <link>https://ningto.com/blog/2019/20190419020910</link>
    <description>C++中保证指针对象正确销毁，可通过 RAII 惯用法或 std::unique_ptr。RAII 需自定义类保证对象在作用域结束时销毁，std::unique_ptr 可自动管理对象并在离开作用域时释放，还可自定义销毁函数，能更方便地处理资源管理。</description>
    <pubDate>Fri, 19 Apr 2019 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>cpp</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2019/20190419025218</guid>
    <title>boost asio获取本机IP地址</title>
    <link>https://ningto.com/blog/2019/20190419025218</link>
    <description>文章介绍 boost asio 获取本机 IP 地址的代码，只获取 IPV4 地址且多个用分号间隔。在 Linux 上原方法可能失败，给出 Linux 上获取本地 IP 的代码，通过遍历 ifaddrs 获取 IPv4 和 IPv6 地址。</description>
    <pubDate>Fri, 19 Apr 2019 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>cpp</category><category>Boost</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2019/20190414053939</guid>
    <title>本站鼠标滑动效果（仙尘光标）</title>
    <link>https://ningto.com/blog/2019/20190414053939</link>
    <description>本文介绍本站的仙尘光标鼠标滑动效果，2019 年 4 月愚人节从 stackoverflow 看到后截取代码，html 标签为`&lt;span class=&quot;js-cursor-container&quot;&gt;&lt;/span&gt;`，js 代码可实现鼠标移动时产生粒子效果，代码中有相关函数及粒子属性设置。</description>
    <pubDate>Sun, 14 Apr 2019 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Javascript</category><category>Web</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2019/20190412093534</guid>
    <title>linux 简单服务启动、关闭脚本</title>
    <link>https://ningto.com/blog/2019/20190412093534</link>
    <description>介绍了 linux 简单服务启动、关闭脚本，目录结构下有启动脚本 start.sh 和关闭脚本 stop.sh。start.sh 先检查进程，获取脚本目录、可执行程序目录和依赖库目录，设置环境后后台运行程序；stop.sh 直接 kill 进程。简单解释了获取进程 ID 等操作。</description>
    <pubDate>Fri, 12 Apr 2019 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Linux</category><category>Shell</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2019/20190412095721</guid>
    <title>qpid C++接口简单封装</title>
    <link>https://ningto.com/blog/2019/20190412095721</link>
    <description>介绍 qpid C++接口简单封装，处理队列、订阅消息，发送同步、异步、推送消息的方法及示例代码，简单易用，满足大部分场景，源码在[github 源码](https://github.com/tujiaw/qpid-example)。</description>
    <pubDate>Fri, 12 Apr 2019 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>cpp</category><category>MQ</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2019/20190402103718</guid>
    <title>关于Node.js后端架构的一点后知后觉</title>
    <link>https://ningto.com/blog/2019/20190402103718</link>
    <description>分享 Node.js 后端架构的后知后觉，与淘宝前端七念老师交流后获启发。后端服务需满足容错和可扩展特性，拓展分为 X、Y、Z 轴，文中重点阐述 X 轴拓展的多进程模式及相关细节，如负载均衡和状态共享，还介绍微服务架构解决单体架构问题，微服务是解耦思想实践，最后强调应学习前辈经验。</description>
    <pubDate>Tue, 02 Apr 2019 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Node.js</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2019/20190401063851</guid>
    <title>Linux常用命令大全</title>
    <link>https://ningto.com/blog/2019/20190401063851</link>
    <description>介绍 Linux 常用命令，包括清理缓存、查看 OOM killer 等系统相关命令，以及 ls、cd、pwd 等目录操作命令，还有 touch、rm 等文件操作命令，及权限管理、用户操作等方面的命令，还提及帮助命令、查找命令、压缩解压等操作，以及关机重启、挂载网络等命令。</description>
    <pubDate>Mon, 01 Apr 2019 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Linux</category><category>Shell</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2019/20190401065210</guid>
    <title>泪流满面的 11 个 Git 面试题</title>
    <link>https://ningto.com/blog/2019/20190401065210</link>
    <description>文章介绍了 11 个 Git 面试题及答案，包括 Git 复刻、分支、克隆等概念区别，拉取请求与分支区别，git pull 和 git fetch 差异，恢复先前提交方法，git cherry-pick 用途，Forking 工作流程优点，HEAD 等概念区别，Gitflow 工作流程，git stash 使用场景，删除文件不删系统文件方法，以及何时用 git rebase 代替 git merge 等，对 Git 相关知识进行了全面梳理。</description>
    <pubDate>Mon, 01 Apr 2019 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Tools</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2019/20190329044618</guid>
    <title>Apache Ignite c++ linux 编译安装</title>
    <link>https://ningto.com/blog/2019/20190329044618</link>
    <description>介绍 Apache Ignite c++在 linux 下的编译安装，包括环境设置、编译过程（可能出现的多种错误及解决办法）、安装及验证，还给出了 demo 链接，需注意不要直接拉 github 代码编译，要从官网下载。</description>
    <pubDate>Fri, 29 Mar 2019 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Linux</category><category>cpp</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2019/20190327003450</guid>
    <title>QSortFilterProxyModel排序不正确</title>
    <link>https://ningto.com/blog/2019/20190327003450</link>
    <description>客户端使用 QSortFilterProxyModel 时，频繁更新 model 致 table 行排序不正确。虽可手动调用 sort 及 invalidate，却在特定操作时会崩溃。可关 dynamicSortFilter 用 Timer 控制排序，通过相关函数控制触发间隔及在 model changed 槽函数启动 timer 来解决此问题。</description>
    <pubDate>Wed, 27 Mar 2019 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Windows</category><category>cpp</category><category>Qt</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2019/20190327061343</guid>
    <title>JavaScript 栈、队列</title>
    <link>https://ningto.com/blog/2019/20190327061343</link>
    <description>介绍了 JavaScript 中的栈和队列，分别用代码实现其基本操作。还提到字符串拼接的常见问题及使用 join 方法解决，join 方法避免了过多中间字符串和连接操作，执行更快。</description>
    <pubDate>Wed, 27 Mar 2019 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Javascript</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2019/20190316120337</guid>
    <title>MAC WIFI连上了但是不能上网</title>
    <link>https://ningto.com/blog/2019/20190316120337</link>
    <description>更新系统后，MAC 的 WIFI 能连上却不能上网，重置网络和重启机器都无效。后找到可连接的 wifi 打开网页，再切换回原 wifi 又可使用，没可连 wifi 时用手机开热点连笔记本即可。</description>
    <pubDate>Sat, 16 Mar 2019 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Tips</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2019/20190305090048</guid>
    <title>Qt什么时候用activateWindow</title>
    <link>https://ningto.com/blog/2019/20190305090048</link>
    <description>在 Qt 中，show 用于显示窗口，raise 可将窗口置于最前。但主窗口点击时子窗口可能遮挡，此时需用 activateWindow 和 raise 解决。show 显示窗口及子窗口，showNormal 恢复最大化或最小化窗口，raise 提升窗口，activateWindow 设置活动窗口并可与 raise 配合确保窗口置顶。</description>
    <pubDate>Tue, 05 Mar 2019 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Windows</category><category>Qt</category><category>cpp</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2019/20190219032646</guid>
    <title>mysql CPU一直占用过高</title>
    <link>https://ningto.com/blog/2019/20190219032646</link>
    <description>文章主要讲 mysql CPU 一直占用过高及简单解决方法。先登录 mysql 显示处理列表，发现某个 Query 状态异常，kill 掉查询 ID 后 CPU 占用率下降，此为临时解决方法，具体原因需具体分析。</description>
    <pubDate>Tue, 19 Feb 2019 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Linux</category><category>Database</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2019/20191210091501</guid>
    <title>解决多线程处理相同产品造成的数据错乱问题</title>
    <link>https://ningto.com/blog/2019/20191210091501</link>
    <description>文章主要解决多线程处理相同产品数据错乱问题，介绍两种方法。方法一是将相同产品 ID 消息放同一线程处理，分配 n 个 Worker 按序执行；方法二是收到消息时上锁，只锁产品，相同产品只允许一个线程处理，代码分别给出两种方法的实现。</description>
    <pubDate>Mon, 18 Feb 2019 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>cpp</category><category>Linux</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2019/20190124103912</guid>
    <title>C++保证函数能在超时时间内返回</title>
    <link>https://ningto.com/blog/2019/20190124103912</link>
    <description>介绍 C++保证函数在超时时间内返回的方法。通过两个接口 execTimeout 实现，利用 shared_from_this 避免智能指针释放，启动新线程执行函数，demo 展示正常返回和超时返回，代码包含 TimeoutGuard 类的实现。</description>
    <pubDate>Thu, 24 Jan 2019 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>cpp</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2019/20191210091502</guid>
    <title>C、C++ 跨平台获取当前进程内存</title>
    <link>https://ningto.com/blog/2019/20191210091502</link>
    <description>文章介绍跨平台获取当前进程内存，“Resident set size”很重要。提供了获取进程峰值和当前驻留集大小的函数，在不同操作系统（如 Windows、Linux 等）有不同实现方式，给出了相应源码。</description>
    <pubDate>Thu, 17 Jan 2019 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>cpp</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2018/20181223030336</guid>
    <title>vi、vim常用功能键</title>
    <link>https://ningto.com/blog/2018/20181223030336</link>
    <description>总结：介绍 vi、vim 常用功能键，包括移动光标、翻页、跳转、搜索、删除复制粘贴、模式切换及 vim 环境变更等，如 h/j/k/l 移动，ctrl+f/b 翻页等，功能丰富实用。</description>
    <pubDate>Sun, 23 Dec 2018 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Linux</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2018/20181220014221</guid>
    <title>STL容器循环erase迭代器失效</title>
    <link>https://ningto.com/blog/2018/20181220014221</link>
    <description>文章介绍 STL 容器循环 erase 迭代器失效，以 std::map 为例，给出 C++11 和 C++03 两种写法。C++03 中 iter++可避免迭代器失效，而 C++11 写法在某些 linux 编译器不支持，同时指出错误写法会造成崩溃。</description>
    <pubDate>Thu, 20 Dec 2018 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>cpp</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2018/20181214105709</guid>
    <title>qpid笔记</title>
    <link>https://ningto.com/blog/2018/20181214105709</link>
    <description>介绍 qpid 相关笔记，包括查看队列及连接信息、删除队列、qpid-tool 用法、消息处理相关操作（如 session.acknowledge、session.sync）及不同类型 exchange（queue、topic）的特点和使用方式。</description>
    <pubDate>Fri, 14 Dec 2018 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>cpp</category><category>MQ</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2018/20181128142804</guid>
    <title>linux实用命令备忘录</title>
    <link>https://ningto.com/blog/2018/20181128142804</link>
    <description>这是 linux 实用命令备忘录，包含查看进程是否存在、端口占用、端口连接数、进程线程数等命令，还有 nginx 相关操作及 shell 脚本获取当前路径等，以及查看运行进程所在目录和目录文件大小的命令。</description>
    <pubDate>Wed, 28 Nov 2018 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Linux</category><category>Shell</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2018/20181127011300</guid>
    <title>linux问题汇总</title>
    <link>https://ningto.com/blog/2018/20181127011300</link>
    null
    <pubDate>Tue, 27 Nov 2018 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Linux</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2018/20181127052642</guid>
    <title>qpid-cpp Windows编译</title>
    <link>https://ningto.com/blog/2018/20181127052642</link>
    <description>介绍 qpid-cpp Windows 编译，需先安装 boost 等，下载源码解压后用 CMake 配置，因缺 boost 设 BOOST_ROOT 路径，后用 vs 编译 ALL_BUILD 和 INSTALL，即便有 setlocal 错误，qpid-cpp 也已安装在 C:\Program Files (x86)\qpid-cpp 目录下。</description>
    <pubDate>Tue, 27 Nov 2018 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Windows</category><category>cpp</category><category>MQ</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2018/20181022020627</guid>
    <title>简单shell守护脚本——mongodb</title>
    <link>https://ningto.com/blog/2018/20181022020627</link>
    <description>本文展示了一个监控MongoDB进程并在崩溃时自动重启的Shell脚本实现。</description>
    <pubDate>Mon, 22 Oct 2018 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Linux</category><category>Shell</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2018/20181019103833</guid>
    <title>中国诗词写入mongodb</title>
    <link>https://ningto.com/blog/2018/20181019103833</link>
    <description>本文展示如何使用Mongoose将中国古诗词JSON数据导入MongoDB数据库，包含模型定义和数据处理过程。</description>
    <pubDate>Fri, 19 Oct 2018 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Node.js</category><category>MongoDB</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2018/20181015092408</guid>
    <title>Qt 客户端应用程序多开要注意的问题</title>
    <link>https://ningto.com/blog/2018/20181015092408</link>
    <description>Qt 客户端多开需注意本地配置、进程名及全局信息。可通过 RunGuard 类保证同一程序仅运行一个进程，多开时要保证目录和进程名不同，若已有进程运行则打开其主窗口。</description>
    <pubDate>Mon, 15 Oct 2018 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>cpp</category><category>Qt</category><category>Windows</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2018/20180929061745</guid>
    <title>bug修复，浮点型计算</title>
    <link>https://ningto.com/blog/2018/20180929061745</link>
    <description>本文讨论C++浮点型计算的陷阱，特别是浮点型转整型时会丢失小数部分，并推荐使用C++11的std::lround函数来正确处理转换。</description>
    <pubDate>Sat, 29 Sep 2018 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>cpp</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2018/20180928063457</guid>
    <title>koa2处理get,post参数的常见方式</title>
    <link>https://ningto.com/blog/2018/20180928063457</link>
    <description>koa2 处理 get、post 参数常见方式：url 传参通过路由和 ctx 获取；表单 post 用 ctx.request.body 获表单参数；ajax post 若 data 为对象可直接获取，若为字符串需解析。多种请求应答处理参数方法已列举。</description>
    <pubDate>Fri, 28 Sep 2018 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Javascript</category><category>Node.js</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2018/20181223030338</guid>
    <title>Qt connect函数参数Qt  ConnectionType的使用场景</title>
    <link>https://ningto.com/blog/2018/20181223030338</link>
    <description>Qt connect 函数的 Qt::ConnectionType 参数决定信号投递和槽函数执行方式。有 Auto、Direct、Queued、BlockingQueued、Unique 等值，分别对应不同线程下的信号槽处理情况，可根据需求选择使用。</description>
    <pubDate>Tue, 25 Sep 2018 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>cpp</category><category>Qt</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2018/20180905015332</guid>
    <title>Javascript小技巧</title>
    <link>https://ningto.com/blog/2018/20180905015332</link>
    <description>总结：介绍了多种 Javascript 技巧，如删除数组尾部元素、使用对象解构模拟命名参数等，还涵盖了在 Switch 语句中用范围值、await 多个 async 函数等内容，涵盖全面且实用。</description>
    <pubDate>Wed, 05 Sep 2018 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Javascript</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2018/20180903091740</guid>
    <title>React session</title>
    <link>https://ningto.com/blog/2018/20180903091740</link>
    <description>介绍了 React session 的实现方式，包括服务端支持的请求及封装的 AuthService.js，用高阶组件 withAuth 方便组件使用，还给出了登录页面 Login.js 等示例，灵感来自 react-with-styles 且建议用 next-with-auth 库更好。</description>
    <pubDate>Mon, 03 Sep 2018 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>React</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2018/20180903093400</guid>
    <title>比较QKeyEvent和shortcut的按键信息</title>
    <link>https://ningto.com/blog/2018/20180903093400</link>
    <description>文章主要比较 QKeyEvent 和 shortcut 的按键信息，通过 setShortcut 给 button 设置快捷方式，用 QKeyEvent 的 modifiers 和 key 函数获取按键，将其转换为 QKeySequence 后与 shortcut 比较，经处理使格式一致，常见组合键判断没问题但不排除特殊情况。</description>
    <pubDate>Mon, 03 Sep 2018 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>cpp</category><category>Qt</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2018/20180816015746</guid>
    <title>CMake简单用法</title>
    <link>https://ningto.com/blog/2018/20180816015746</link>
    <description>介绍 CMake 简单用法，包括静态库、动态库、可执行程序及多工程模板。静态库通过特定 CMakeLists.txt 编译生成 libstatic_math.a；动态库类似，将 STATIC 改为 SHARED；可执行程序使用静态库和动态库需添加头文件目录等；多工程模板有主 CMakeLists.txt 及各子工程 CMakeLists.txt。</description>
    <pubDate>Thu, 16 Aug 2018 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Tools</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2018/20181223030337</guid>
    <title>is_block_type_valid 断言错误</title>
    <link>https://ningto.com/blog/2018/20181223030337</link>
    null
    <pubDate>Thu, 02 Aug 2018 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>cpp</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2018/20180716074125</guid>
    <title>JAVA8 十大新特性详解</title>
    <link>https://ningto.com/blog/2018/20180716074125</link>
    <description>Java8 十大新特性详解：默认方法、Lambda 表达式、函数式接口、方法与构造函数引用、Lambda 作用域、Stream 接口等。新 API 如日期 API 更便捷，还支持多重注解，提升开发效率，有众多实用内容待发掘。</description>
    <pubDate>Mon, 16 Jul 2018 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Java</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2018/20180713020055</guid>
    <title>一张图展示google c++ 代码规范</title>
    <link>https://ningto.com/blog/2018/20180713020055</link>
    <description>本文通过一张图展示Google C++代码规范，包含命名规则、代码结构和注释风格等内容。</description>
    <pubDate>Fri, 13 Jul 2018 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>cpp</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2018/20180713101633</guid>
    <title>AStyle格式化代码</title>
    <link>https://ningto.com/blog/2018/20180713101633</link>
    <description>本文介绍如何使用Node.js脚本调用AStyle.exe批量格式化C/C++代码文件，包含配置和使用方法。</description>
    <pubDate>Fri, 13 Jul 2018 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Windows</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2018/20180702073359</guid>
    <title>windows安装包制作</title>
    <link>https://ningto.com/blog/2018/20180702073359</link>
    <description>本文介绍用 Qt 官方的 qt-installer-framework 制作 Windows 安装包，给出主要目录结构及各文件内容，如 config.xml、package.xml 等，还说明了放置应用程序文件及打包命令等，最后提供目录结构和制作后的安装包下载地址。</description>
    <pubDate>Mon, 02 Jul 2018 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Windows</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2018/20180629060934</guid>
    <title>visual studio中props文件用法</title>
    <link>https://ningto.com/blog/2018/20180629060934</link>
    <description>在 visual studio 中，.props 文件可固定工程配置，方便下次使用。其内容包含库目录宏定义等，导入到 vcxproj 文件只需在后者中用&lt;Import Project=&quot;$(SolutionDir)asio.props&quot;/&gt;等语句。</description>
    <pubDate>Fri, 29 Jun 2018 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Windows</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2018/20180625063630</guid>
    <title>解决github慢的问题</title>
    <link>https://ningto.com/blog/2018/20180625063630</link>
    <description>这篇文章介绍了如何解决GitHub下载速度慢的问题。作者通过查询GitHub域名对应的IP地址，并修改Windows系统的hosts文件，使得GitHub的下载速度大大提高。同时，文章还提供了在MAC电脑上修改hosts文件的步骤。最后，作者测试了修改后的效果，下载速度达到了400~500kiB/s。</description>
    <pubDate>Mon, 25 Jun 2018 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Windows</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2018/20180623230827</guid>
    <title>http升级到https</title>
    <link>https://ningto.com/blog/2018/20180623230827</link>
    <description>文章介绍 http 升级到 https 的过程，环境为腾讯云服务、nodejs 服务和 nginx 反向代理。包括获取免费 DVSSL 证书、上传证书到 nginx 目录、修改 conf 文件（改 80 服务为 443 并新增 80 强制跳转到 https 服务）及 nginx reload 等步骤。</description>
    <pubDate>Sat, 23 Jun 2018 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Web</category><category>Node.js</category><category>Linux</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2018/20180615013147</guid>
    <title>boost asio使用技巧</title>
    <link>https://ningto.com/blog/2018/20180615013147</link>
    <description>本文介绍了Boost.Asio库的使用技巧和基本概念，涵盖I/O服务、Proactor模型、缓冲区管理、I/O对象、信号处理、定时器和strand等功能。</description>
    <pubDate>Fri, 15 Jun 2018 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>cpp</category><category>Boost</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2018/20180611073200</guid>
    <title>字符串 单词 翻转</title>
    <link>https://ningto.com/blog/2018/20180611073200</link>
    <description>本文介绍字符串和单词翻转的实现方法，提供C++和C#的代码示例，展示如何通过分段反序实现特定翻转效果。</description>
    <pubDate>Mon, 11 Jun 2018 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>cpp</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2018/20180603040126</guid>
    <title>c++ 性能优化策略</title>
    <link>https://ningto.com/blog/2018/20180603040126</link>
    <description>总结 c++ 性能优化策略：从程序架构到具体细节，如避免过度继承、合理使用对象复合等；优化构造函数、变量定义等；善用内联、stl 等，还包括缓存、多线程等方面的技巧。</description>
    <pubDate>Sun, 03 Jun 2018 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>cpp</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2018/20180602150307</guid>
    <title>简单有理数(Rational)实现</title>
    <link>https://ningto.com/blog/2018/20180602150307</link>
    <description>本文展示了C++中有理数(Rational)类的实现方法，包含基本运算和相关功能。</description>
    <pubDate>Sat, 02 Jun 2018 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>cpp</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2018/20180519135047</guid>
    <title>C++惯用法</title>
    <link>https://ningto.com/blog/2018/20180519135047</link>
    <description>总结 C++ 相关内容：虚基类需 virtual 析构，std::auto_ptr 有风险用 unique_ptr 替代，重载 operator&amp;()用 std::addressof，不支持重载函数模板及名称空间问题，基类派生类成员变量初始化顺序等，还提到一些其他用法及注意事项。</description>
    <pubDate>Sat, 19 May 2018 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>cpp</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2018/20180518100809</guid>
    <title>C++ windows实用函数</title>
    <link>https://ningto.com/blog/2018/20180518100809</link>
    <description>收集 C++ Windows 实用函数，含头文件依赖，如获取系统内存等信息、字符串编码转换、目标是否存在等 17 个函数，涵盖内存、线程、时间、文件等方面操作，方便开发使用。</description>
    <pubDate>Fri, 18 May 2018 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>cpp</category><category>Windows</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2018/20180510143841</guid>
    <title>bug修复，for循环倒叙遍历的时候千万不要用size_t等无符号整型</title>
    <link>https://ningto.com/blog/2018/20180510143841</link>
    <description>2018 年 5 月 10 日的 C/C++相关文章指出，for 循环倒叙遍历勿用 size_t 等无符号整型，如上述代码，size_t 为无符号整型，i 为 0 时继续减会变为 UINT_MAX 导致越界崩溃，结论是逆序遍历用 int 别用 size_t。</description>
    <pubDate>Thu, 10 May 2018 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>cpp</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2018/20180509161721</guid>
    <title>C++ String正确实现以及关键点</title>
    <link>https://ningto.com/blog/2018/20180509161721</link>
    <description>本文介绍 C++ String 正确实现及关键点，包括构造函数等必要操作，列举要点如成员初始化列表顺序等，还给出简化代码及相关注意事项，如字符串需以&#39;\0&#39;结尾、赋值操作符参数传值等。</description>
    <pubDate>Wed, 09 May 2018 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>cpp</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2018/20180410112835</guid>
    <title>我的云服务器开机自启动所有服务</title>
    <link>https://ningto.com/blog/2018/20180410112835</link>
    <description>本文介绍了如何设置云服务器在重启后自动启动所有服务，实现服务部署自动化。</description>
    <pubDate>Tue, 10 Apr 2018 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Linux</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2018/20180328013908</guid>
    <title>CentOs7 防火墙firewalld基本使用方法</title>
    <link>https://ningto.com/blog/2018/20180328013908</link>
    <description>CentOs7 防火墙 firewalld 基本使用：启动、查看状态、停止、禁用用 systemctl 操作；还可通过 firewalld-cmd 配置，如查看版本等，开启端口用 firewall-cmd 加参数，重新载入及查看状态等操作也可实现。</description>
    <pubDate>Wed, 28 Mar 2018 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Linux</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2018/20180319095000</guid>
    <title>bug修复，内存释放问题</title>
    <link>https://ningto.com/blog/2018/20180319095000</link>
    <description>遇到 C/C++ 和 Qt 中的内存释放问题，操作复杂时释放会崩溃。通过保存待删指针，10 秒空闲时销毁解决。代码中定义 DelayDestory 类，提供实例获取及删除操作方法，通过定时器控制删除时机。</description>
    <pubDate>Mon, 19 Mar 2018 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>cpp</category><category>Qt</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2018/20180319100933</guid>
    <title>bug修复，解决延迟搜索的问题</title>
    <link>https://ningto.com/blog/2018/20180319100933</link>
    <description>文章主要讲 C/C++ 和 Qt 中解决输入框搜索延迟问题。通过设置 200 毫秒输入间隔时间，利用 Timer 控制搜索，先停止再重新开始计时，还优化了 Timer 触发逻辑，避免用户快速输入时带来问题。</description>
    <pubDate>Mon, 19 Mar 2018 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>cpp</category><category>Qt</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2018/20180309075802</guid>
    <title>Qt自定义Tooltip</title>
    <link>https://ningto.com/blog/2018/20180309075802</link>
    <description>文章介绍 Qt 自定义 Tooltip，从 QDialog 继承，设置无边框属性，鼠标点击其他处自动关闭及自动析构等操作。给出 tooltip.h 和 tooltip.cpp 源码，用法为 Tooltip::popup(QCursor::pos(), &quot;hello&quot;)。</description>
    <pubDate>Fri, 09 Mar 2018 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>cpp</category><category>Qt</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2018/20180225135521</guid>
    <title>react native中使用protobufjs</title>
    <link>https://ningto.com/blog/2018/20180225135521</link>
    <description>文章介绍 react native 中使用 protobufjs，需将 proto 文件转换为 json 载入，注意 lookupTypeOrEnum 查找 message 时 proto 中 enum 枚举类型会失败，还提到在不同系统降级 protobuf.js 版本的情况及相关代码片段。</description>
    <pubDate>Sun, 25 Feb 2018 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>React</category><category>Javascript</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2018/20180225140856</guid>
    <title>One of the sources for assign has an enumerable key on the prototype chain</title>
    <link>https://ningto.com/blog/2018/20180225140856</link>
    <description>在 react native 中拷贝对象遇“One of the sources for assign has an enumerable key on the prototype chain”错误。for 循环给 obj 赋值放入数组，使用 _.clone 后正常，之前用 {...obj} 或 Object.assign({}, obj) 会报错，改用 lodash 的 clone 就没问题。</description>
    <pubDate>Sun, 25 Feb 2018 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>React</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2018/20180216122310</guid>
    <title>10 种最常见的 Javascript 错误</title>
    <link>https://ningto.com/blog/2018/20180216122310</link>
    <description>文章介绍了 10 种最常见的 Javascript 错误，包括 Uncaught TypeError 等，分别阐述其产生原因及解决办法，如在初始化状态、处理 DOM 元素等场景中易出现错误，还提到不同浏览器错误提示不同及相关解决方法，最后强调 Rollbar 的重要性。</description>
    <pubDate>Fri, 16 Feb 2018 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Web</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2018/20180216235531</guid>
    <title>nginx url跳转保留路径</title>
    <link>https://ningto.com/blog/2018/20180216235531</link>
    <description>文章介绍了将老域名 http://3inns.cn 映射到新域名 http://ningto.com 且保留路径的方法。在 nginx 中通过配置 `server` 段的 `rewrite` 规则实现，最后重启 nginx 使配置生效。</description>
    <pubDate>Fri, 16 Feb 2018 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Product</category><category>Tools</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2018/20180114034028</guid>
    <title>腾讯云服务器CVM上部署nodejs服务</title>
    <link>https://ningto.com/blog/2018/20180114034028</link>
    <description>介绍了如何在腾讯云服务器CVM上部署Node.js服务，包括环境配置和部署步骤。</description>
    <pubDate>Sun, 14 Jan 2018 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Node.js</category><category>Web</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2018/20180109052544</guid>
    <title>QTableView多选</title>
    <link>https://ningto.com/blog/2018/20180109052544</link>
    <description>介绍了 QTableView 多选，需了解 setSelectionBehavior 和 setSelectionMode 接口。初始化后用特定代码达不到要求，需使用 select 接口的新用法，封装了 selectMulRows 方法实现多选。</description>
    <pubDate>Tue, 09 Jan 2018 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>cpp</category><category>Qt</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2018/20180106121608</guid>
    <title>ES6 class介绍</title>
    <link>https://ningto.com/blog/2018/20180106121608</link>
    <description>ES6 类主要提供方便语法创建老式构造函数，有类申明、类表达式等定义方式。类主体可定义成员，含严格模式、构造函数、原型方法、静态方法、getter 和 setter 方法等。还可继承，子类构造函数需调用 super，继承原型链有特定图表展示。</description>
    <pubDate>Sat, 06 Jan 2018 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Javascript</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2018/20180105014315</guid>
    <title>Qt回调到UI线程</title>
    <link>https://ningto.com/blog/2018/20180105014315</link>
    <description>桌面客户端主线程即 UI 线程，异步获取数据常在子线程，不能直接操作 UI。介绍两种将子线程数据抛到 UI 层处理的方法：一是调用和接收在一起，通过信号槽机制；二是调用和接收分开，用 signalDispatch 类以信号方式 emit 结果，可实现多个 UI 窗口数据同步。</description>
    <pubDate>Fri, 05 Jan 2018 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>cpp</category><category>Qt</category><category>Windows</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2018/20180101020657</guid>
    <title>谷歌是如何做代码审查的（转）</title>
    <link>https://ningto.com/blog/2018/20180101020657</link>
    <description>Google 重视代码审查，无程序可提交至代码库，所有人都要经过。其最大功用是社会性，让编程态度改变，传播知识。但需注意避免常见错误，如按自己编程习惯评判、为说而说、速度不当等，以确保代码审查有效。</description>
    <pubDate>Mon, 01 Jan 2018 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Product</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20171210125823</guid>
    <title>node.js中exports与module.exports区别</title>
    <link>https://ningto.com/blog/2017/20171210125823</link>
    <description>文章介绍 node.js 中 exports 与 module.exports 的区别。两种导出方式不同，给 exports 增加成员时两者一样，将对象赋值给 exports 时只有 module.exports 正确。原理是主调函数传参包装，exports 对 module.exports 是引用，混着用易出错，一般导出对象用 module.exports，其他用 exports。</description>
    <pubDate>Sun, 10 Dec 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Javascript</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20171203061242</guid>
    <title>mongodb replica set部署与测试</title>
    <link>https://ningto.com/blog/2017/20171203061242</link>
    <description>在 windows 一台机器上部署 3 个端口不同的副本集，先创建并初始化，再新增成员。通过 nodejs 测试，关闭主服务后写入数据会失败十几秒后自动补上，至少两个成员存活才能完成自动切换到 primary，副本集个数需满足“大多数”概念，奇数个至少 3 个，偶数个需部署仲裁者。</description>
    <pubDate>Sun, 03 Dec 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Database</category><category>MongoDB</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20171129134350</guid>
    <title>写代码怎能不会这些Linux命令？</title>
    <link>https://ningto.com/blog/2017/20171129134350</link>
    <description>这篇文章介绍 50 个常用 Linux 命令，如 tar、grep、find 等，每个命令都有简单示例说明用法，对学习 Unix/Linux 很重要，涵盖文件操作、进程管理等方面，对 Linux 初学者很有帮助。</description>
    <pubDate>Wed, 29 Nov 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Linux</category><category>Tips</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20171121022737</guid>
    <title>antd按需加载</title>
    <link>https://ningto.com/blog/2017/20171121022737</link>
    <description>Ant Design 是提升体验的中后台设计语言，react 首页渲染慢，按需加载的方法。</description>
    <pubDate>Tue, 21 Nov 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>React</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20171117140712</guid>
    <title>API设计原则(上)</title>
    <link>https://ningto.com/blog/2017/20171117140712</link>
    <description>介绍 Qt API 设计原则，包括一致、易掌握、强大等特质，如极简、完备等。强调静态多态和基于属性的 API，举例说明好、差及值得斟酌的案例，还提及属性间关联处理及特殊值或重置方法等，有原文链接及译文稿。</description>
    <pubDate>Fri, 17 Nov 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>cpp</category><category>Qt</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20171117140822</guid>
    <title>API设计原则(中)</title>
    <link>https://ningto.com/blog/2017/20171117140822</link>
    <description>总结：介绍 C++相关 API 设计原则，如值与对象（指针 vs 引用等）、虚函数（避免过度使用等）、关于 const（输入参数、返回值等方面），并提及 Qt 中的实践及相关注意事项，还对比不同情况下的选择。</description>
    <pubDate>Fri, 17 Nov 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>cpp</category><category>Qt</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20171117140849</guid>
    <title>API设计原则(下)</title>
    <link>https://ningto.com/blog/2017/20171117140849</link>
    <description>总结：介绍 API 设计原则，包括语义文档、命名艺术、避免陷阱等方面，以 QProgressBar 等案例展示实际应用，强调抽象类等问题，还提及相关 Qt 类的改进，如去掉 QGLayoutIterator 等，原文链接为[API Design Principles – Qt Wiki](http://qt-project.org/wiki/API-Design-Principles)。</description>
    <pubDate>Fri, 17 Nov 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>cpp</category><category>Qt</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20171104024203</guid>
    <title>mongodb模糊匹配正则转义</title>
    <link>https://ningto.com/blog/2017/20171104024203</link>
    <description>介绍 mongodb 模糊匹配正则转义，先通过特定代码搜索关键字，遇特殊字符如++搜索失败，需对关键字转义，mongdb 正则表达式中 keyword 特殊字符转义加单斜杠，给出完整代码示例。</description>
    <pubDate>Sat, 04 Nov 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Javascript</category><category>MongoDB</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20171103012302</guid>
    <title>nodejs批量ping</title>
    <link>https://ningto.com/blog/2017/20171103012302</link>
    <description>文章介绍 nodejs 批量 ping ，使用 net-ping 模块，通过读取 gui-config.json 中 ip 地址列表进行 ping 测试，需管理员权限运行 cmd 执行 node ping.js ，展示了测试结果。</description>
    <pubDate>Fri, 03 Nov 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Node.js</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20171103142445</guid>
    <title>19个JavaScript常用的简写技术</title>
    <link>https://ningto.com/blog/2017/20171103142445</link>
    <description>总结了 19 个 JavaScript 常用简写技术，包括三元操作符、短路求值等，涵盖变量声明、循环、函数等方面，如用三元操作符代替 if...else 语句等，使代码更简洁高效。</description>
    <pubDate>Fri, 03 Nov 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Javascript</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20171102122829</guid>
    <title>koa2给所有页面渲染全局数据</title>
    <link>https://ningto.com/blog/2017/20171102122829</link>
    <description>文章介绍 koa2 给所有页面渲染全局数据的方法。通过在所有路由前新增代码捕捉每次请求并写入 mongodb 新增访问量及返回总访问量，前端可在模板中获取该变量实现显示用户访问量。</description>
    <pubDate>Thu, 02 Nov 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Web</category><category>Node.js</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20171024120211</guid>
    <title>常用CRT字符串函数源码</title>
    <link>https://ningto.com/blog/2017/20171024120211</link>
    <description>这是常用 CRT 字符串函数的源码，包含 memcpy、memset、strcat 等 14 个函数，分别实现了内存复制、内存设置、字符串连接等功能，代码简洁且实用。</description>
    <pubDate>Tue, 24 Oct 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>cpp</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20171024120406</guid>
    <title>如何为包含指向（抽象）基类的指针的类定义拷贝构造函数或复制操作符</title>
    <link>https://ningto.com/blog/2017/20171024120406</link>
    <description>总结：文章通过示例代码展示如何为含指向（抽象）基类指针的类定义拷贝构造函数或复制操作符，如 Fred 类利用 Shape 类的 clone 函数进行相关操作，代码清晰易懂。</description>
    <pubDate>Tue, 24 Oct 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>cpp</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20171024120642</guid>
    <title>C++大数相乘</title>
    <link>https://ningto.com/blog/2017/20171024120642</link>
    <description>这是 C++实现的大数相乘代码。通过两个循环计算乘积，再处理进位和输出。还给出了 C++的字符串实现版本，同样通过循环和进位处理得到结果，去除前导 0 后输出。</description>
    <pubDate>Tue, 24 Oct 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>cpp</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20171024120712</guid>
    <title>KMP算法</title>
    <link>https://ningto.com/blog/2017/20171024120712</link>
    <description>KMP 算法是改进字符串匹配算法，利用匹配失败信息快速匹配，通过实现 next()函数包含模式串局部匹配信息。文中还给出求子串 nextval[]数组的步骤及代码，如 GetNextValue 和 KmpSearch 函数，最后展示了在特定字符串中的搜索示例。</description>
    <pubDate>Tue, 24 Oct 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>cpp</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20171024120806</guid>
    <title>将一个长度为n的字符串向左循环移动m位</title>
    <link>https://ningto.com/blog/2017/20171024120806</link>
    <description>文章介绍将长度为 n 的字符串向左循环移动 m 位的方法，通过先切分字符串为两部分并分别逆序，最后对整个字符串逆序实现。给出 C++代码示例，包含相关函数定义及主函数测试。</description>
    <pubDate>Tue, 24 Oct 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>cpp</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20171024120834</guid>
    <title>将字符串中的单词进行倒序</title>
    <link>https://ningto.com/blog/2017/20171024120834</link>
    <description>文章介绍将字符串中单词倒序的方法，先整体倒序，再逐个单词倒序。通过`ReverseString`函数实现字符串倒序，`ReverseAllWord`函数先整体倒序后逐个单词倒序。代码示例在`_tmain`函数中进行了测试。</description>
    <pubDate>Tue, 24 Oct 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>cpp</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20171024125452</guid>
    <title>字符编解码的故事（ASCII，ANSI，Unicode，Utf-8）</title>
    <link>https://ningto.com/blog/2017/20171024125452</link>
    <description>字符编解码故事：起初 ASCII 用于美国，后世界各国使用计算机，中国制定 GB2312 等编码，各国有不同编码致交流困难。ISO 推出 UNICODE 用两字节统一表示所有字符，后有多种 UTF 标准。记事本中 GB2312 编码与 UTF8 编码易产生冲撞，还有多种编码形式及转换函数，如 MultiByteToWideChar 和 WideCharToMultiByte。</description>
    <pubDate>Tue, 24 Oct 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Windows</category><category>cpp</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20171024130134</guid>
    <title>C++多态的实现原理</title>
    <link>https://ningto.com/blog/2017/20171024130134</link>
    <description>介绍 C++多态实现原理，用 virtual 申明虚函数，类有虚表和对象虚指针，多态分类和函数多态，虚函数结合动态绑定实现多态，虚表在构造函数中创建初始化，总结类有虚表等内容，还对比了早期绑定和迟绑定，及类和函数多态性差异。</description>
    <pubDate>Tue, 24 Oct 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>cpp</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20171024130821</guid>
    <title>linux笔记</title>
    <link>https://ningto.com/blog/2017/20171024130821</link>
    <description>总结：涵盖 Linux 诸多操作，如编译加 -g 参数用 gdb 查段错误位置、各种输入法安装与配置、常用快捷键（emacs）、文件操作、系统命令（top、df 等）、进程管理（kill 等）、SSH 开启与配置、解决乱码、svn 操作、deb 包安装及查看程序对库的依赖等内容。</description>
    <pubDate>Tue, 24 Oct 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Linux</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20171024131723</guid>
    <title>封包和拆包</title>
    <link>https://ningto.com/blog/2017/20171024131723</link>
    <description>文章主要讨论基于 TCP 开发通讯程序的封包和拆包问题。TCP 是“流”协议易出现“粘包”，需在发送端封包、接收端拆包。介绍了多种封包拆包方式，如动态缓冲区暂存、利用底层缓冲区等，并给出相关代码示例。UDP 不存在拆包问题。</description>
    <pubDate>Tue, 24 Oct 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>cpp</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20171024132238</guid>
    <title>STL transform用法</title>
    <link>https://ningto.com/blog/2017/20171024132238</link>
    <description>介绍了 STL 中 transform 的用法，通过不同函数指针实现对容器元素的操作，如对向量元素加 1、两向量元素相加等，还可用于字符串大小写转换，代码示例清晰展示其功能。</description>
    <pubDate>Tue, 24 Oct 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>cpp</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20171024132530</guid>
    <title>C语言日历</title>
    <link>https://ningto.com/blog/2017/20171024132530</link>
    <description>这是 C 语言日历程序，输入年月显示当前日历，按左右方向键可显示上月或下月日历，按其他键两次退出。通过函数判断闰年及计算星期数，循环输出日历，可根据输入动态调整。</description>
    <pubDate>Tue, 24 Oct 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>cpp</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20171024133020</guid>
    <title>我的emacs 23配置</title>
    <link>https://ningto.com/blog/2017/20171024133020</link>
    <description>介绍了 emacs 23 配置，包括设置插件路径、显示行号和时间、提示位置、支持粘贴、选择颜色主题、设置括号配对等功能，还定义了多个快捷键及 C/C++相关设置。</description>
    <pubDate>Tue, 24 Oct 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Linux</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20171024133211</guid>
    <title>C++读写XML文件（Libxml2库）</title>
    <link>https://ningto.com/blog/2017/20171024133211</link>
    <description>介绍 C++读写 XML 文件的 Libxml2 库，给出相关代码示例。包括打开文件、解析文件、写入文件及查找节点等操作，代码有读写 XML 文件的具体实现及测试案例，示例文件内容也一并给出。</description>
    <pubDate>Tue, 24 Oct 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>cpp</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20171024133408</guid>
    <title>头文件宏定义</title>
    <link>https://ningto.com/blog/2017/20171024133408</link>
    <description>文章介绍了 C/C++ 头文件宏定义，包括各种条件判断、数组元素计数、断言等宏的定义，如`G_BEGIN_DECLS`等，还定义了相关的辅助函数如`_Assert`等。</description>
    <pubDate>Tue, 24 Oct 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>cpp</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20171024133557</guid>
    <title>STL 什么时候用哪种容器</title>
    <link>https://ningto.com/blog/2017/20171024133557</link>
    <description>本文提供了C++标准库容器的选择指南，帮助开发者根据实际需求选择合适的数据结构。</description>
    <pubDate>Tue, 24 Oct 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>cpp</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20171024133748</guid>
    <title>sigsetjmp用法</title>
    <link>https://ningto.com/blog/2017/20171024133748</link>
    null
    <pubDate>Tue, 24 Oct 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Linux</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20171024133919</guid>
    <title>模拟glib中双链表的部分实现</title>
    <link>https://ningto.com/blog/2017/20171024133919</link>
    <description>实现了模拟 glib 中双链表的部分功能。包含头文件`GList.h`定义双链表结构及相关函数声明，`GList.c`实现各函数，如`g_list_alloc`分配内存等，`main.c`进行测试，展示添加、遍历等操作及链表长度等信息。</description>
    <pubDate>Tue, 24 Oct 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>cpp</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20171024134136</guid>
    <title>精灵程序(daemon)</title>
    <link>https://ningto.com/blog/2017/20171024134136</link>
    <description>精灵程序（daemon）生存期长，在系统引导装入时起动，关闭时终止。编程规则包括 fork、setsid、更改工作目录等，示例代码展示了初始化过程，查看其 ID 用 ps -ef ，退出用 kill ，源自《UNIX 环境高级编程》。</description>
    <pubDate>Tue, 24 Oct 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Linux</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20171024134435</guid>
    <title>当年的毕业设计 - MFC信息管理系统</title>
    <link>https://ningto.com/blog/2017/20171024134435</link>
    <description>2017 年 10 月 24 日回顾当年 MFC 信息管理系统毕业设计，曾想弄 UDP 日志服务程序，用 MFC 做单文档应用。参照孙鑫教程学两月后做毕设，功能随意加，最后成学习试验品。现公布源码，数据库连不上部分已注释，VC6.0 可编译运行。</description>
    <pubDate>Tue, 24 Oct 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>cpp</category><category>Windows</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20171024134524</guid>
    <title>makefile简单写法</title>
    <link>https://ningto.com/blog/2017/20171024134524</link>
    <description>介绍 makefile 简单写法，含四个文件及相关编译规则。可自动查找.h.cpp，有常用模板如使用 muduo 库等，包含编辑、清理等目标，清晰定义对象、源文件及编译选项。</description>
    <pubDate>Tue, 24 Oct 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Linux</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20171024135145</guid>
    <title>STL进阶</title>
    <link>https://ningto.com/blog/2017/20171024135145</link>
    <description>总结 STL 进阶内容：包含多种容器及操作，如打印容器元素、排序、查找等，还涉及迭代器、仿函数等，多种容器特性及适用场景不同，如 vector、deque、list 等，同时介绍了类似 shared_ptr 的智能指针等。</description>
    <pubDate>Tue, 24 Oct 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>cpp</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20171024135712</guid>
    <title>表达式求值——栈</title>
    <link>https://ningto.com/blog/2017/20171024135712</link>
    <description>此代码实现表达式求值，通过栈实现。`Precede`函数获取运算符优先级，`Operate`函数进行运算。`EvaluateExpression`函数遍历表达式，根据优先级进行操作数和运算符的处理，最终返回结果。主函数测试了该功能。</description>
    <pubDate>Tue, 24 Oct 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>cpp</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20171024140242</guid>
    <title>boost xml</title>
    <link>https://ningto.com/blog/2017/20171024140242</link>
    <description>介绍了使用 Boost 库读写 XML 文件的示例代码。通过`load`函数读取`testConfigRead.xml`文件内容并存储到结构体`TestConfig`中，通过`save`函数将结构体内容写入`testConfigWrite.xml`文件，展示了 Boost 库在 XML 操作方面的便捷性。</description>
    <pubDate>Tue, 24 Oct 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>cpp</category><category>Boost</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20171024140332</guid>
    <title>python模拟鼠标、捕获按键事件</title>
    <link>https://ningto.com/blog/2017/20171024140332</link>
    <description>文章介绍用 Python 模拟鼠标、捕获按键事件。可连续双击鼠标左键，用按键 1 控制运行、其他按键暂停。通过多线程实现，定义相关函数并启动线程，代码实现了相应功能。</description>
    <pubDate>Tue, 24 Oct 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Tools</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20171024141026</guid>
    <title>2013新的一年马上到来了</title>
    <link>https://ningto.com/blog/2017/20171024141026</link>
    <description>2013 年将至，作者回顾从 2010 年毕业至今的经历。07 年接触编程，大二下学期主动学习，通过多考试。毕业后找实习做输入法接触多种技术，后换工作做数据采集等，目前工作仍与通信有关，接触不少开源库，期望能写出好库，迎接新年。</description>
    <pubDate>Tue, 24 Oct 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Life</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20171024142205</guid>
    <title>log4cxx编译、使用</title>
    <link>https://ningto.com/blog/2017/20171024142205</link>
    <description>介绍 log4cxx 编译与使用，需下载相关文件并解压，运行批处理文件（遇问题需下载 sed），用 vs 打开文件编译得 log4cxx.lib 和 dll，使用时包含头文件、lib 和 dll 文件，配置文件可灵活记日志，还可封装为 Logger 类。</description>
    <pubDate>Tue, 24 Oct 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>cpp</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20171024142734</guid>
    <title>WSAAsyncSelect模型</title>
    <link>https://ningto.com/blog/2017/20171024142734</link>
    <description>WSAAsyncSelect 模型与窗口相关，用消息通知。文中为对话框客户端关键代码，连接 echo 服务端，测试文件传输，包含自定义消息、消息映射等，还有连接、发送、接收等相关函数。</description>
    <pubDate>Tue, 24 Oct 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Windows</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20171024142826</guid>
    <title>select模型</title>
    <link>https://ningto.com/blog/2017/20171024142826</link>
    <description>介绍 select 模型，需设 listenSock 为非阻塞，放入 fdread 中。每次 FD_SET 前要 FD_ZERO，用 list 保存 SOCKET 循环处理。在`_tmain`函数中创建套接字、绑定、监听等，通过 select 检测读写事件并处理客户端连接与数据收发。</description>
    <pubDate>Tue, 24 Oct 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Windows</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20171024143716</guid>
    <title>visual stdio不同目录下的文件重名，类重名问题解决方法</title>
    <link>https://ningto.com/blog/2017/20171024143716</link>
    <description>文章介绍 visual stdio 不同目录下文件重名及类重名问题及解决方法。先给出特定目录结构及代码，编译时出现 warning 因同名 obj 文件导致类编译出错，简单改文件名可解决但会造成重复定义，加命名空间可解决。还可在重复 cpp 文件属性中修改输出文件对象文件名避免重名。</description>
    <pubDate>Tue, 24 Oct 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Windows</category><category>cpp</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20171210125826</guid>
    <title>C、C++常用函数备份（持续更新）</title>
    <link>https://ningto.com/blog/2017/20171210125826</link>
    <description>本文为 C、C++常用函数备份，包含获取当前毫秒数、获取格式化时间等多种函数，如`GetCurrentMilliseconds()`、`GetTimeString()`等，还有字节大小格式化、产生随机字符串等功能函数，满足多种编程需求。</description>
    <pubDate>Tue, 24 Oct 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>cpp</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20171210125827</guid>
    <title>C、C++面试题（整理上）</title>
    <link>https://ningto.com/blog/2017/20171210125827</link>
    <description>总结：文章涵盖 C、C++ 诸多面试题及相关知识，如 new 与 delete、继承组合优缺点等，详细阐述各知识点并给出答案及解释，还涉及多种数据类型转换等内容。</description>
    <pubDate>Tue, 24 Oct 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>cpp</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20171210125828</guid>
    <title>C、C++面试题（整理下）</title>
    <link>https://ningto.com/blog/2017/20171210125828</link>
    <description>这是关于 C、C++的面试题整理，包含打印源文件信息、main 主函数执行后代码执行、判断编译语言、整数数组排序、链表相关、程序输出分析、找第二大整数、寻找子串位置、判断单链表是否有环、指针找错、标准函数编写、头文件相关、C++调用 C 函数、String 实现、函数调用输出等多方面内容，还包括一些具体代码示例和解答。</description>
    <pubDate>Tue, 24 Oct 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>cpp</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20171210125834</guid>
    <title>tcp、ip 3次握手与4次分手</title>
    <link>https://ningto.com/blog/2017/20171210125834</link>
    <description>总结：介绍 TCP、IP 的 3 次握手（服务器被动打开、客户主动打开等步骤）与 4 次分手（应用进程调用 close 等流程），并配有相关图示，清晰阐述连接建立与终止过程。</description>
    <pubDate>Tue, 24 Oct 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Linux</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20171210125835</guid>
    <title>windows std  cout设置输出颜色</title>
    <link>https://ningto.com/blog/2017/20171210125835</link>
    <description>介绍在 Windows 中设置 `std::cout` 输出颜色的方法，包含 ConsoleColor.h 头文件，通过定义不同颜色的函数及操作符重载来实现，如 `blue`、`red` 等函数可设置相应颜色输出。</description>
    <pubDate>Tue, 24 Oct 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>cpp</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20171023132128</guid>
    <title>我的书签</title>
    <link>https://ningto.com/blog/2017/20171023132128</link>
    <description>总结：这是一份包含众多技术相关网站的书签列表，如唐巧博客、奇舞团博客等，涵盖 IOS 技术、前端、C++等多个领域，还有各种工具和学习资源网站。</description>
    <pubDate>Mon, 23 Oct 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Life</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20171022033741</guid>
    <title>给marked增加TOC(Table of content)</title>
    <link>https://ningto.com/blog/2017/20171022033741</link>
    <description>介绍给 marked 库增加 TOC 功能，先初始化 marked 引入库并重写 renderer.heading，设置参数后保存解析后的 header 信息，再用特定代码将数据转换成 html 形式的 toc，最后通过 post2html 函数实现并添加锚点定位偏移 css。</description>
    <pubDate>Sun, 22 Oct 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Web</category><category>Javascript</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20171020082612</guid>
    <title>登录后自动跳转到登录前的页面</title>
    <link>https://ningto.com/blog/2017/20171020082612</link>
    <description>文章介绍登录后自动跳转到登录前页面的方法。在 signin.html 页面的表单中增加隐藏元素记录前页地址，后台验证登录成功后根据 referrer 判断是否跳转，若存在则跳转到 referrer 地址，不存在则跳转到主页，通过相关代码实现此功能。</description>
    <pubDate>Fri, 20 Oct 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Web</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20171014071803</guid>
    <title>Markdown在线预览</title>
    <link>https://ningto.com/blog/2017/20171014071803</link>
    <description>Markdown 在线预览上线，可拖放或上传文件预览，服务器不存副本。前端通过 HTML 和 JS 实现拖拽及文件选择功能，后台用 koa2 并引入 koaBody 模块，将 markdown 转换为 html 格式显示。暂未考虑浏览器兼容性。</description>
    <pubDate>Sat, 14 Oct 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Web</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20171012081009</guid>
    <title>mongodb部署分片集群</title>
    <link>https://ningto.com/blog/2017/20171012081009</link>
    <description>在 3 台 CentOS 6 服务器上部署 mongodb 分片集群，准备工作包括保证服务器连通、关闭防火墙等，准备好各目录及文件，按顺序创建并初始化配置、分片服务副本集，启动 mongos 服务，添加分片并启用分片，简单验证集群可插入数据且统计信息正确。</description>
    <pubDate>Thu, 12 Oct 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Database</category><category>MongoDB</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20170930095016</guid>
    <title>protobuf反射</title>
    <link>https://ningto.com/blog/2017/20170930095016</link>
    <description>C++本身无反射，protobuf 可实现。介绍其两种用途：通过 proto 对象名字创建对象，通过 Message 初始化和获取成员变量值，不知具体子类时可通过 key 获取或设置值，如获取 int32 值和设置 int32 值，其他类型同理。</description>
    <pubDate>Sat, 30 Sep 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>cpp</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20170924141623</guid>
    <title>10个React小模式</title>
    <link>https://ningto.com/blog/2017/20170924141623</link>
    <description>分享 10 个 React 小模式，包括数据传递、修复 input 标签、绑定 ID、控制 CSS、动态组件等。还提及优化组件、别过早组件化、文本格式化组件、降低组件复杂度及正确导入组件等，希望对 React 初学者有帮助。</description>
    <pubDate>Sun, 24 Sep 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>React</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20170923123203</guid>
    <title>如何优雅的编写JavaScript代码</title>
    <link>https://ningto.com/blog/2017/20170923123203</link>
    <description>本文介绍了优雅编写 JavaScript 代码的方法，包括避免使用糟粕特性、编写简洁代码（如使用有意义变量名等）、利用 ES6/ES7 新特性（箭头函数等）、使用 Babel 转码、ESLint 保证代码风格、Prettier 格式化代码、采用函数式编程等，强调长期奉行这些准则能提升代码质量，是软件工程发展的重要部分。</description>
    <pubDate>Sat, 23 Sep 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Javascript</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20170921101911</guid>
    <title>模拟QThreadPool实现</title>
    <link>https://ningto.com/blog/2017/20170921101911</link>
    <description>本文介绍了使用C++模拟实现QThreadPool的过程，涵盖线程池的核心组件设计与实现，包括任务调度、线程管理及同步机制。</description>
    <pubDate>Thu, 21 Sep 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>cpp</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20171210125833</guid>
    <title>std  move和右值引用</title>
    <link>https://ningto.com/blog/2017/20171210125833</link>
    <description>右值引用可避免不必要内存拷贝提高性能。如 std::string 示例，push_back 时加 std::move 避免深拷贝。自定义类需实现右值引用相关函数，std::move 只是返回右值类型调用类中操作，虽增加写库工作量，但方便用户且提升程序性能。</description>
    <pubDate>Thu, 21 Sep 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>cpp</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20170918012544</guid>
    <title>Qt简单截屏</title>
    <link>https://ningto.com/blog/2017/20170918012544</link>
    <description>介绍 Qt 简单截屏，通过鼠标操作实现。定义 GrabWidget 类，包含多种鼠标事件处理函数，如移动、按下、释放等，可保存截取的图片。主函数创建并显示 GrabWidget 实例。</description>
    <pubDate>Mon, 18 Sep 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Qt</category><category>cpp</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20170918085557</guid>
    <title>Qt重要特性</title>
    <link>https://ningto.com/blog/2017/20170918085557</link>
    <description>Qt 是跨平台 C++开发框架，含丰富类库与工具。有事件循环、事件过滤，通过 QEventLoop 处理自发和已发事件。信号槽机制可松耦合通信，新语法有编译期检查等优点。还有元对象、隐式共享与 d-pointer 技术、布局管理（多种布局可组合）、内存管理（自动或延迟销毁）等重要特性。</description>
    <pubDate>Mon, 18 Sep 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Qt</category><category>cpp</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20170918095214</guid>
    <title>Qt只启动一个实例</title>
    <link>https://ningto.com/blog/2017/20170918095214</link>
    <description>文章介绍 Qt 实现只启动一个实例的方法，涉及进程间通信。给出三种方案，重点展示共享内存的实现代码，通过 QSharedMemory 和 QSystemSemaphore 保证原子操作，用法示例中用随机 GUID 作为标识。</description>
    <pubDate>Mon, 18 Sep 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>cpp</category><category>Qt</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20170915010500</guid>
    <title>mongodb 常用操作</title>
    <link>https://ningto.com/blog/2017/20170915010500</link>
    <description>介绍 mongodb 常用操作，包括连接、插入数据（单条、循环、数组）、聚合、查询（各种条件）、删除记录、limit/skip/sort/distinct 方法、查询创建索引及删除索引、查看命令执行时间、删除文档、主从复制、监控状态、查看数据库及使用数据库、查看集合、导出恢复数据库等。</description>
    <pubDate>Fri, 15 Sep 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Database</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20171210125832</guid>
    <title>Qt解决：warning   Z-order assignment</title>
    <link>https://ningto.com/blog/2017/20171210125832</link>
    <description>在 Qt 调整 UI 布局时易出现“Z-order assignment”警告，虽运行无问题但影响代码洁癖。解决办法是用文本编辑器打开 ui 文件，删除含警告的 zroder 行，重新编译后警告消失。</description>
    <pubDate>Thu, 14 Sep 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Qt</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20170901015152</guid>
    <title>WTL VS2013安装</title>
    <link>https://ningto.com/blog/2017/20170901015152</link>
    <description>介绍 WTL VS2013 安装，提供下载地址，详解解压后双击运行及处理不能运行的方法，还提及创建项目时向导脚本出错的解决办法及编译工程需包含头文件目录等，相关链接也有说明。</description>
    <pubDate>Fri, 01 Sep 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>cpp</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20170820074417</guid>
    <title>react native 配置方面的问题汇总</title>
    <link>https://ningto.com/blog/2017/20170820074417</link>
    <description>总结：文章汇总了 react native 配置方面问题，包括无法加载脚本及无法连接开发服务器等，给出了相应解决办法，如创建目录、执行命令等。</description>
    <pubDate>Sun, 20 Aug 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Web</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20170819151037</guid>
    <title>CSRF 攻击的应对之道</title>
    <link>https://ningto.com/blog/2017/20170819151037</link>
    <description>CSRF 是跨站域请求伪造攻击，2007 年被列为互联网 20 大安全隐患。文中介绍其背景、实例、攻击对象及三种防御策略（验证 Referer 字段、添加 token 并验证、自定义 HTTP 头属性并验证），并以 Java 代码示例，还探讨了防御方法选择，总结目前防御策略不完善，需重视并选择合适策略降低危害。</description>
    <pubDate>Sat, 19 Aug 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Web</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20170817000250</guid>
    <title>nodejs下载图片保存到本地</title>
    <link>https://ningto.com/blog/2017/20170817000250</link>
    <description>文章介绍 nodejs 下载图片保存到本地，因浏览器端有防盗链限制而后端无，可通过获取图片 url 在服务端下载保存。给出创建本地目录、下载并写入的代码，还展示了删除大于 100k 文件的方法。</description>
    <pubDate>Thu, 17 Aug 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Node.js</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20170816234138</guid>
    <title>fetch跨域post，后端express</title>
    <link>https://ningto.com/blog/2017/20170816234138</link>
    <description>总结：通过 fetch 的 post 方法进行跨域请求，后端用 express 时需设置支持跨域，如在 express 中设置各种跨域头信息，fetch 中要注意参数填写，这里还给出了 fetch post 的写法和后端 express 设置跨域的代码。</description>
    <pubDate>Wed, 16 Aug 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Node.js</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20170801133007</guid>
    <title>js库支持CommonJs和浏览器的标准写法</title>
    <link>https://ningto.com/blog/2017/20170801133007</link>
    <description>文章介绍了 github 开源 js 库同时支持 CommonJs 和浏览器的写法。以 A.js 和 B.js 为例，说明了在不同环境下的引用方式及代码结构，还给出了浏览器端和 nodejs 端的测试代码。</description>
    <pubDate>Tue, 01 Aug 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Javascript</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20170725101014</guid>
    <title>react判断滚动到底部以及保持原来的滚动位置</title>
    <link>https://ningto.com/blog/2017/20170725101014</link>
    <description>文章解决判断组件滚动到底部及页面切换后保持滚动位置问题。通过 ref 获取 dom 节点，在组件加载和卸载时添加/移除 scroll 事件监听来判断。页面切换时用全局变量保存和恢复 scrollTop 位置。</description>
    <pubDate>Tue, 25 Jul 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Web</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20170724074419</guid>
    <title>使用flex固定头部和底部中间滚动</title>
    <link>https://ningto.com/blog/2017/20170724074419</link>
    <description>介绍使用 flex 固定头部和底部中间滚动的方法，关键在于 root 纵向布局高度 100vh 隐藏滚动条，content 设滚动且 flex 为 1，item 设高度后需 flexShrink 为 0，代码示例如下。</description>
    <pubDate>Mon, 24 Jul 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Web</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20170723102131</guid>
    <title>nodejs根据url下载图片存储到当前目录</title>
    <link>https://ningto.com/blog/2017/20170723102131</link>
    <description>文章介绍 nodejs 可根据 url 下载图片并存储到当前目录。通过安装“request”模块，利用循环遍历图片列表，获取每个图片的 url 和名称，然后使用“request”下载图片并通过“fs”模块保存到本地，代码简洁高效。</description>
    <pubDate>Sun, 23 Jul 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Node.js</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20170701145128</guid>
    <title>javascript原型和继承</title>
    <link>https://ningto.com/blog/2017/20170701145128</link>
    <description>介绍了 javascript 原型和继承，对象由方法和属性组成，javascript 无类概念，通过原型实现方法共享和继承。原型是隐藏对象，实例对象通过__proto__引用原型对象，形成原型链，new 操作符创建对象并关联原型函数。有伪类继承和原型继承等方式。</description>
    <pubDate>Sat, 01 Jul 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Javascript</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20170630021101</guid>
    <title>qDebug日志写入本地文件</title>
    <link>https://ningto.com/blog/2017/20170630021101</link>
    <description>在 Qt 中，通过`qInstallMessageHandler(myMessageOutput)`在应用创建前设置日志处理函数。该函数根据不同类型输出带时间、文件、行号的日志，使用当天日期作为文件名，可指定打印文件，日志信息先输出到调试面板再写入文件。</description>
    <pubDate>Fri, 30 Jun 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>cpp</category><category>Qt</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20170625130219</guid>
    <title>javascript怎么实现类似如C++函数中使用静态数据</title>
    <link>https://ningto.com/blog/2017/20170625130219</link>
    <description>在 JavaScript 中实现类似 C++函数中静态数据，可利用闭包。如通过创建立即调用函数表达式，在内部定义并返回一个函数，该函数可访问内部的变量，避免全局污染。像防抖函数 debounce 就利用了此原理。</description>
    <pubDate>Sun, 25 Jun 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Javascript</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20170617112259</guid>
    <title>C++11 thread</title>
    <link>https://ningto.com/blog/2017/20170617112259</link>
    <description>介绍 C++11 的线程相关内容，包括线程创建（std::thread）、互斥量（多种类型）、线程间同步（条件变量）、线程池等。通过代码示例详细展示其用法和注意事项，如独占式互斥量加解锁、递归式互斥量、允许超时的互斥量及避免死锁等。</description>
    <pubDate>Sat, 17 Jun 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>cpp</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20171210125831</guid>
    <title>QLayout  Attempting to add QLayout</title>
    <link>https://ningto.com/blog/2017/20171210125831</link>
    null
    <pubDate>Sat, 17 Jun 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Qt</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20170613010720</guid>
    <title>QLabel文本超出显示区域显示...</title>
    <link>https://ningto.com/blog/2017/20170613010720</link>
    <description>介绍了能让 QLabel 文本超出显示区域显示为“...”并带 tooltip 的 ElidedLabel 类。通过 paintEvent 处理文本绘制，超出则截断显示，且更新 elided 状态和 tooltip，代码包含类定义及实现。</description>
    <pubDate>Tue, 13 Jun 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>cpp</category><category>Qt</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20170613011051</guid>
    <title>给QPushButton增加图标并且显示在文本右边</title>
    <link>https://ningto.com/blog/2017/20170613011051</link>
    <description>介绍了在 C/C++ 的 Qt 中，给 QPushButton 增加图标并显示在文本右边的方法。通过创建按钮、设置文本、图标及布局方向实现，如上述代码所示。</description>
    <pubDate>Tue, 13 Jun 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>cpp</category><category>Qt</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20170611042521</guid>
    <title>你必须知道的28个HTML5特征、窍门和技术</title>
    <link>https://ningto.com/blog/2017/20170611042521</link>
    <description>介绍 28 个 HTML5 特征、窍门和技术，包括新 Doctype、图形元素、&lt;small&gt;重新定义等，如使用新 Doctype 更便捷，&lt;figure&gt;元素可语义化图片标题等，还提及本地存储、表单特征等，部分技术仅在特定浏览器下效果较好，不少浏览器已支持这些特性。</description>
    <pubDate>Sun, 11 Jun 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Web</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20170610102949</guid>
    <title>Qt 大数据列表展示</title>
    <link>https://ningto.com/blog/2017/20170610102949</link>
    <description>介绍 Qt 大数据列表展示，用 QListWidget 等自定义子 widget 展示数据时易慢耗内存，原理是重用隐藏 widget 。组件有父 widget 和滚动条，基本方法有 showEvent 等，通过 m_widgets 缓存 widget ，重点是刷新数据到 widget ，文末有源码及展示效果。</description>
    <pubDate>Sat, 10 Jun 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>cpp</category><category>Qt</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20170610103055</guid>
    <title>方形图片使用QLabel显示成圆形</title>
    <link>https://ningto.com/blog/2017/20170610103055</link>
    <description>介绍了方形图片用 QLabel 显示成圆形的代码。通过自定义的 MaskLabel 类，在 paintEvent 中设置绘图参数，用 QPainterPath 画椭圆作为裁剪路径，实现方形图片的圆形显示。</description>
    <pubDate>Sat, 10 Jun 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>cpp</category><category>Qt</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20170610112113</guid>
    <title>Qt设置窗口标题和exe图标</title>
    <link>https://ningto.com/blog/2017/20170610112113</link>
    <description>文章介绍 Qt 设置窗口标题和 exe 图标，以工程名“joke”为例，给窗口标题设图简单，需创建 QApplication 和 Dialog 等，给 exe 设图需新建 joke.rc 并粘贴特定文本，加入 pro 文件，在 vs 中加入 rc 文件，执行 qmake 后构建即可。</description>
    <pubDate>Sat, 10 Jun 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>cpp</category><category>Qt</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20170610113527</guid>
    <title>windows任务栏高亮</title>
    <link>https://ningto.com/blog/2017/20170610113527</link>
    <description>此代码实现了 Windows 任务栏高亮功能。通过`startAlert`函数可设置高亮持续时间和超时时间来闪烁任务栏，`stopAlert`函数则停止高亮。利用`FLASHWINFO`结构体和`FlashWindowEx`函数来完成相关操作。</description>
    <pubDate>Sat, 10 Jun 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Windows</category><category>cpp</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20170610115119</guid>
    <title>swift 网络搜索热词排行</title>
    <link>https://ningto.com/blog/2017/20170610115119</link>
    <description>介绍 swift 网络搜索热词排行相关内容，包括接口使用、库文件、桥接头文件等，还有数据管理、视图控制器等代码示例及 github 地址和截图，点击热搜词可在百度搜索。</description>
    <pubDate>Sat, 10 Jun 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Mobile</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20170610115154</guid>
    <title>Static table views are only valid when embedded in</title>
    <link>https://ningto.com/blog/2017/20170610115154</link>
    <description>在 UIViewController 中加入 Table View 并设 Content 为 Static Cells 会报错，解决方法为将放置 Table View 改为 Container View 或拖出单独 Table View Controller 并关联，即可成功。</description>
    <pubDate>Sat, 10 Jun 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Mobile</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20170610115226</guid>
    <title>swift分享到微信</title>
    <link>https://ningto.com/blog/2017/20170610115226</link>
    <description>介绍 swift 分享到微信的步骤，需申请 AppId 并下载 sdk 导入工程，链接相关库，添加桥接头文件等，还可分享文字、文章到朋友、朋友圈及收藏，调试需装微信，提供 github 地址。</description>
    <pubDate>Sat, 10 Jun 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Mobile</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20170610115256</guid>
    <title>给UITableView增加拷贝</title>
    <link>https://ningto.com/blog/2017/20170610115256</link>
    <description>文章介绍给 UITableView 增加拷贝功能。通过两个函数实现，一个用于执行拷贝操作（若满足条件则将对应内容的 url 拷贝到粘贴板），另一个用于判断是否可执行拷贝动作，还设置了应显示菜单的条件为 true。</description>
    <pubDate>Sat, 10 Jun 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Mobile</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20170610115347</guid>
    <title>swift delegate</title>
    <link>https://ningto.com/blog/2017/20170610115347</link>
    <description>This code shows a Swift delegate example. It defines a `ModelDelegate` protocol with methods. The `Model` class has a delegate property and a `count` variable. The `View` class conforms to the protocol and implements the methods. An instance of `Model` and `View` is created, and the delegate is set. The `count` property is changed, triggering the delegate methods.</description>
    <pubDate>Sat, 10 Jun 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Mobile</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20170610115514</guid>
    <title>swift UILabel不显示html标签</title>
    <link>https://ningto.com/blog/2017/20170610115514</link>
    <description>2017 年 6 月 10 日，关于 swift UILabel 不显示 html 标签的讨论。通过将带 html 标签的文本转成 NSAttributedString 并设置给 label 的 attributedText 来尝试显示，但未成功。</description>
    <pubDate>Sat, 10 Jun 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Mobile</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20170610115631</guid>
    <title>swift UITableView cell自适应高度</title>
    <link>https://ningto.com/blog/2017/20170610115631</link>
    <description>2017 年 6 月 10 日的文章介绍 swift UITableView cell 自适应高度。ios8 支持，需在 viewDidLoad 中设置 estimatedRowHeight 和 rowHeight，在 cellForRowAtIndexPath 中设置 textLabel 的行数和宽度，heightForRowAtIndexPath 设为 UITableViewAutomaticDimension。</description>
    <pubDate>Sat, 10 Jun 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Mobile</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20171210125825</guid>
    <title>App Transport Security has blocked a cleartext HTTP (http 、、) resource load since it is insecure.</title>
    <link>https://ningto.com/blog/2017/20171210125825</link>
    <description>2017 年 6 月 10 日，App Transport Security 因不安全阻止了明文 HTTP 资源加载。解决办法有使用 https 协议请求或在 Info.plist 中增加 App Transport Security Settings 子项 Allow Arbitrary Loads 并设为 YES 。</description>
    <pubDate>Sat, 10 Jun 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Mobile</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20170603082330</guid>
    <title>网页聊天气泡效果实现</title>
    <link>https://ningto.com/blog/2017/20170603082330</link>
    <description>介绍网页聊天气泡效果实现，通过 ejs 模板实现收发消息布局，利用 flex 布局和特定样式打造左右对齐气泡，包含头像、名字、聊天内容等部分，文末提供 github 地址。</description>
    <pubDate>Sat, 03 Jun 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Node.js</category><category>Web</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20170521135020</guid>
    <title>Material-UI FontIcon组件使用</title>
    <link>https://ningto.com/blog/2017/20170521135020</link>
    <description>material-ui 的 FontIcon 组件含 900 多个系统图标但易显示不出。需下载资源并新建 css 文件设置字体，将其 link 到 html 中，使用方法多样，如`&lt;FontIcon className=&quot;material-icons&quot;&gt;keyboard_arrow_left&lt;/FontIcon&gt;`。</description>
    <pubDate>Sun, 21 May 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Web</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20170425014240</guid>
    <title>CHROME开发者工具的小技巧</title>
    <link>https://ningto.com/blog/2017/20170425014240</link>
    <description>文章介绍 Chrome 开发者工具的小技巧，包括代码格式化、强制 DOM 状态、动画慢放录制、直接编辑网页、网络限速、复制 HTTP 请求、抓带手机图、设置断点及 Console 中的各种技巧和快捷键等，内容丰富实用。</description>
    <pubDate>Tue, 25 Apr 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Web</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20170425065856</guid>
    <title>无法定位程序输入点strnlen于动态链接库msvcrt.dll上(Qt XP)</title>
    <link>https://ningto.com/blog/2017/20170425065856</link>
    <description>Qt 应用在 XP（sp3）系统出现“无法定位程序输入点 strnlen 于动态链接库 msvcrt.dll 上”错误，含 D3Dcompiler_47.dll 和 opengl32sw.dll。可移除前者用后者，或在 QApplication 实例化前加代码强制 XP 不使用前者，参考相关 Qt 文档。</description>
    <pubDate>Tue, 25 Apr 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>cpp</category><category>Windows</category><category>Qt</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20170425083040</guid>
    <title>QWebEngineView支持XP</title>
    <link>https://ningto.com/blog/2017/20170425083040</link>
    <description>Qt 应用中 QWebEngineView 在 XP 上有问题，网页内容显示不出且 QtWebEngineProcess.exe 起不来。需下载 5.6.2 版本 Qt 源码编译该文件，用 vs2013 打开相应 project 并设置属性，编译后替换 Qt 自带的可在 XP 上运行。</description>
    <pubDate>Tue, 25 Apr 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Qt</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20171210125829</guid>
    <title>css中position属性(absolute|relative|static|fixed)详解</title>
    <link>https://ningto.com/blog/2017/20171210125829</link>
    <description>介绍了 CSS 中 position 属性（absolute、relative、static、fixed）及 z-index 属性。文档流中三种脱离情况及各定位特点，relative 相对自身文档流位置偏移且占文档空间，absolute 依祖先类非 static 定位，fixed 以窗口为原点定位，z-index 定堆叠层次，无 position 定位的元素 z-index 无效。</description>
    <pubDate>Tue, 25 Apr 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Web</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20170419051236</guid>
    <title>bootstrap有省略点才显示tooltip</title>
    <link>https://ningto.com/blog/2017/20170419051236</link>
    <description>在 bootstrap 中，可通过给 td 标签添加特定类使长文本显示省略点，同时用 bootstrap 的 tooltip 展示内容。但存在不管有无省略点都显示 tooltip 的问题，可通过 js 代码在鼠标进入时添加 tooltip 属性，离开时去掉来解决。</description>
    <pubDate>Wed, 19 Apr 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Web</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20170417095152</guid>
    <title>常见排序算法</title>
    <link>https://ningto.com/blog/2017/20170417095152</link>
    <description>本文介绍了常见排序算法，包括插入排序、及时终止的冒泡排序、终止不必要的选择排序和快速排序。分别给出了各算法的代码实现，通过模板函数提高通用性。</description>
    <pubDate>Mon, 17 Apr 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Windows</category><category>cpp</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20170417100056</guid>
    <title>类模板之单链表</title>
    <link>https://ningto.com/blog/2017/20170417100056</link>
    <description>介绍了类模板之单链表，包含 Chain.h 中定义的模板类 ChainNode 和 Chain，以及 Chain.cpp 中实现的各种函数，如构造、析构、插入、删除等操作，最后在 main.cpp 中进行了测试。</description>
    <pubDate>Mon, 17 Apr 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Windows</category><category>cpp</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20170417100443</guid>
    <title>统计程序实例的个数</title>
    <link>https://ningto.com/blog/2017/20170417100443</link>
    <description>此为统计程序实例个数的代码，在 Windows 下用 C/C++编写。通过共享数据段和特定消息，实现应用程序知晓自身运行实例个数，在 WinMain 函数中进行相关操作和消息传递。</description>
    <pubDate>Mon, 17 Apr 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Windows</category><category>cpp</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20170417100830</guid>
    <title>用内存映射的方式在文件末尾追加一个hello</title>
    <link>https://ningto.com/blog/2017/20170417100830</link>
    <description>此 C++代码通过 Windows API 在文件末尾追加“hello”。先创建文件句柄，获取文件大小，创建文件映射对象，获取映射视图，将“hello”复制到文件末尾，最后解除映射和关闭句柄，实现了在文件末尾追加内容的功能。</description>
    <pubDate>Mon, 17 Apr 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Windows</category><category>cpp</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20170417114056</guid>
    <title>6个故事：都体会了你就是营销超人！</title>
    <link>https://ningto.com/blog/2017/20170417114056</link>
    <description>本文通过六个故事探讨了营销、质量管理与工作态度的重要性。故事涵盖了从顾客反馈中持续改进、遵守规则、认真对待客户投诉、制定和执行工作标准、培训员工以及追求100%的产品合格率等主题。每个故事都强调了细节决定成败，以及在工作中保持严谨态度和以客户为中心的重要性。</description>
    <pubDate>Mon, 17 Apr 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Life</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20170417144947</guid>
    <title>Robomongo连接远程MongoDB数据库</title>
    <link>https://ningto.com/blog/2017/20170417144947</link>
    <description>文章介绍 Robomongo 连接远程 MongoDB 数据库的步骤，包括修改远程服务器 mongodb 配置、创建管理员用户并重启服务，还展示了 Robomongo 连接远程服务的截图以及备份还原数据库的方法，如 mongodump 和 mongorestore。</description>
    <pubDate>Mon, 17 Apr 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Windows</category><category>MongoDB</category><category>Database</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20170416094802</guid>
    <title>多文件统计字频</title>
    <link>https://ningto.com/blog/2017/20170416094802</link>
    <description>本文介绍多文件统计字频，有 60 个文件如 zipin1.txt 到 zipin60.txt，格式相同词频不同。通过 C++代码实现将各文件相同词语词频相加并写至 main.txt，代码中定义 Word 类，在构造函数和更新函数中处理文件数据，最后输出结果，计算耗时。</description>
    <pubDate>Sun, 16 Apr 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>cpp</category><category>Windows</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20170416095256</guid>
    <title>类模板之队列</title>
    <link>https://ningto.com/blog/2017/20170416095256</link>
    <description>这是关于类模板之队列的代码。定义了`Queue`类模板，包含构造、析构、判断空满、获取首尾元素及添加删除元素等操作。在`main`函数中创建`Queue&lt;int&gt;`对象并进行操作演示。</description>
    <pubDate>Sun, 16 Apr 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Windows</category><category>cpp</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20170416095840</guid>
    <title>The Road Not Taken（未选择的路）</title>
    <link>https://ningto.com/blog/2017/20170416095840</link>
    <description>《The Road Not Taken》写于 2017 年 4 月 16 日，借自然路喻人生路，表明人生只能选其一需慎重，莫随波逐流要独立思考。清晨两条路落叶满地未被踏，诗人选少有人走的路，决定一生道路，意义深远。</description>
    <pubDate>Sun, 16 Apr 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Life</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20170415040652</guid>
    <title>遍历文件夹下的所有文件</title>
    <link>https://ningto.com/blog/2017/20170415040652</link>
    <description>此代码为获取指定文件夹下所有.txt 文件的名称及创建时间。通过`FindFirstFile`和`FindNextFile`函数遍历文件夹，将文件名存储在数组中并返回文件数量，最后关闭查找句柄。</description>
    <pubDate>Sat, 15 Apr 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Windows</category><category>cpp</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20170415040929</guid>
    <title>GDIPLUS环境初始化以及与GDI结合实现双缓冲</title>
    <link>https://ningto.com/blog/2017/20170415040929</link>
    <description>介绍了在 Windows 的 C/C++中，通过初始化 gdiplus 环境，定义成员变量，在构造和析构函数中进行相应操作，实现 Gdiplus 与 GDI 混合的双缓冲代码，包括创建兼容 DC 和位图等操作。迁移于 2011 - 05 - 08。</description>
    <pubDate>Sat, 15 Apr 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Windows</category><category>cpp</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20170415041123</guid>
    <title>WTL 给一个对话框添加垂直滚动条</title>
    <link>https://ningto.com/blog/2017/20170415041123</link>
    <description>介绍给对话框添加垂直滚动条的方法，通过消息映射宏、OnInitDialog 初始化及响应 WM_VSCROLL、WM_SIZE、WM_MOUSEWHEEL 等消息来实现，包括各消息处理函数的具体逻辑。</description>
    <pubDate>Sat, 15 Apr 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Windows</category><category>cpp</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20170415041904</guid>
    <title>WTL CHyperLink类的用法</title>
    <link>https://ningto.com/blog/2017/20170415041904</link>
    <description>介绍 WTL CHyperLink 类用法，需含 atlctrlx.h 头文件，声明变量并在 OnInitDialog 函数中进行子类化等操作，在消息映射宏中响应事件，可实现点击链接打开指定网页。</description>
    <pubDate>Sat, 15 Apr 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Windows</category><category>cpp</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20170415042007</guid>
    <title>INI文件操作类</title>
    <link>https://ningto.com/blog/2017/20170415042007</link>
    <description>这是一个 C/C++ 的 INI 文件操作类`CIniFile`，提供了获取和设置 INI 文件中值的各种方法，如获取字符串、整型数值、坐标等，以及写入、删除节等操作。</description>
    <pubDate>Sat, 15 Apr 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Windows</category><category>cpp</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20170415042234</guid>
    <title>WTL自定义的常用类</title>
    <link>https://ningto.com/blog/2017/20170415042234</link>
    <description>介绍了 WTL 自定义的常用类，包括设置背景图片的`CBitmapBkgnd`类、设置背景颜色及字体颜色的`CCtrlColor`类、自定义静态文本控件的`CMyStatic`类及`CCoolLabel`类，详细说明了各类的功能及用法。</description>
    <pubDate>Sat, 15 Apr 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Windows</category><category>cpp</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20170415042403</guid>
    <title>WTL对话框应用程序常用头文件</title>
    <link>https://ningto.com/blog/2017/20170415042403</link>
    <description>文章介绍 WTL 对话框应用程序常用头文件，包括提前声明 CString 类的 _WTL_USE_CSTRING，以及 atlbase、atlapp 等多个用于基本类、窗口类、数据交换类等的头文件，方便开发。</description>
    <pubDate>Sat, 15 Apr 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Windows</category><category>cpp</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20170415042656</guid>
    <title>实现无标题栏对话框的拖动</title>
    <link>https://ningto.com/blog/2017/20170415042656</link>
    <description>文章介绍实现无标题栏对话框拖动的方法。有两种方案，常规思路繁琐且需处理诸多细节，第二种通过处理 WM_NCHITTEST 消息，在客户区模仿标题栏拖动行为实现，代码简单易理解，对话框其他对象照常工作。</description>
    <pubDate>Sat, 15 Apr 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Windows</category><category>cpp</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20170415043044</guid>
    <title>WTL IWebBrowser2调用网页中javascript函数</title>
    <link>https://ningto.com/blog/2017/20170415043044</link>
    <description>文章介绍通过 WTL 的 IWebBrowser2 调用网页中 javascript 函数。给出简单含 js 网页代码，及相关 WebBrowser ActiveX 控件成员变量等操作，在 OnInitDialog 中导航到网页，OnOk 函数中测试执行 js 函数，还给出 WtlCallJavascript 函数，运行后可实现相应功能。</description>
    <pubDate>Sat, 15 Apr 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Windows</category><category>cpp</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20170415043358</guid>
    <title>WTL 通过IWebBrowser2接口使WebBrowser控件在自己的窗口打开网页</title>
    <link>https://ningto.com/blog/2017/20170415043358</link>
    <description>在 WTL 中，为使 WebBrowser 控件在自己窗口打开网页，需添加 IWebBrowser2 控件，创建时勾选相关选项并插入控件。通过代码实现运行后打开默认网页及解决同一窗口打开网页问题，还需处理编译错误和运行时响应事件等。</description>
    <pubDate>Sat, 15 Apr 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Windows</category><category>cpp</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20170415043626</guid>
    <title>SOCKET中宽字符问题</title>
    <link>https://ningto.com/blog/2017/20170415043626</link>
    <description>本文记录了在看孙鑫老师 vc++16 课聊天程序视频教程时遇到的两个 SOCKET 宽字符问题及解决方法。一是从 ip 地址控件获取值经转换后接收端显示乱码，通过 MultiByteToWideChar 转换为宽字符解决；二是 WSABUF 中 buf 只能接受 char*，需强制转换。作者表示对 SOCKET 宽字符处理仍需努力。</description>
    <pubDate>Sat, 15 Apr 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Windows</category><category>cpp</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20170415045922</guid>
    <title>表驱动法介绍 （简单易懂）</title>
    <link>https://ningto.com/blog/2017/20170415045922</link>
    <description>介绍表驱动法及函数指针应用。用表驱动法可简化获取每月天数的代码，函数指针可用于表驱动中，如处理不同 Event 的代码，通过定义结构体和表来实现更精致灵活的代码。但要注意函数指针的致命缺点，使用时需小心“类型陷阱”。</description>
    <pubDate>Sat, 15 Apr 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>cpp</category><category>Design</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20170415050931</guid>
    <title>windows下进程间通信方式介绍</title>
    <link>https://ningto.com/blog/2017/20170415050931</link>
    <description>介绍 Windows 下进程间通信方式，包括文件映射、共享内存等 10 种。阐述各方式特点，如文件映射可共享数据但限于本地；命名管道可跨进程及计算机通信等。开发者需考虑应用环境选择，文末给出多种选择方案及考虑因素。作者李志刚等。</description>
    <pubDate>Sat, 15 Apr 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Windows</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20170415051918</guid>
    <title>STL 学习资料</title>
    <link>https://ningto.com/blog/2017/20170415051918</link>
    <description>STL 学习资料涵盖多种容器及相关内容，如 STL 介绍、stack 等特殊容器共同点、vector 等容器特点及使用区别、map 及 hash_map、set 等，还提及 bitset 用于处理二进制位有序集，各容器在存储、访问、操作等方面有不同特性。</description>
    <pubDate>Sat, 15 Apr 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>cpp</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20170415052657</guid>
    <title>内存对齐 - 求结构体大小</title>
    <link>https://ningto.com/blog/2017/20170415052657</link>
    <description>文章介绍内存对齐原因（平台、性能）及规则，通过例子说明结构体大小计算。如 32 位机器上不同结构体示例，还提及</description>
    <pubDate>Sat, 15 Apr 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Windows</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20170415053136</guid>
    <title>设计模式-单例模式</title>
    <link>https://ningto.com/blog/2017/20170415053136</link>
    <description>单例模式是常用软件设计模式，保证类只有一个实例。通过静态方法获取实例，构造函数私有。多线程时需小心，可用互斥锁。文中用 C++代码展示了单例模式的实现及相关知识点，包括 static 成员变量和静态成员函数等，还给出了单例销毁的示例。</description>
    <pubDate>Sat, 15 Apr 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>cpp</category><category>Design</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20170415053411</guid>
    <title>设计模式-简单工厂模式</title>
    <link>https://ningto.com/blog/2017/20170415053411</link>
    <description>总结：介绍了设计模式中的简单工厂模式，通过工厂类创建不同产品类实例。给出了 Product、Factory 等相关类的代码示例，包括虚析构函数等概念及 main 函数的使用。</description>
    <pubDate>Sat, 15 Apr 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>cpp</category><category>Design</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20170415053519</guid>
    <title>WebBrowser控件判断页面加载完毕</title>
    <link>https://ningto.com/blog/2017/20170415053519</link>
    <description>文章介绍 WebBrowser 控件判断页面加载完毕的方法。DWebBrowserEvents2 Members 的 DocumentComplete 成员可用于此，但直接处理不行，需做处理。给出具体代码示例，在特定条件下进行页面加载完成的处理。</description>
    <pubDate>Sat, 15 Apr 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Windows</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20170415053749</guid>
    <title>静态库（lib）的编写与调用</title>
    <link>https://ningto.com/blog/2017/20170415053749</link>
    <description>介绍了静态库的编写与调用。先新建 Win32 Console Project 生成 LibAdd.lib，再新增头文件和源文件。调用时新建 Test 工程，包含头文件，指定 LibAdd.lib 目录和名称，在 main 函数中测试，得到所需结果。</description>
    <pubDate>Sat, 15 Apr 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Windows</category><category>cpp</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20170415055206</guid>
    <title>设计模式-抽象工厂模式</title>
    <link>https://ningto.com/blog/2017/20170415055206</link>
    <description>抽象工厂模式为产品家族提供统一创建接口，可在运行时创建系列产品族。文中以 Button 和 Border 为例，创建 Mac 和 Win 系列工厂，客户可根据需求选择创建。还给出了具体产品类和工厂类代码，以及适用性和优缺点等。</description>
    <pubDate>Sat, 15 Apr 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Design</category><category>cpp</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20170415124629</guid>
    <title>visual studio低版本打开高版本建的工程</title>
    <link>https://ningto.com/blog/2017/20170415124629</link>
    <description>总结：高版本 visual studio 可直接打开低版本工程需转换，低版本打开高版本工程需改动，如用 vs2003 打开 vs2008 建的工程，需将 tjw.sln 的 Format Version 10.00 改为 8.00，tjw.vcproj 的 Version=&quot;9.00&quot;改为&quot;7.10&quot;。</description>
    <pubDate>Sat, 15 Apr 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Windows</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20170415125217</guid>
    <title>内存文件映射-进程间通信</title>
    <link>https://ningto.com/blog/2017/20170415125217</link>
    <description>介绍内存文件映射用于进程间通信，Microsoft 加入支持可创建内存映射文件无需专门磁盘文件。创建文件映射对象后可像使用任务内存区域，共享数据时传入名称。进程不再需要可调用 CloseHandle 收回存储器，分普通文件和页文件，示例展示进程 1 和进程 2 的操作。</description>
    <pubDate>Sat, 15 Apr 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Windows</category><category>cpp</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20170415125715</guid>
    <title>怎样在对话框上做一个“应用”按钮</title>
    <link>https://ningto.com/blog/2017/20170415125715</link>
    <description>文章介绍在对话框上做“应用”按钮的方法。定义 WM_APPLY_TRUE 和 WM_APPLY_FALSE 消息，在 Main 对话框中实现消息映射和响应，还捕获全局消息，根据不同情况使“应用”按钮可用或不可用，用的是 WTL 且基本方法一致。</description>
    <pubDate>Sat, 15 Apr 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Windows</category><category>cpp</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20170415130028</guid>
    <title>对char与wchar_t一些疑惑的理解</title>
    <link>https://ningto.com/blog/2017/20170415130028</link>
    <description>文章主要探讨 char 与 wchar_t，指出 char 存 ascii 码字符，wchar_t 存汉字等双字节字符。通过示例解释 char 存储汉字的原理及 memcpy_a 函数对 wchar_t 汉字串拷贝的方式，还提到用宽字符函数输出汉字需包含特定头文件和设置 locale。</description>
    <pubDate>Sat, 15 Apr 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Windows</category><category>cpp</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20170414135022</guid>
    <title>electron demo</title>
    <link>https://ningto.com/blog/2017/20170414135022</link>
    <description>这是一个用 electron 框架做的 demo 程序，调用 showapi 接口数据。入口 main.js 初始化菜单、窗口等，还通过 ipc 与各页面通信，用 ejs 在 html 上展示数据，源码可在[https://code.csdn.net/tujiaw/showapi/tree/master](https://code.csdn.net/tujiaw/showapi/tree/master)查看。</description>
    <pubDate>Fri, 14 Apr 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Windows</category><category>Web</category><category>Node.js</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20170413020154</guid>
    <title>简单实现网页登录框中的“记住我”</title>
    <link>https://ningto.com/blog/2017/20170413020154</link>
    <description>文章介绍网页登录框“记住我”功能，通过 Cookie 实现。详细阐述 Cookie 和 Session 机制，及登录 html 表单和使用 jquery.cookie.js 读写 Cookie 的代码，在公用电脑勾选有风险，个人电脑可提供方便。</description>
    <pubDate>Thu, 13 Apr 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Web</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20170411020127</guid>
    <title>浏览器同源政策及其规避方法</title>
    <link>https://ningto.com/blog/2017/20170411020127</link>
    <description>文章介绍浏览器同源政策，包括含义（1995 年 Netscape 引入，三相同）、目的（保证用户信息安全）、限制范围（Cookie 等三种行为受限）。还详细阐述了规避方法，如 Cookie 通过设置 document.domain 共享，iframe 可用片段标识符等三种方式通信，LocalStorage 可通过 window.postMessage 读写，AJAX 可用 JSONP、WebSocket、CORS 规避限制。</description>
    <pubDate>Tue, 11 Apr 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Web</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20170409071229</guid>
    <title>nginx配置nodejs服务二级域名</title>
    <link>https://ningto.com/blog/2017/20170409071229</link>
    <description>文章介绍 nginx 配置 nodejs 服务二级域名，先在阿里云中添加 sanjiadian.net 的二级域名 tools、api、chat 解析，然后在 nginx/conf.d 下分别增加 sanjiadian.conf 和 chat.conf 配置文件指向不同端口的 nodejs 服务，最后重启 nginx 。</description>
    <pubDate>Sun, 09 Apr 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Node.js</category><category>Linux</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20170402031622</guid>
    <title>QtCharts源码编译安装</title>
    <link>https://ningto.com/blog/2017/20170402031622</link>
    <description>QtCharts 提供易使用的图表组件，用 Qt Graphics View Framework 可轻松集成。需自行编译安装，步骤包括获取源代码、用 vs2015 x64 编译安装、安装帮助文档及编译运行 demo 程序，各步骤详细且可成功展示图表。</description>
    <pubDate>Sun, 02 Apr 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Windows</category><category>cpp</category><category>Qt</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20170323062222</guid>
    <title>QComboBox+QCompleter实现搜索自动匹配</title>
    <link>https://ningto.com/blog/2017/20170323062222</link>
    <description>通过 QComboBox 和 QCompleter 实现搜索自动匹配。按 Ctrl+F 打开搜索框，初始化数据并设置匹配规则为 contains，打开后清空显示并设焦点，点击弹出按钮列表框有数据，可通过信号槽实现相关功能。</description>
    <pubDate>Thu, 23 Mar 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Qt</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20170318023958</guid>
    <title>windows判断窗口是否置顶、设置取消置顶、设置前景</title>
    <link>https://ningto.com/blog/2017/20170318023958</link>
    <description>文章介绍了 Windows 中判断窗口是否置顶、设置取消置顶及设置前景的方法。通过相关函数可实现这些操作，还定义了 WinParameter 类来解决特殊情况下设置失败问题，包含构造和析构函数。</description>
    <pubDate>Sat, 18 Mar 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Windows</category><category>cpp</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20170317065614</guid>
    <title>Qt自定义读取qss样式表</title>
    <link>https://ningto.com/blog/2017/20170317065614</link>
    <description>介绍 Qt 自定义读取 qss 样式表，一般用 qss 配置控件样式，特殊情况需代码控制。通过代码解析 qss 中的样式属性，提供 init、style、attr 等函数，示例展示了 qss 样式及初始化读取样式的过程。</description>
    <pubDate>Fri, 17 Mar 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>cpp</category><category>Qt</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20170315141809</guid>
    <title>QComboBox item文字重叠</title>
    <link>https://ningto.com/blog/2017/20170315141809</link>
    <description>2017 年 3 月 15 日的“QComboBox item 文字重叠”文章提到，给 QComboBox 设置行交替颜色后，相邻 item 文字会重叠，解决方法是在 Qt Designer 中把 comboBox 的字体点大小设为实际要展示的文字大小，如从默认 9 改为 12。</description>
    <pubDate>Wed, 15 Mar 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Qt</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20170310052826</guid>
    <title>C++获取输入法名字，调整输入法候选框位置</title>
    <link>https://ningto.com/blog/2017/20170310052826</link>
    <description>文章介绍 C++获取输入法名字及调整输入法候选框位置。可通过窗口布局或 HKL 获取，给出获取名字的函数及调整位置的代码，还包含相关头文件，支持 win7 及以下系统。</description>
    <pubDate>Fri, 10 Mar 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Windows</category><category>cpp</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20170224062846</guid>
    <title>使用nginx配置nodejs服务进行反向代理</title>
    <link>https://ningto.com/blog/2017/20170224062846</link>
    <description>文章介绍用 nginx 配置 nodejs 服务做反向代理，域名备案后可通过域名访问。nginx 配置文件位置多样，文中在 /etc/nginx 下，通过在 http 中添加 upstream 及在 server 下配置 location 等步骤完成，最后需 nginx -s reload，若出错可删除 sites-enabled 下临时文件。</description>
    <pubDate>Fri, 24 Feb 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Web</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20170222141105</guid>
    <title>Can only update a mounted or mounting component.</title>
    <link>https://ningto.com/blog/2017/20170222141105</link>
    <description>react native 中出现“Can only update a mounted or mounting component.”警告，因_countdown 方法中每秒递减秒数，组件 unmounted 后 timer 未停止。解决办法是在 componentWillUnmount 中 clearTimeout，修改后的代码片段如上。</description>
    <pubDate>Wed, 22 Feb 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Mobile</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20170217072522</guid>
    <title>flex 网页布局</title>
    <link>https://ningto.com/blog/2017/20170217072522</link>
    <description>介绍 flex 网页布局，与 Qt 的布局相似，需注意 flex 属性简写及容器显示设置。文中给出具体 HTML 代码及效果图，展示了 flex 布局在网页中的应用，如各种元素的样式设置等。</description>
    <pubDate>Fri, 17 Feb 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Web</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20170214100349</guid>
    <title>react native 布局头像标题简介</title>
    <link>https://ningto.com/blog/2017/20170214100349</link>
    <description>此为 React Native 布局头像标题简介的代码示例。通过`ItemBox`组件展示头像、标题和简介，`App`组件设置相关样式和数据，最后注册组件。整体实现简单的布局展示效果。</description>
    <pubDate>Tue, 14 Feb 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Mobile</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20170208033139</guid>
    <title>Windows下使用VS2013编译Qt5.6源码</title>
    <link>https://ningto.com/blog/2017/20170208033139</link>
    <description>介绍 Windows 下用 VS2013 编译 Qt5.6 源码的步骤，包括下载源码、安装相关工具、ICU 源码编译及环境变量设置等，还提及编译中常见问题及解决办法。</description>
    <pubDate>Wed, 08 Feb 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Windows</category><category>Qt</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20170207130112</guid>
    <title>nodejs项目热更新 github webhooks</title>
    <link>https://ningto.com/blog/2017/20170207130112</link>
    <description>介绍 nodejs 项目热更新 github webhooks，本地代码 git 上传后服务器接收通知并拉取代码重启程序。文中详述在 github 中设置及 nodejs 服务代码、脚本代码，需注意相关配置一致且安装相关组件。</description>
    <pubDate>Tue, 07 Feb 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Node.js</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20170205110821</guid>
    <title>CSS布局人物简介</title>
    <link>https://ningto.com/blog/2017/20170205110821</link>
    <description>这是关于“樱木花道”的 CSS 布局人物简介页面。通过特定 CSS 样式设置了图片、文字等布局，展示了樱木花道在《灌篮高手》中的相关信息，如他是湘北高中篮球队球员等。</description>
    <pubDate>Sun, 05 Feb 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Web</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20170203131520</guid>
    <title>Qt5.6支持高分辨率</title>
    <link>https://ningto.com/blog/2017/20170203131520</link>
    <description>Qt5.6 支持高分辨率，创建 QApplication 前加入特定代码即可。高分辨电脑需注意：别混用获取尺寸位置 API，nativeEvent 中 MSG 的 x,y 坐标需除以缩放比获取正确值。</description>
    <pubDate>Fri, 03 Feb 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Qt</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20170202031335</guid>
    <title>Windows 7下硬盘安装Ubuntu 10.04简明教程（非Wubi安装，迁移2011-05-28）</title>
    <link>https://ningto.com/blog/2017/20170202031335</link>
    <description>介绍 Windows7 下硬盘安装 Ubuntu10.04 教程，需先下载安装 EasyBCD_1.7.2，复制文件并解压，通过 EasyBCD 操作，在 menu.lst 输入内容，重启后选择 NeoGrub Bootloader 进入光盘系统，按步骤安装，成功后可出现 Windows7 引导菜单。</description>
    <pubDate>Thu, 02 Feb 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Linux</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20170202031607</guid>
    <title>让程序只有一个应用程序实例在运行</title>
    <link>https://ningto.com/blog/2017/20170202031607</link>
    <description>文章介绍让程序只有一个实例运行的方法，开始加代码实现。有三种：一是找先前窗口实例并激活；二是用互斥对象，创建后判断是否已存在；三是用事件对象，创建后判断是否已存在，若已存在则直接返回。（迁移 2011 - 05 - 28）</description>
    <pubDate>Thu, 02 Feb 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Windows</category><category>cpp</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20170202032554</guid>
    <title>临界区 互斥量 信号量 事件</title>
    <link>https://ningto.com/blog/2017/20170202032554</link>
    <description>文章介绍了进程或线程同步互斥的四种控制方法：临界区速度快可串行化访问公共资源；互斥量可跨进程控制资源访问；信号量允许多线程同时访问有限资源；事件可通知线程同步。并分别给出各方法的操作原语及 MFC 类的使用示例，还通过实例展示了临界区和事件的用法。</description>
    <pubDate>Thu, 02 Feb 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Windows</category><category>cpp</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20170202032800</guid>
    <title>内存映射文件</title>
    <link>https://ningto.com/blog/2017/20170202032800</link>
    <description>总结：内存映射文件是一种内存管理方法，可将文件映射到进程虚拟地址空间，无需文件 I/O 操作和缓冲处理，适合管理大尺寸文件。文中给出 C++代码示例，通过创建文件、映射文件视图等操作实现内存映射。</description>
    <pubDate>Thu, 02 Feb 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Windows</category><category>cpp</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20170202033044</guid>
    <title>WTL按钮重绘</title>
    <link>https://ningto.com/blog/2017/20170202033044</link>
    <description>介绍了 WTL 按钮重绘的类及用法，需导入头文件，添加按钮控件并设 Ower Draw 属性为 True，在特定消息映射中添加代码，还给出了类的相关函数如 OnDrawItem 等的实现，可实现按钮不同状态下的位图绘制及相关操作。[from](http://www.codeproject.com/KB/wtl/mousetrack.aspx) （迁移 2011 - 05 - 09）</description>
    <pubDate>Thu, 02 Feb 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Windows</category><category>cpp</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20170202033406</guid>
    <title>WTL多页面显示实现方法</title>
    <link>https://ningto.com/blog/2017/20170202033406</link>
    <description>文章介绍 WTL 多页面显示实现方法，主对话框有三页面，设属性、成员变量，设置显示区域并创建页面，移动到指定区域，最后根据条件显示指定窗口，隐藏其他窗口，如显示第一页隐藏第二、三页。</description>
    <pubDate>Thu, 02 Feb 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Windows</category><category>cpp</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20170202135455</guid>
    <title>gitbook</title>
    <link>https://ningto.com/blog/2017/20170202135455</link>
    <description>gitbook链接 。</description>
    <pubDate>Thu, 02 Feb 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Tips</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20170129120741</guid>
    <title>npm常用命令</title>
    <link>https://ningto.com/blog/2017/20170129120741</link>
    <description>2017 年 1 月 29 日的文章“npm 常用命令”，虽为草稿但有相关图片。主要围绕 npm 的常用命令展开，未提及具体命令内容。</description>
    <pubDate>Sun, 29 Jan 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Web</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20170101153750</guid>
    <title>32位到64位程序移植</title>
    <link>https://ningto.com/blog/2017/20170101153750</link>
    <description>主要讲述 32 位到 64 位程序移植，以输入法为例，需编译 64 位 DLL 且注意内存、函数等方面问题。64 位系统有 SysWow64 兼容 32 位，输入法需两个 IME 分别放 System32 和 SysWow64，启动时系统根据应用程序位数加载相应 IME。</description>
    <pubDate>Thu, 26 Jan 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Windows</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20170126060117</guid>
    <title>WTL 一个很好用的ToolTip（迁移2011-03-13）</title>
    <link>https://ningto.com/blog/2017/20170126060117</link>
    <description>介绍了一个老外写的好用 ToolTip，解决两个小问题（鼠标划上立马弹出又消失、提示框停留时间短），给出源码及用法，需写入头文件、继承类等，还可看源码函数了解其他用法。</description>
    <pubDate>Thu, 26 Jan 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Windows</category><category>cpp</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20170126061849</guid>
    <title>WTL CComboBox 增加所有字体名（迁移2011-03-10）</title>
    <link>https://ningto.com/blog/2017/20170126061849</link>
    <description>2017 年 1 月 26 日记录为 CComboBox 控件增加系统字体名的过程。先定义并关联对象，再通过 EnumFontFamiliesEx 及回调函数获取字体名并添加到 CComboBox 中，注意相关参数设置和返回值，还需去掉带@号的字体名。</description>
    <pubDate>Thu, 26 Jan 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Windows</category><category>cpp</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20170126073438</guid>
    <title>DLL的编写与调用，简单示例（迁移2011-03-06）</title>
    <link>https://ningto.com/blog/2017/20170126073438</link>
    <description>介绍了 DLL 的编写与调用，包括新建 DLL 类型应用程序（myDll.cpp）及调用（TestDll.cpp）的代码，还提及显式和隐式调用方式及相关函数，如 extern &quot;C&quot;、_declspec 等，以及一个 apr 中的例子。</description>
    <pubDate>Thu, 26 Jan 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>cpp</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20170126073811</guid>
    <title>函数外初始化与函数内初始化</title>
    <link>https://ningto.com/blog/2017/20170126073811</link>
    <description>介绍函数外初始化与函数内初始化，通过测试代码说明。函数内初始化需注意参数带&amp;，为传递指针引用；函数外初始化参数带&amp;或不带&amp;均可，传进来是同一地址。认为第二种方式符合分配释放原则。</description>
    <pubDate>Thu, 26 Jan 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>cpp</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20171210125824</guid>
    <title>高质量子程序核查表（代码大全2）</title>
    <link>https://ningto.com/blog/2017/20171210125824</link>
    <description>这是高质量子程序核查表，包含大局事项如创建理由等 8 点及参数传递事项如参数表等 8 点，涵盖子程序各方面，从不同角度确保子程序质量，摘自《代码大全 2》。</description>
    <pubDate>Thu, 26 Jan 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Tips</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20170123053541</guid>
    <title>WTL安装到VS2008和VS2010中（迁移2011-02-26）</title>
    <link>https://ningto.com/blog/2017/20170123053541</link>
    <description>介绍 WTL 安装到 VS2008 和 VS2010 的方法。WTL8.0 支持 VS2005 ，8.1 支持 VS2008 。安装时需注意解压、设置 VC++目录等步骤，若遇错误可参考相关资料解决，VS2010 安装需下载特定文件并按步骤操作。</description>
    <pubDate>Mon, 23 Jan 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Windows</category><category>cpp</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20170122123702</guid>
    <title>依赖 关联 聚合 组合 泛化（迁移2011-01-17）</title>
    <link>https://ningto.com/blog/2017/20170122123702</link>
    <description>文章介绍了 UML 中类的关系，包括依赖、关联、聚合、组合和泛化。依赖是使用关系，关联是拥有关系，聚合和组合是整体 - 部分关系，聚合可分离，组合不可分离，泛化是父类与子类关系。并举例说明不同关系在不同问题域的表现和变化。</description>
    <pubDate>Sun, 22 Jan 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>cpp</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20170122124138</guid>
    <title>scanf、sscanf中的正则表达式（迁移2011-01-14）</title>
    <link>https://ningto.com/blog/2017/20170122124138</link>
    <description>介绍 scanf、sscanf 中的正则表达式，包括定制扫描集、读入地址、丢弃空白符等。通过多个实验展示 sscanf 用正则表达式格式化输入后字符串的变化，如不同条件下的拷贝和过滤等，还提到 msdn 中 sscanf 声明及可直接用正则表达式等内容。</description>
    <pubDate>Sun, 22 Jan 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>cpp</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20170122125950</guid>
    <title>分离WinMain中传进来的字符串（迁移2011-01-14）</title>
    <link>https://ningto.com/blog/2017/20170122125950</link>
    <description>文章主要讲分离 WinMain 中传进的字符串，WinMain 可接受外部字符串但获取的是整个，要获取多个需分离源字符串，文中给出 MSDN 介绍的方法，通过相关函数处理并输出结果。</description>
    <pubDate>Sun, 22 Jan 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Windows</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20170122130158</guid>
    <title>WTL自画按钮与文件对话框（迁移2011-01-14）</title>
    <link>https://ningto.com/blog/2017/20170122130158</link>
    <description>文章介绍了 WTL 自画按钮与文件对话框。包含自画按钮类 CBmpEixtBtn 的定义及相关操作，如在 OnInitDialog 中进行子类化；还有文件对话框相关代码，通过 BROWSEINFO 等设置获取选择目录并显示在编辑框中。</description>
    <pubDate>Sun, 22 Jan 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Windows</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20170122131720</guid>
    <title>Win32 API笔记（迁移2011-01-12）</title>
    <link>https://ningto.com/blog/2017/20170122131720</link>
    <description>这是 Win32 API 笔记，包含创建非模式对话框、静态文本控件、显示图片等操作示例，还涉及系统托盘、获取屏幕尺寸等内容，以及诸多关于 Win32 API 的细节和用法。</description>
    <pubDate>Sun, 22 Jan 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Windows</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20170122133000</guid>
    <title>gtk改变button的字体大小（迁移2011-01-09 ）</title>
    <link>https://ningto.com/blog/2017/20170122133000</link>
    <description>2017 年 1 月 22 日，文章介绍通过取出 GtkButton 里的 label 并更改其字体来改变 button 字体大小，利用 pango 相关代码实现，安装 gtk 后自带 pango。</description>
    <pubDate>Sun, 22 Jan 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Linux</category><category>cpp</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20170122133306</guid>
    <title>const用法（迁移2011-01-04）</title>
    <link>https://ningto.com/blog/2017/20170122133306</link>
    <description>const 可指定语义约束，编译器强制实施。函数参数加 const 有不同含义，返回值前加 const 及类成员函数后加 const 也有特定规则，如函数参数加 const 可限制被指物或指针，类成员函数后加 const 不能给成员变量赋值，可用 mutable 解决。</description>
    <pubDate>Sun, 22 Jan 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>cpp</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20170119145226</guid>
    <title>SetWindowLongPtr and GetWindowLongPtr 用法 实例（迁移2011-01-28）</title>
    <link>https://ningto.com/blog/2017/20170119145226</link>
    <description>介绍 SetWindowLongPtr 与 GetWindowLongPtr 两种用法，重点阐述第二种在额外存储空间设置和获取值。以简单例子展示，分配堆内存并通过这两个函数操作，注意 32 位和 64 位系统指针字节数对偏移位置的影响。</description>
    <pubDate>Thu, 19 Jan 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Windows</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20170119145513</guid>
    <title>类模板之栈（迁移2011-01-19）</title>
    <link>https://ningto.com/blog/2017/20170119145513</link>
    <description>介绍类模板之栈，给出`myStack.h`、`myStack.cpp`和`main.cpp`代码。`myStack.h`定义类模板`CMyStack`，`myStack.cpp`实现其成员函数，`main.cpp`创建并使用`CMyStack&lt;int&gt;`对象进行操作，展示栈的基本功能。</description>
    <pubDate>Thu, 19 Jan 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>cpp</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20170119150239</guid>
    <title>可变参数（迁移2011-01-18）</title>
    <link>https://ningto.com/blog/2017/20170119150239</link>
    <description>介绍了可变参数，C 编译器提供宏处理，有 ANSI 标准形式和与 UNIX System V 兼容形式，通过 va_start、va_arg、va_end 处理参数，还给出具体代码示例，如 demo 函数和 CLogger 类的 Write 函数等。</description>
    <pubDate>Thu, 19 Jan 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>cpp</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20170116102439</guid>
    <title>libcurl静态库编译需要支持XP</title>
    <link>https://ningto.com/blog/2017/20170116102439</link>
    <description>介绍 libcurl 静态库编译需支持 XP 的相关内容，给出 github 地址。详细步骤为打开 curl/winbuild/MakefileBuild.vc 文件添加特定内容，在 VS2013 命令提示工具下 cd 到相应目录运行命令，最终在 curl/builds 目录可看到生成文件。</description>
    <pubDate>Mon, 16 Jan 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>cpp</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20170115115854</guid>
    <title>今天开始决定写博客（迁移2010-12-26）</title>
    <link>https://ningto.com/blog/2017/20170115115854</link>
    <description>2017 年 1 月 15 日，作者决定开始写博客记录工作学习历程，虽曾因原因和惰性未写成，但现受汪国真《热爱生命》诗激励，希望多年后能回忆起当初。</description>
    <pubDate>Sun, 15 Jan 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Tools</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20170115121650</guid>
    <title>const_cast、static_cast、reinterpret_cast、dynamic_cast（迁移2010-12-27）</title>
    <link>https://ningto.com/blog/2017/20170115121650</link>
    <description>C++有 const_cast、static_cast、reinterpret_cast、dynamic_cast 等转型。const_cast 剥除 const 修饰符；static_cast 用于类的父子类转换需显式说明；reinterpret_cast 用于指针转换，字节数相同可按位转换；dynamic_cast 用于多态类型向下转型，执行运行期检查。</description>
    <pubDate>Sun, 15 Jan 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>cpp</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20170115122422</guid>
    <title>宽字符函数与普通C函数（迁移2010-12-28）</title>
    <link>https://ningto.com/blog/2017/20170115122422</link>
    <description>文章介绍了宽字符函数与普通 C 函数，如 iswalnum 等与 isalnum 等的对应关系，列举了多种宽字符函数及其对应的普通 C 函数，还提供了更多函数的查看链接。</description>
    <pubDate>Sun, 15 Jan 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>cpp</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20170115125356</guid>
    <title>拷贝构造与赋值操作(string实例)（迁移2010-12-28）</title>
    <link>https://ningto.com/blog/2017/20170115125356</link>
    <description>介绍了 C++中 MyString 类的拷贝构造与赋值操作，若未自定义这两个操作，C++会生成缺省操作符，导致内存泄漏等问题，如 str1 和 str2 赋值后指向同一内存，析构时会出错。</description>
    <pubDate>Sun, 15 Jan 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>cpp</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20170115130757</guid>
    <title>gtk窗口拖动（迁移2010-12-31）</title>
    <link>https://ningto.com/blog/2017/20170115130757</link>
    <description>文章介绍 gtk 窗口拖动相关内容。先加入事件，关联信号与 button 按下事件，实现窗口拖动。还能使窗口不能移出桌面最左边并在标题栏显示位置坐标，通过关联信号与事件及相应实现函数来完成。</description>
    <pubDate>Sun, 15 Jan 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Linux</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20170109235224</guid>
    <title>给一组标签设置状态</title>
    <link>https://ningto.com/blog/2017/20170109235224</link>
    <description>文章介绍给一组标签设置状态的方法，当鼠标点击标签时，若有“active”类则移除，无则添加。通过 jQuery 代码实现，对多个不同类别的标签进行点击状态设置。</description>
    <pubDate>Mon, 09 Jan 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Web</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20170108105247</guid>
    <title>mongoose分页查询</title>
    <link>https://ningto.com/blog/2017/20170108105247</link>
    <description>介绍了 mongoose 分页查询，PAGE_COUNT 为每页 item 数，page 是当前页面标号。通过 schema.find 结合 skip、limit 和 sort 实现分页查询，代码简洁高效。</description>
    <pubDate>Sun, 08 Jan 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Node.js</category><category>MongoDB</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20170108125634</guid>
    <title>android app 微信热门文章精选</title>
    <link>https://ningto.com/blog/2017/20170108125634</link>
    <description>这是关于 android app 微信热门文章精选的介绍。用 react native 做小软件，通过 showapi 获取文章，展示了 index.android.js 中初始化文章列表等内容，还有 articleList.js 的文章列表显示等，以及 showArticle.js 和 typeList.js 的相关部分。</description>
    <pubDate>Sun, 08 Jan 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Mobile</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20170108131556</guid>
    <title>android app 笑话</title>
    <link>https://ningto.com/blog/2017/20170108131556</link>
    <description>2017 年 1 月 8 日的“android app 笑话”，用 react native 开发，通过 showapi 获取多种笑话内容，github 地址及 apk 下载地址已给出，react-native-scrollable-tab-view 组件好用且代码可看 github。</description>
    <pubDate>Sun, 08 Jan 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Mobile</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20171210125830</guid>
    <title>DeprecationWarning  Mongoose  mpromise is deprecated</title>
    <link>https://ningto.com/blog/2017/20171210125830</link>
    <description>2017 年 1 月 8 日的文章提到 Mongoose 的 mpromise 被弃用，发出 DeprecationWarning。去掉此警告的方法是在代码中添加 `mongoose.Promise = global.Promise;` 。</description>
    <pubDate>Sun, 08 Jan 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Node.js</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20170107015326</guid>
    <title>mmbiz.qpic.cn图片防盗链</title>
    <link>https://ningto.com/blog/2017/20170107015326</link>
    <description>文章介绍了 mmbiz.qpic.cn 图片防盗链，包括防盗链系统含义（防范盗链，防止他人绕过展示页盗用资源）、实现原理（基于 HTTP 协议的 referer 字段跟踪来源进行处理），以及针对该网站的解决方法（在地址前加特定字符串或在 html head 中加入特定 meta 标签）。</description>
    <pubDate>Sat, 07 Jan 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Web</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20170105142538</guid>
    <title>webstorm eap 免费版</title>
    <link>https://ningto.com/blog/2017/20170105142538</link>
    <description>2017 年 1 月 5 日的文章，提及 webstorm eap 免费版，标签为 Web，可通过[http://confluence.jetbrains.com/display/WI/WebStorm+EAP](http://confluence.jetbrains.com/display/WI/WebStorm+EAP)获取。</description>
    <pubDate>Thu, 05 Jan 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Web</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20170103142445</guid>
    <title>网页上传图片失败</title>
    <link>https://ningto.com/blog/2017/20170103142445</link>
    <description>2017 年 1 月 3 日，网页上传图片用 chrome 一直失败，推测是安装屏蔽插件所致，换成 IE 后成功，可见插件可能影响网页图片上传。</description>
    <pubDate>Tue, 03 Jan 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Web</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20170101153751</guid>
    <title>mongodb安装（windows, ubuntu）</title>
    <link>https://ningto.com/blog/2017/20170101153751</link>
    <description>文章介绍 mongodb 在 windows 和 ubuntu 上的安装及相关操作。windows 需官网下载安装，指定路径创建 data/db 目录，安装服务并指定日志和数据库路径，可通过命令启动或停止；ubuntu 直接 apt install mongodb，可用相应命令启动和关闭服务，还介绍了基本命令及跨平台界面管理工具。</description>
    <pubDate>Sun, 01 Jan 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Windows</category><category>MongoDB</category><category>Database</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20170101153902</guid>
    <title>存储git账号信息不用每次都输入</title>
    <link>https://ningto.com/blog/2017/20170101153902</link>
    <description>2017 年 1 月 1 日的文章《存储 git 账号信息不用每次都输入》，可在.git 目录下 config 文件中添加“[credential]\n    helper = store”来存储账号密码，无需每次输入。</description>
    <pubDate>Sun, 01 Jan 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Tools</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20170101153940</guid>
    <title>Qt自定义MessageBox</title>
    <link>https://ningto.com/blog/2017/20170101153940</link>
    <description>总结：2017 年 1 月 1 日的“Qt 自定义 MessageBox”，需继承自 QDialog，通过 exec 显示窗口，done 关闭窗口并返回值，与 C/C++及 Qt 相关。</description>
    <pubDate>Sun, 01 Jan 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>cpp</category><category>Qt</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20170101154025</guid>
    <title>windows 获取剪切板中的图片大小</title>
    <link>https://ningto.com/blog/2017/20170101154025</link>
    <description>本文介绍了在 Windows 中用 C/C++获取剪切板中图片大小的代码。通过判断剪切板格式，打开剪切板，获取数据并转换为 DIB 结构，从而得到图片的宽度和高度，还提供了获取最后错误码的函数。</description>
    <pubDate>Sun, 01 Jan 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Windows</category><category>cpp</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20170101154930</guid>
    <title>linux git ssh配置</title>
    <link>https://ningto.com/blog/2017/20170101154930</link>
    <description>介绍了 linux git ssh 配置步骤，先设置用户信息，再进入 ~/.ssh 目录生成密钥对，拷贝 id_rsa.pub 内容添加到 github，最后通过 ssh -T git@github.com 验证，即可使用 git clone 命令。</description>
    <pubDate>Sun, 01 Jan 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Tools</category>
  </item>

  <item>
    <guid>https://ningto.com/blog/2017/20170101155326</guid>
    <title>ubuntu上安装最新版nodejs</title>
    <link>https://ningto.com/blog/2017/20170101155326</link>
    <description>2017 年 1 月 1 日在 ubuntu 上安装最新版 nodejs，当前版本为 v6.9.2。通过 curl 下载、tar 解压、configure 配置、make 编译、make install 安装等步骤完成安装。</description>
    <pubDate>Sun, 01 Jan 2017 00:00:00 GMT</pubDate>
    <author>address@yoursite.com (ningto.com)</author>
    <category>Node.js</category>
  </item>

    </channel>
  </rss>
