<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>文章</title><link>https://blog.shuaizhang.cc/zh-hans/posts/</link><description>按时间倒序浏览全部文章摘要。</description><generator>Hugo</generator><language>zh-Hans</language><lastBuildDate>Tue, 24 Feb 2026 15:29:33 +0000</lastBuildDate><atom:link href="https://blog.shuaizhang.cc/zh-hans/posts/index.xml" rel="self" type="application/rss+xml"/><item><title>Model Context Protocol Deep Dive</title><link>https://blog.shuaizhang.cc/zh-hans/posts/model-context-protocol-deep-dive/</link><pubDate>Tue, 24 Feb 2026 00:00:00 +0000</pubDate><guid>https://blog.shuaizhang.cc/zh-hans/posts/model-context-protocol-deep-dive/</guid><description>这篇文章的主要内容是深入了解和对比当前（2026年2月19日） Model Context Protocol（MCP）的版本的演进和功能集合，以及 MCP 服务端/客户端框架对标准的支持程度。这篇文章的主要目的是对于使用 MCP 时的团队决策进行支持，包括应当采纳哪些功能集合，禁止使用哪些功能集合，和其他非 AI 专属领域的通信协议，例如 gRPC，的兼容程度等等。实现层面主要包括 Python 和 C# 生态。</description></item><item><title>我的第二篇文档</title><link>https://blog.shuaizhang.cc/zh-hans/posts/my-second-post/</link><pubDate>Tue, 21 Oct 2025 22:54:56 -0700</pubDate><guid>https://blog.shuaizhang.cc/zh-hans/posts/my-second-post/</guid><description>用于验证 Hugo 与 Asciidoctor 集成是否正常工作的简短示例文档。</description></item><item><title>[翻译]为什么静态语言会陷入复杂性</title><link>https://blog.shuaizhang.cc/zh-hans/posts/why-static-languages-suffer-from-complexity-zh-hans/</link><pubDate>Mon, 13 Oct 2025 00:00:00 +0000</pubDate><guid>https://blog.shuaizhang.cc/zh-hans/posts/why-static-languages-suffer-from-complexity-zh-hans/</guid><description>本文探讨静态语言为何在追求“表达力”时反而滋生复杂度。作者提出“静态-动态二象性”：同一抽象在编译期与运行期分裂，导致不一致与特性重复，引发学习曲线陡峭、宏与模板泛滥、类型层与值层割裂。文中以 Rust、{cpp}、Haskell 等举例对比记录/数组、和类型/树、递归/类型归纳，展示逻辑可在两层互映却难以复用。作者评析 Idris 的依赖类型与 Zig 的 comptime 作为潜在出路，并呼吁在保留编译期保障的同时减少二象性，重新思考语言设计。</description></item><item><title>[翻译]Orgdown —— 文本文档全新轻量级标记标准</title><link>https://blog.shuaizhang.cc/zh-hans/posts/orgdown-translation-zh-hans/</link><pubDate>Fri, 12 Sep 2025 00:00:00 +0000</pubDate><guid>https://blog.shuaizhang.cc/zh-hans/posts/orgdown-translation-zh-hans/</guid><description>本文介绍了一种新的轻量级标记语法标准 Orgdown，旨在把 Org-mode 的标记语言与其 Emacs 实现区分开来。作者认为目前 Org-mode 被误解为“只有 Emacs 的工具”，而标记语言本身的语法设计有很高的价值，可以被更广泛采用。虽然 Markdown 已经很流行，但它在功能和一致性上存在局限，而 Orgdown 既保持简洁，又能提供更强的表达能力和兼容性指数，适合需要更可靠语法支持的用户与工具生态。Orgdown 第一等级 (“Orgdown1”) 定义了一组基本语法（如标题、列表、链接、表格等），适合大多数文字处理场景，并建立了一个兼容性指数来评估各个工具对这些语法的支持情况。文章还号召社区参与，让 Orgdown 成为一个被广泛理解、标准化、工具可用性良好的标记语言。</description></item><item><title>[翻译] Monadic parsing in Haskell</title><link>https://blog.shuaizhang.cc/zh-hans/posts/monadic-parsing-in-haskell-translation/</link><pubDate>Wed, 27 Aug 2025 00:00:00 +0000</pubDate><guid>https://blog.shuaizhang.cc/zh-hans/posts/monadic-parsing-in-haskell-translation/</guid><description>翻译并讲解 Hutton 与 Meijer 的经典论文，介绍如何用 Monad、组合子和 do 记法在 Haskell 中构建递归下降解析器。</description></item><item><title>使用 Azure Container Registry 缓存 Docker Hub 镜像</title><link>https://blog.shuaizhang.cc/zh-hans/posts/azure-container-registry-cache-dockerhub/</link><pubDate>Sun, 09 Jun 2024 00:00:00 +0000</pubDate><guid>https://blog.shuaizhang.cc/zh-hans/posts/azure-container-registry-cache-dockerhub/</guid><description>介绍如何在 Azure Container Registry 中配置 artifact cache，把 Docker Hub 与 GHCR 镜像映射到私有 ACR 命名空间并供 Docker 客户端拉取。</description></item><item><title>C# 命令行应用使用 MSAL 和 Web Account Manager 机制验证用户身份</title><link>https://blog.shuaizhang.cc/zh-hans/posts/csharp-console-app-login-msal-wam/</link><pubDate>Tue, 04 Jun 2024 00:00:00 +0000</pubDate><guid>https://blog.shuaizhang.cc/zh-hans/posts/csharp-console-app-login-msal-wam/</guid><description>记录 C# 控制台应用如何结合 MSAL 与 Web Account Manager 完成交互式登录，并获取访问受保护 API 所需的 Access Token。</description></item><item><title>ASP.NET Core 让 OpenTelemetry 适配自定义 HTTP Header</title><link>https://blog.shuaizhang.cc/zh-hans/posts/aspnetcore-opentelemetry-adapt-custom-trace-id/</link><pubDate>Fri, 31 May 2024 00:00:00 +0000</pubDate><guid>https://blog.shuaizhang.cc/zh-hans/posts/aspnetcore-opentelemetry-adapt-custom-trace-id/</guid><description>说明如何在 ASP.NET Core 中把旧式 X-Request-Id 与 X-Trace-Id 请求头转换为 W3C Trace Context，从而接入 OpenTelemetry 链路追踪。</description></item><item><title>让 .NET 的 Logger 结构化的打印 Scope</title><link>https://blog.shuaizhang.cc/zh-hans/posts/dotnet-structure-log-scope/</link><pubDate>Thu, 30 May 2024 00:00:00 +0000</pubDate><guid>https://blog.shuaizhang.cc/zh-hans/posts/dotnet-structure-log-scope/</guid><description>Microsoft.Extensions.Logging 打印 Scope 的时候默认是个字符串，这篇文章告诉你如何让其保持 Scope 的结构化输出</description></item><item><title>MSBuild 总结</title><link>https://blog.shuaizhang.cc/zh-hans/posts/msbuild-summary/</link><pubDate>Wed, 27 Jul 2022 00:00:00 +0000</pubDate><guid>https://blog.shuaizhang.cc/zh-hans/posts/msbuild-summary/</guid><description>总结 MSBuild 的基本概念和扩展方法</description></item><item><title>C++ 侵入式链表总结</title><link>https://blog.shuaizhang.cc/zh-hans/posts/instrusive-linked-list-summary/</link><pubDate>Sun, 05 Jun 2022 00:00:00 +0000</pubDate><guid>https://blog.shuaizhang.cc/zh-hans/posts/instrusive-linked-list-summary/</guid><description>总结侵入式链表的主要优缺点和在 C++ 语言参考实现</description></item><item><title>论文笔记：[SOSP'01] SEDA: An Architecture for Well-Conditioned, Scalable Internet Services</title><link>https://blog.shuaizhang.cc/zh-hans/posts/seda/</link><pubDate>Mon, 28 Feb 2022 00:00:00 +0000</pubDate><guid>https://blog.shuaizhang.cc/zh-hans/posts/seda/</guid><description>本文回顾 SEDA 架构如何通过分阶段事件驱动设计提升高负载下的可扩展性与稳定性。</description></item><item><title>论文笔记：[EDBT'16] Designing Access Methods: The RUM Conjecture</title><link>https://blog.shuaizhang.cc/zh-hans/posts/rum-conjecture/</link><pubDate>Thu, 07 May 2020 00:00:00 +0000</pubDate><guid>https://blog.shuaizhang.cc/zh-hans/posts/rum-conjecture/</guid><description>本文介绍 RUM 猜想对读放大、写放大与内存开销三者权衡的观点，并讨论其对存储结构设计的启发。</description></item><item><title>自制分布式存储系统入门篇：系统概要设计</title><link>https://blog.shuaizhang.cc/zh-hans/posts/distributed-storage-from-scratch-3/</link><pubDate>Sat, 08 Feb 2020 00:00:00 +0000</pubDate><guid>https://blog.shuaizhang.cc/zh-hans/posts/distributed-storage-from-scratch-3/</guid><description>本文给出自制分布式存储系统的概要设计，介绍面向用户的 API 与核心模块分工。</description></item><item><title>自制分布式存储系统入门篇：背景介绍</title><link>https://blog.shuaizhang.cc/zh-hans/posts/distributed-storage-from-scratch-2/</link><pubDate>Sat, 28 Dec 2019 00:00:00 +0000</pubDate><guid>https://blog.shuaizhang.cc/zh-hans/posts/distributed-storage-from-scratch-2/</guid><description>本文从文件系统、关系型数据库与磁盘特性出发，为自制分布式存储系统系列补充背景知识。</description></item><item><title>自制分布式存储系统入门篇：序章</title><link>https://blog.shuaizhang.cc/zh-hans/posts/distributed-storage-from-scratch-1/</link><pubDate>Thu, 26 Dec 2019 00:00:00 +0000</pubDate><guid>https://blog.shuaizhang.cc/zh-hans/posts/distributed-storage-from-scratch-1/</guid><description>本文作为系列序章，说明自制分布式存储系统的目标、总体架构与后续内容安排。</description></item><item><title>论文笔记：[OSDI'16] Slicer: Auto-Sharding for Datacenter Applications</title><link>https://blog.shuaizhang.cc/zh-hans/posts/google-slicer/</link><pubDate>Sun, 13 Oct 2019 00:00:00 +0000</pubDate><guid>https://blog.shuaizhang.cc/zh-hans/posts/google-slicer/</guid><description>本文介绍 Google Slicer 自动分片组件的控制面、客户端路由与负载均衡设计。</description></item><item><title>论文笔记：[FTNDB'07] Architecture of a Database System</title><link>https://blog.shuaizhang.cc/zh-hans/posts/architecture-of-a-database-system/</link><pubDate>Sun, 07 Jul 2019 00:00:00 +0000</pubDate><guid>https://blog.shuaizhang.cc/zh-hans/posts/architecture-of-a-database-system/</guid><description>本文摘录并梳理关系型数据库系统的整体架构，包括查询处理、执行器与存储管理等核心组件。</description></item><item><title>论文笔记：[OSDI'10] Large-scale Incremental Processing Using Distributed Transactions and Notifications</title><link>https://blog.shuaizhang.cc/zh-hans/posts/percolator/</link><pubDate>Sun, 09 Jun 2019 00:00:00 +0000</pubDate><guid>https://blog.shuaizhang.cc/zh-hans/posts/percolator/</guid><description>本文概述 Google Percolator 如何在 Bigtable 之上实现跨行事务与可靠通知，并聚焦事务部分。</description></item><item><title>论文笔记：[CONCUR'15] A Framework for Transactional Consistency Models with Atomic Visibility</title><link>https://blog.shuaizhang.cc/zh-hans/posts/transactional-consistency-models/</link><pubDate>Sun, 26 May 2019 00:00:00 +0000</pubDate><guid>https://blog.shuaizhang.cc/zh-hans/posts/transactional-consistency-models/</guid><description>本文介绍一篇事务一致性模型论文的形式化框架，并解释原子可见性等概念的直观含义。</description></item><item><title>论文笔记：[FAST'03] ARC: A Self-Tuning, Low Overhead Replacement Cache</title><link>https://blog.shuaizhang.cc/zh-hans/posts/arc-one-up-on-lru/</link><pubDate>Sat, 30 Mar 2019 00:00:00 +0000</pubDate><guid>https://blog.shuaizhang.cc/zh-hans/posts/arc-one-up-on-lru/</guid><description>本文总结 ARC 缓存替换算法如何在 recency 与 frequency 之间自适应平衡，并说明其相对 LRU 的优势。</description></item><item><title>分布式系统入门介绍</title><link>https://blog.shuaizhang.cc/zh-hans/posts/distributed-systems-101/</link><pubDate>Fri, 22 Mar 2019 00:00:00 +0000</pubDate><guid>https://blog.shuaizhang.cc/zh-hans/posts/distributed-systems-101/</guid><description>本文面向入门读者概览分布式系统的基本问题、常见方案、技术难点与学习方向。</description></item><item><title>大规模集群管理和运维自动化</title><link>https://blog.shuaizhang.cc/zh-hans/posts/cluster-management-and-devops/</link><pubDate>Wed, 29 Aug 2018 00:00:00 +0000</pubDate><guid>https://blog.shuaizhang.cc/zh-hans/posts/cluster-management-and-devops/</guid><description>本文围绕大规模集群运维自动化，讨论自动发现故障、自动修复与安全性等核心问题。</description></item><item><title>论文笔记：[Operating Systems Review 2007] Autopilot: Automatic Data Center Management</title><link>https://blog.shuaizhang.cc/zh-hans/posts/microsoft-autopilot/</link><pubDate>Sun, 15 Jul 2018 00:00:00 +0000</pubDate><guid>https://blog.shuaizhang.cc/zh-hans/posts/microsoft-autopilot/</guid><description>本文概述微软 Autopilot 集群管理系统的设计目标，以及机器生命周期、应用部署和自动化运维机制。</description></item><item><title>CAP，ACID，我们能做什么</title><link>https://blog.shuaizhang.cc/zh-hans/posts/cap-acid-what-can-we-do/</link><pubDate>Sun, 20 May 2018 00:00:00 +0000</pubDate><guid>https://blog.shuaizhang.cc/zh-hans/posts/cap-acid-what-can-we-do/</guid><description>本文从 CAP 理论与 ACID 性质出发，讨论分布式存储系统中一致性、可用性与事务设计的取舍。</description></item><item><title>哈希表总结及其高级话题讨论</title><link>https://blog.shuaizhang.cc/zh-hans/posts/hash-table-summary-and-advanced-topics/</link><pubDate>Sat, 14 Apr 2018 00:00:00 +0000</pubDate><guid>https://blog.shuaizhang.cc/zh-hans/posts/hash-table-summary-and-advanced-topics/</guid><description>本文总结哈希表在冲突、扩容等方面的常见问题，并讨论完美哈希等高级主题。</description></item><item><title>工作中常用到的 C++ 功能子集</title><link>https://blog.shuaizhang.cc/zh-hans/posts/practical-cpp-subset/</link><pubDate>Mon, 09 Apr 2018 00:00:00 +0000</pubDate><guid>https://blog.shuaizhang.cc/zh-hans/posts/practical-cpp-subset/</guid><description>本文总结系统编程场景下常用的 C++ 功能子集，包括 RAII、智能指针、移动语义等实践建议。</description></item><item><title>论文笔记：[ICDE'18] Anna: A KVS for any scale</title><link>https://blog.shuaizhang.cc/zh-hans/posts/anna-kvs/</link><pubDate>Sun, 08 Apr 2018 00:00:00 +0000</pubDate><guid>https://blog.shuaizhang.cc/zh-hans/posts/anna-kvs/</guid><description>本文介绍 Anna 键值存储如何用 actor 模型与基于 lattice 的冲突解决机制实现高性能与可调一致性。</description></item><item><title>单机存储引擎的基础方法</title><link>https://blog.shuaizhang.cc/zh-hans/posts/storage-engine-basic/</link><pubDate>Fri, 06 Apr 2018 00:00:00 +0000</pubDate><guid>https://blog.shuaizhang.cc/zh-hans/posts/storage-engine-basic/</guid><description>本文从数据与索引布局、哈希表和树结构等角度总结单机存储引擎的常见设计方法。</description></item><item><title>每个程序员都应该会点形式化证明</title><link>https://blog.shuaizhang.cc/zh-hans/posts/programmer-should-know-formal-verification/</link><pubDate>Fri, 06 Apr 2018 00:00:00 +0000</pubDate><guid>https://blog.shuaizhang.cc/zh-hans/posts/programmer-should-know-formal-verification/</guid><description>本文以 lower_bound 为例说明如何用安全性与活性分析、数学归纳法来推导并验证二分搜索实现。</description></item><item><title>论文笔记：[OSDI'14] F4: Facebook's Warm BLOB Storage System</title><link>https://blog.shuaizhang.cc/zh-hans/posts/facebook-f4/</link><pubDate>Mon, 02 Apr 2018 00:00:00 +0000</pubDate><guid>https://blog.shuaizhang.cc/zh-hans/posts/facebook-f4/</guid><description>本文概述 Facebook F4 面向温数据对象存储的架构设计，以及纠删码和跨机房容错方案。</description></item><item><title>论文笔记：[OSDI'10] Finding a needle in Haystack: Facebook's photo storage</title><link>https://blog.shuaizhang.cc/zh-hans/posts/facebook-haystack/</link><pubDate>Sun, 01 Apr 2018 00:00:00 +0000</pubDate><guid>https://blog.shuaizhang.cc/zh-hans/posts/facebook-haystack/</guid><description>本文总结 Facebook Haystack 针对图片热存储场景的单机对象存储引擎设计与优化思路。</description></item><item><title>论文笔记：[USENIX ATC'14] In Search of an Understandable Consensus Algorithm (Raft)</title><link>https://blog.shuaizhang.cc/zh-hans/posts/raft/</link><pubDate>Thu, 29 Mar 2018 00:00:00 +0000</pubDate><guid>https://blog.shuaizhang.cc/zh-hans/posts/raft/</guid><description>本文介绍 Raft 的选主与日志复制机制，并对其与 Paxos 在理解和实现上的差异做了讨论。</description></item><item><title>论文笔记：Paxos Made Simple</title><link>https://blog.shuaizhang.cc/zh-hans/posts/paxos-made-simple/</link><pubDate>Fri, 16 Mar 2018 00:00:00 +0000</pubDate><guid>https://blog.shuaizhang.cc/zh-hans/posts/paxos-made-simple/</guid><description>本文概述 Paxos 的核心 safety 性质、提议流程，以及单条法案共识问题的基本推导。</description></item><item><title>论文笔记：[SOSP 2007] Dynamo: Amazon's Highly Available Key-value Store</title><link>https://blog.shuaizhang.cc/zh-hans/posts/amazon-dynamo/</link><pubDate>Mon, 12 Mar 2018 00:00:00 +0000</pubDate><guid>https://blog.shuaizhang.cc/zh-hans/posts/amazon-dynamo/</guid><description>梳理 Amazon Dynamo 论文中的一致性、复制、冲突处理与路由设计，并总结其为高可用 Key-Value 存储做出的关键工程取舍。</description></item><item><title>什么是 C++ 中的 const</title><link>https://blog.shuaizhang.cc/zh-hans/posts/what-is-const/</link><pubDate>Tue, 28 Apr 2015 00:00:00 +0000</pubDate><guid>https://blog.shuaizhang.cc/zh-hans/posts/what-is-const/</guid><description>本文梳理 C++ 中 const 的三种常见用法，分析其语义混淆与局限，并讨论 constexpr 等替代思路。</description></item><item><title>对“编程小练习：拆分自然数”的解答</title><link>https://blog.shuaizhang.cc/zh-hans/posts/split-nature-number-answer/</link><pubDate>Tue, 19 Aug 2014 00:00:00 +0000</pubDate><guid>https://blog.shuaizhang.cc/zh-hans/posts/split-nature-number-answer/</guid><description>在老赵的博客上看到这样一道题，觉得非常有意思，难度适中，非常适合作面试题。试着用自己的方法解释清楚这道题的解法。</description></item><item><title>从一道面试题看不同编程语言的表述能力</title><link>https://blog.shuaizhang.cc/zh-hans/posts/different-programming-languages/</link><pubDate>Sun, 03 Aug 2014 00:00:00 +0000</pubDate><guid>https://blog.shuaizhang.cc/zh-hans/posts/different-programming-languages/</guid><description>很多人都不明白，不同的编程语言具有不同的表述能力，这就是我们为什么有了汇编之后还需要更高级的编程语言。在软件规模愈发庞大的现在，C 和 C++ 语言表述能力的不足越发的明显了。我们应该尽可能的选用高级的编程语言完成我们的任务，在需要性能的地方，使用 Profiling，而不是在一开始就选用 C/C++ 这样的语言去工作。</description></item><item><title>检查加法溢出的几种方法的比较</title><link>https://blog.shuaizhang.cc/zh-hans/posts/check-overflow-continued/</link><pubDate>Thu, 20 Feb 2014 00:00:00 +0000</pubDate><guid>https://blog.shuaizhang.cc/zh-hans/posts/check-overflow-continued/</guid><description>实际使用中会有需要提前检测出是否会发生算数溢出，C# 语言中提供了 checked 关键字来解决这一问题，C/C++ 语言又该怎样做呢？本文从汇编语句的层面，对几种检查加法溢出的方法进行了比较和分析。受实验环境和个人知识所限，本文的应用范围仅限于 X86-64 体系结构。</description></item><item><title>谈补码</title><link>https://blog.shuaizhang.cc/zh-hans/posts/twos-complement/</link><pubDate>Sat, 25 Jan 2014 00:00:00 +0000</pubDate><guid>https://blog.shuaizhang.cc/zh-hans/posts/twos-complement/</guid><description>现在一谈到补码，很多人都会立刻说补码就是反码加一，虽然没说错，但是却没说到点子上。我更希望能够听到有人说补码就是负数对应原码的表示方式。这篇文章主要论述补码的本质，以及有符号整数二进制表示的原因。</description></item><item><title>使用内嵌汇编检查溢出</title><link>https://blog.shuaizhang.cc/zh-hans/posts/check-overflow-via-inline-asm/</link><pubDate>Mon, 28 Oct 2013 00:00:00 +0000</pubDate><guid>https://blog.shuaizhang.cc/zh-hans/posts/check-overflow-via-inline-asm/</guid><description>在面试中经常考到，实际项目中也经常需要面临这样一个问题，即如何判断一个整数操作是否发生了溢出。C# 语言提供了 checked 关键字用于处理这一问题，在 C 语言中我们可以使用内嵌汇编语句来检查溢出。</description></item><item><title>重载和覆盖的区别</title><link>https://blog.shuaizhang.cc/zh-hans/posts/the-differences-between-overloading-and-overriding/</link><pubDate>Tue, 08 Oct 2013 00:00:00 +0000</pubDate><guid>https://blog.shuaizhang.cc/zh-hans/posts/the-differences-between-overloading-and-overriding/</guid><description>重载和覆盖是笔试和面试中经常考的两个概念。这两个概念从概念本身到实现机理都不相同，但是表现形式却有相似之处。本文从实现机理入手，深入讲解两者的不同之处。</description></item><item><title>面向对象技术中的三大特征</title><link>https://blog.shuaizhang.cc/zh-hans/posts/three-characteristics-of-object-oriented-programming/</link><pubDate>Mon, 07 Oct 2013 00:00:00 +0000</pubDate><guid>https://blog.shuaizhang.cc/zh-hans/posts/three-characteristics-of-object-oriented-programming/</guid><description>面试中经常会问面向对象技术中的三大特征，但是却没有一本书把这三个特征讲透彻，这里尝试综合几本书中的内容，从不同角度理解这三大特征。</description></item><item><title>一道面试题的多种解法</title><link>https://blog.shuaizhang.cc/zh-hans/posts/different-solutions-to-an-interview-problem/</link><pubDate>Thu, 05 Sep 2013 00:00:00 +0000</pubDate><guid>https://blog.shuaizhang.cc/zh-hans/posts/different-solutions-to-an-interview-problem/</guid><description>一棵二叉搜索树中，有一个节点不满足二叉搜索树的性质，找出这一节点。</description></item><item><title>Solution to POJ 1061</title><link>https://blog.shuaizhang.cc/zh-hans/posts/solution-to-poj-1061/</link><pubDate>Tue, 13 Aug 2013 00:00:00 +0000</pubDate><guid>https://blog.shuaizhang.cc/zh-hans/posts/solution-to-poj-1061/</guid><description>将问题转换为二元线性丢番图方程，然后运用扩展欧几里德算法求解。</description></item><item><title>使用 GhostScript 将 PDF 中的指定页面导出为清晰的 PNG 文件</title><link>https://blog.shuaizhang.cc/zh-hans/posts/export-pdf-using-ghostscript/</link><pubDate>Wed, 24 Jul 2013 00:00:00 +0000</pubDate><guid>https://blog.shuaizhang.cc/zh-hans/posts/export-pdf-using-ghostscript/</guid><description>通常使用 ImageMagick 导出 PDF 文件为图像，获得的图像通常都不够清晰。GhostScript因为能够解析PDF的底层，从而能够获得更为清晰的图像文件。</description></item><item><title>尾递归、CPS和将递归转化为循环的一般方法</title><link>https://blog.shuaizhang.cc/zh-hans/posts/tail-recursion-cps-and-recursion-to-loop/</link><pubDate>Thu, 18 Jul 2013 00:00:00 +0000</pubDate><guid>https://blog.shuaizhang.cc/zh-hans/posts/tail-recursion-cps-and-recursion-to-loop/</guid><description>本文介绍了什么是尾递归，什么是CPS，以及如何应用前两者将递归转化为循环。</description></item><item><title>Solution to POJ 1009</title><link>https://blog.shuaizhang.cc/zh-hans/posts/solution-to-poj-1009/</link><pubDate>Mon, 01 Jul 2013 00:00:00 +0000</pubDate><guid>https://blog.shuaizhang.cc/zh-hans/posts/solution-to-poj-1009/</guid><description>关键在于一定不能使用模拟法，并且要对几种情况进行有效的优化。</description></item><item><title>Solution to POJ 1018</title><link>https://blog.shuaizhang.cc/zh-hans/posts/solution-to-poj-1018/</link><pubDate>Wed, 26 Jun 2013 00:00:00 +0000</pubDate><guid>https://blog.shuaizhang.cc/zh-hans/posts/solution-to-poj-1018/</guid><description>Enumerate candidate bandwidths, compute the minimum total price for each one, and then maximize the final bandwidth-to-price ratio.</description></item><item><title>Solution to POJ 1019</title><link>https://blog.shuaizhang.cc/zh-hans/posts/solution-to-poj-1019/</link><pubDate>Wed, 26 Jun 2013 00:00:00 +0000</pubDate><guid>https://blog.shuaizhang.cc/zh-hans/posts/solution-to-poj-1019/</guid><description>Precompute the lengths of nested digit sequences, use binary search to locate the target block, and then extract the exact digit.</description></item><item><title>Solution to POJ 1045</title><link>https://blog.shuaizhang.cc/zh-hans/posts/solution-to-poj-1045/</link><pubDate>Wed, 26 Jun 2013 00:00:00 +0000</pubDate><guid>https://blog.shuaizhang.cc/zh-hans/posts/solution-to-poj-1045/</guid><description>Simplify the circuit equations, derive the closed-form relationship for the receiver voltage, and note the numeric-differentiation alternative.</description></item><item><title>C++ 的引用类型</title><link>https://blog.shuaizhang.cc/zh-hans/posts/reference-type-in-cpp/</link><pubDate>Fri, 23 Nov 2012 00:00:00 +0000</pubDate><guid>https://blog.shuaizhang.cc/zh-hans/posts/reference-type-in-cpp/</guid><description>本文结合一道 C++ 笔试题讨论引用类型的含义，以及如何通过禁用拷贝、提供虚析构等方式定义具有多态行为的类型。</description></item><item><title>POJ 1001 解题分析</title><link>https://blog.shuaizhang.cc/zh-hans/posts/solution-to-poj-1001/</link><pubDate>Sat, 10 Jul 2010 00:00:00 +0000</pubDate><guid>https://blog.shuaizhang.cc/zh-hans/posts/solution-to-poj-1001/</guid><description>这道题做了很多很多天，实在是非常不爽。一向最恶心高精度计算的题了，等有空了就写套类库出来，以后碰见就用 =w=</description></item><item><title>POJ 1002 解题分析</title><link>https://blog.shuaizhang.cc/zh-hans/posts/solution-to-poj-1002/</link><pubDate>Mon, 05 Jul 2010 00:00:00 +0000</pubDate><guid>https://blog.shuaizhang.cc/zh-hans/posts/solution-to-poj-1002/</guid><description>这道题使用排序来解决基本上一定会超时，使用二叉查找树来做就可以了</description></item></channel></rss>