<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0"
  xmlns:atom="http://www.w3.org/2005/Atom"
  xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Quiet Blog</title>
    <link>https://blog.pzc.moe/</link>
    
    <atom:link href="https://blog.pzc.moe/index.xml" rel="self" type="application/rss+xml"/>
    
    <description>I&#39;m here, as always</description>
    <pubDate>Tue, 20 Feb 2024 15:51:24 GMT</pubDate>
    <generator>http://hexo.io/</generator>
    
    <item>
      <title>在 macOS 上自动重解析 wireguard 中的域名</title>
      <link>https://blog.pzc.moe/articles/notes/auto-reresolve-wireguard-dns-macos/</link>
      <guid>https://blog.pzc.moe/articles/notes/auto-reresolve-wireguard-dns-macos/</guid>
      <pubDate>Tue, 20 Feb 2024 15:26:15 GMT</pubDate>
      
      <description>&lt;p&gt;当我们使用&lt;code&gt;wireguard-tools&lt;/code&gt;时，&lt;code&gt;wg-quick&lt;/code&gt;配置文件中的&lt;code&gt;Endpoint&lt;/code&gt;字段可以配置一个域名。但这个域名只会在&lt;code&gt;wg-quick up&lt;/code&gt;的时候解析一次，如果域名指向的地址经常变化，那么我们需要一个机制来定期去重新解析配置中的域名。&lt;/p&gt;
&lt;p&gt;&lt;a name=&quot;eKtah&quot;&gt;&lt;/a&gt;&lt;/p&gt;</description>
      
      
      
      
      <category domain="https://blog.pzc.moe/categories/notes/">notes</category>
      
      
      <category domain="https://blog.pzc.moe/tags/notes/">notes</category>
      
      <category domain="https://blog.pzc.moe/tags/network/">network</category>
      
      <category domain="https://blog.pzc.moe/tags/wireguard/">wireguard</category>
      
      
      <comments>https://blog.pzc.moe/articles/notes/auto-reresolve-wireguard-dns-macos/#disqus_thread</comments>
      
    </item>
    
    <item>
      <title>Placement New Conditionally Zeros out Memory</title>
      <link>https://blog.pzc.moe/articles/notes/placement-new-and-memset/</link>
      <guid>https://blog.pzc.moe/articles/notes/placement-new-and-memset/</guid>
      <pubDate>Wed, 11 May 2022 13:00:34 GMT</pubDate>
      
      <description>&lt;p&gt;之前公司在把项目使用的&lt;code&gt;gcc&lt;/code&gt;版本从&lt;code&gt;5.4&lt;/code&gt;升级到&lt;code&gt;7.5&lt;/code&gt;，迁移的过程中发现了一个存在了很久的访问未初始化成员导致 segfault 的问题。但奇怪的问题是使用旧版本&lt;code&gt;gcc&lt;/code&gt;来编译时从来没有触发过 segfault，经过一番调试后发现各大主流编译器都会在&lt;code&gt;placement new&lt;/code&gt;调用对象的构造函数之前插入清零目的内存的指令，这导致之前使用&lt;code&gt;gcc 5.4&lt;/code&gt;编译时那个未初始化的成员在实际上被置零了，而在切换到&lt;code&gt;gcc 7.5&lt;/code&gt;之后同样的编译选项编译器不再在&lt;code&gt;placement new&lt;/code&gt;之前插入内存清零动作，从而导致了 segfault。&lt;/p&gt;
&lt;p&gt;&lt;a name=&quot;VqECq&quot;&gt;&lt;/a&gt;&lt;/p&gt;</description>
      
      
      
      
      <category domain="https://blog.pzc.moe/categories/notes/">notes</category>
      
      
      <category domain="https://blog.pzc.moe/tags/notes/">notes</category>
      
      <category domain="https://blog.pzc.moe/tags/cpp/">cpp</category>
      
      
      <comments>https://blog.pzc.moe/articles/notes/placement-new-and-memset/#disqus_thread</comments>
      
    </item>
    
    <item>
      <title>odhcpd 中继模式原理、局限以及解决方案</title>
      <link>https://blog.pzc.moe/articles/notes/odhcpd-relay-mode-discuss/</link>
      <guid>https://blog.pzc.moe/articles/notes/odhcpd-relay-mode-discuss/</guid>
      <pubDate>Wed, 25 Nov 2020 20:47:59 GMT</pubDate>
      
      <description>&lt;p&gt;近日我学校终于开始试运行 IPv6 了，而我在配置路由器的过程中发现了一些由于上游配置不规范导致的各种问题（如下游客户端可获取 v6 地址但无法 ping 通外网等），于是就有了本文，希望能够普及相关知识以及帮助遇到类似问题的人。&lt;br /&gt;本文主要针对常见的高校 IPv6 配置，即连入校园网、认证（可选）后路由器仅能获得一个 &amp;#x2F;64 地址，无 PD 获取。&lt;/p&gt;
&lt;p&gt;&lt;a name=&quot;mprWF&quot;&gt;&lt;/a&gt;&lt;/p&gt;</description>
      
      
      
      
      <category domain="https://blog.pzc.moe/categories/notes/">notes</category>
      
      
      <category domain="https://blog.pzc.moe/tags/notes/">notes</category>
      
      <category domain="https://blog.pzc.moe/tags/network/">network</category>
      
      <category domain="https://blog.pzc.moe/tags/ipv6/">ipv6</category>
      
      <category domain="https://blog.pzc.moe/tags/odhcpd/">odhcpd</category>
      
      
      <comments>https://blog.pzc.moe/articles/notes/odhcpd-relay-mode-discuss/#disqus_thread</comments>
      
    </item>
    
    <item>
      <title>How to Setup Clash Premium on Linux</title>
      <link>https://blog.pzc.moe/articles/tools/setup-clash-premium-on-linux/</link>
      <guid>https://blog.pzc.moe/articles/tools/setup-clash-premium-on-linux/</guid>
      <pubDate>Sat, 01 Aug 2020 22:17:38 GMT</pubDate>
      
      <description>&lt;p&gt;&lt;strong&gt;UPDATE!!!&lt;/strong&gt;&lt;br /&gt;自 2022&amp;#x2F;04&amp;#x2F;10 日起 clash premium 更新了 linux 平台的&lt;code&gt;auto-route&lt;/code&gt;，因此可直接在配置文件中配置的&lt;code&gt;tun&lt;/code&gt;字段的&lt;code&gt;auto-route&lt;/code&gt;即可：&lt;/p&gt;
&lt;figure class=&quot;highlight yaml&quot;&gt;&lt;table&gt;&lt;tr&gt;&lt;td class=&quot;gutter&quot;&gt;&lt;pre&gt;&lt;span class=&quot;line&quot;&gt;1&lt;/span&gt;&lt;br&gt;&lt;span class=&quot;line&quot;&gt;2&lt;/span&gt;&lt;br&gt;&lt;span class=&quot;line&quot;&gt;3&lt;/span&gt;&lt;br&gt;&lt;span class=&quot;line&quot;&gt;4&lt;/span&gt;&lt;br&gt;&lt;/pre&gt;&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;pre&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;attr&quot;&gt;tun:&lt;/span&gt;&lt;/span&gt;&lt;br&gt;&lt;span class=&quot;line&quot;&gt;  &lt;span class=&quot;attr&quot;&gt;enable:&lt;/span&gt; &lt;span class=&quot;literal&quot;&gt;true&lt;/span&gt;&lt;/span&gt;&lt;br&gt;&lt;span class=&quot;line&quot;&gt;  &lt;span class=&quot;attr&quot;&gt;auto-route:&lt;/span&gt; &lt;span class=&quot;literal&quot;&gt;true&lt;/span&gt;&lt;/span&gt;&lt;br&gt;&lt;span class=&quot;line&quot;&gt;  &lt;span class=&quot;string&quot;&gt;...&lt;/span&gt;&lt;/span&gt;&lt;br&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/figure&gt;</description>
      
      
      
      
      <category domain="https://blog.pzc.moe/categories/tools/">tools</category>
      
      
      <category domain="https://blog.pzc.moe/tags/clash/">clash</category>
      
      <category domain="https://blog.pzc.moe/tags/tun/">tun</category>
      
      
      <comments>https://blog.pzc.moe/articles/tools/setup-clash-premium-on-linux/#disqus_thread</comments>
      
    </item>
    
    <item>
      <title>Custom NAT Gateway and DNS for VMware Fusion</title>
      <link>https://blog.pzc.moe/articles/software/custom-nat-gw-dns-vm-fusion/</link>
      <guid>https://blog.pzc.moe/articles/software/custom-nat-gw-dns-vm-fusion/</guid>
      <pubDate>Tue, 03 Mar 2020 06:15:38 GMT</pubDate>
      
      <description>&lt;p&gt;由于电脑使用了 Surge 并开启了 Enhanced Mode 来做全局透明代理，现在希望 VMware Fusion 的虚拟机也自动使用这个代理。其实打开 Enhanced Mode 之后无需配置虚拟机即可直接享受透明代理的。但是这样在 Surge Dashboard 中看到的所有连接都是来源于 &lt;code&gt;vmnet-natd&lt;/code&gt; 这个进程，十分不方便监控。&lt;/p&gt;
&lt;p&gt;为此，可以手动在虚拟机中修改网关和 DNS 服务器来使 Surge 能够分辨出流量来自哪台虚拟机。但这在我的场景下还是有点麻烦，因为需要不停的重装虚拟机等操作，每一次都需要重新配置。本文将介绍如何修改 VMware Fusion 的 &lt;code&gt;vmnet-dhcpd&lt;/code&gt; 配置文件来使虚拟机自动获取自定义的网关和 DNS 服务器。&lt;/p&gt;
&lt;p&gt;&lt;a name=&quot;Y8b56&quot;&gt;&lt;/a&gt;&lt;/p&gt;</description>
      
      
      
      
      <category domain="https://blog.pzc.moe/categories/software/">software</category>
      
      
      <category domain="https://blog.pzc.moe/tags/notes/">notes</category>
      
      <category domain="https://blog.pzc.moe/tags/vmware/">vmware</category>
      
      
      <comments>https://blog.pzc.moe/articles/software/custom-nat-gw-dns-vm-fusion/#disqus_thread</comments>
      
    </item>
    
    <item>
      <title>How to Obtain a Moss Account</title>
      <link>https://blog.pzc.moe/articles/misc/how-to-get-moss-account/</link>
      <guid>https://blog.pzc.moe/articles/misc/how-to-get-moss-account/</guid>
      <pubDate>Fri, 10 Jan 2020 18:41:55 GMT</pubDate>
      
      <description>&lt;p&gt;这学期在做助教的时候需要做代码查重，于是找到了斯坦福提供的 &lt;a href=&quot;http://theory.stanford.edu/~aiken/moss/&quot;&gt;Moss&lt;/a&gt; 来做。根据官网的指示，我们需要向 &lt;code&gt;moss@moss.stanford.edu&lt;/code&gt; 发送一封特定格式的邮件来获取一个账号：&lt;/p&gt;
&lt;figure class=&quot;highlight plaintext&quot;&gt;&lt;table&gt;&lt;tr&gt;&lt;td class=&quot;gutter&quot;&gt;&lt;pre&gt;&lt;span class=&quot;line&quot;&gt;1&lt;/span&gt;&lt;br&gt;&lt;span class=&quot;line&quot;&gt;2&lt;/span&gt;&lt;br&gt;&lt;/pre&gt;&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;pre&gt;&lt;span class=&quot;line&quot;&gt;registeruser&lt;/span&gt;&lt;br&gt;&lt;span class=&quot;line&quot;&gt;mail abc@def.gh&lt;/span&gt;&lt;br&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/figure&gt;

&lt;p&gt;然而我使用 macOS 自带的 Mail.app 发送却发现一直不能收到注册账号的回信。类似这种发送邮件自动注册的机制一般出现在各种 Mailing List 中，比如 Linux Kernel 的 Mailing List 就使用了 &lt;a href=&quot;&quot;&gt;Majordomo&lt;/a&gt; 来管理订阅等服务。这些系统需要发送特定格式的纯文本邮件，不可以携带额外的格式信息才能够正常工作。&lt;/p&gt;
&lt;p&gt;而收不到 Moss 的邮件也是这个原因，在输入 &lt;code&gt;abc@def.gh&lt;/code&gt; 后，Mail.app 自作聪明地为它加上了超链接，即使在配置中设置了默认 Plain Text 模式也不起作用，这导致对方不能正确地解析这个邮件地址。&lt;/p&gt;
&lt;p&gt;&lt;a name=&quot;Viz3I&quot;&gt;&lt;/a&gt;&lt;/p&gt;</description>
      
      
      
      
      <category domain="https://blog.pzc.moe/categories/misc/">misc</category>
      
      
      <category domain="https://blog.pzc.moe/tags/notes/">notes</category>
      
      <category domain="https://blog.pzc.moe/tags/moss/">moss</category>
      
      <category domain="https://blog.pzc.moe/tags/email/">email</category>
      
      
      <comments>https://blog.pzc.moe/articles/misc/how-to-get-moss-account/#disqus_thread</comments>
      
    </item>
    
    <item>
      <title>Deploy Shadowsocks with v2ray-plugin Enabled</title>
      <link>https://blog.pzc.moe/articles/bypass-gfw/shadowsocks-with-v2ray-plugin/</link>
      <guid>https://blog.pzc.moe/articles/bypass-gfw/shadowsocks-with-v2ray-plugin/</guid>
      <pubDate>Mon, 30 Sep 2019 17:52:21 GMT</pubDate>
      
      <description>&lt;p&gt;本文将介绍如何搭建自己的 shadowsocks 服务器并启用新的 v2ray-plugin 插件实现 Websocket 伪装。将会使用到 &lt;a href=&quot;https://github.com/shadowsocks/shadowsocks-libev&quot;&gt;shadowsocks-libev&lt;/a&gt; 以及 &lt;a href=&quot;https://github.com/shadowsocks/v2ray-plugin&quot;&gt;v2ray-plugin&lt;/a&gt; 。&lt;br /&gt;本文假定读者已经拥有了自己的 vps，且系统是 Debian 9+ 或者 Ubuntu 18.04+，并能够进行远程操作（VNC 或 SSH 或者你喜欢的任何方式）以及修改文本文件。&lt;br /&gt;</description>
      
      
      
      
      <category domain="https://blog.pzc.moe/categories/bypass-gfw/">bypass-gfw</category>
      
      
      <category domain="https://blog.pzc.moe/tags/bypass-gfw/">bypass-gfw</category>
      
      <category domain="https://blog.pzc.moe/tags/shadowsocks/">shadowsocks</category>
      
      <category domain="https://blog.pzc.moe/tags/shadowsocks-libev/">shadowsocks-libev</category>
      
      <category domain="https://blog.pzc.moe/tags/v2ray-plugin/">v2ray-plugin</category>
      
      
      <comments>https://blog.pzc.moe/articles/bypass-gfw/shadowsocks-with-v2ray-plugin/#disqus_thread</comments>
      
    </item>
    
    <item>
      <title>Install Wireless Drivers on Windows Server</title>
      <link>https://blog.pzc.moe/articles/windows/invalid-inf-wireless-on-win-server/</link>
      <guid>https://blog.pzc.moe/articles/windows/invalid-inf-wireless-on-win-server/</guid>
      <pubDate>Sun, 29 Sep 2019 05:30:34 GMT</pubDate>
      
        
        
          
          
      <description>&lt;p&gt;最近在 Windows Server 2019 环境安装 Intel Wireless 8260 无线网卡的驱动时遇到了下面的错误：&lt;/p&gt;
&lt;figure class=&quot;highlight plaintext&quot;&gt;&lt;table&gt;&lt;tr&gt;&lt;td</description>
          
        
      
      
      
      
      <category domain="https://blog.pzc.moe/categories/windows/">windows</category>
      
      
      <category domain="https://blog.pzc.moe/tags/windows/">windows</category>
      
      <category domain="https://blog.pzc.moe/tags/wireless/">wireless</category>
      
      <category domain="https://blog.pzc.moe/tags/driver/">driver</category>
      
      
      <comments>https://blog.pzc.moe/articles/windows/invalid-inf-wireless-on-win-server/#disqus_thread</comments>
      
    </item>
    
    <item>
      <title>Locking in Linux Kernel</title>
      <link>https://blog.pzc.moe/articles/linux/kernel/locking-in-linux-kernel/</link>
      <guid>https://blog.pzc.moe/articles/linux/kernel/locking-in-linux-kernel/</guid>
      <pubDate>Thu, 19 Sep 2019 18:33:45 GMT</pubDate>
      
      <description>&lt;p&gt;spinlock 和 mutex 是在 linux kernel 中广泛地使用地两种锁，这两种锁可以覆盖内核中大部分同步需求。&lt;/p&gt;
&lt;p&gt;spinlock 即简单地自旋锁，如果暂时获取不到锁，则会一直重试（忙等待）；而 mutex 则在获取不到锁地时候主动放弃 CPU（进行 sleep）。虽然 spinlock 很简单，但是其上锁&amp;#x2F;解锁地接口就有 &lt;code&gt;spin_lock_lock/unlock&lt;/code&gt; ， &lt;code&gt;spin_lock_irq/unlock_irq&lt;/code&gt; ， &lt;code&gt;spin_lock_bh/unlock_bh&lt;/code&gt; ， &lt;code&gt;spin_lock_irqsave/unlock_irqrestore&lt;/code&gt; 等，本文即试图总结应该如何正确地选择这些接口。如果读者对 kernel 中四种上下文还不熟悉，可以参考&lt;a href=&quot;/articles/linux/kernel/contexts-in-linux-kernel.html&quot;&gt;这篇文章&lt;/a&gt;。&lt;br /&gt;</description>
      
      
      
      
      <category domain="https://blog.pzc.moe/categories/linux/">linux</category>
      
      <category domain="https://blog.pzc.moe/categories/linux/kernel/">kernel</category>
      
      
      <category domain="https://blog.pzc.moe/tags/linux/">linux</category>
      
      <category domain="https://blog.pzc.moe/tags/kernel/">kernel</category>
      
      <category domain="https://blog.pzc.moe/tags/programming/">programming</category>
      
      <category domain="https://blog.pzc.moe/tags/spinlock/">spinlock</category>
      
      <category domain="https://blog.pzc.moe/tags/mutex/">mutex</category>
      
      
      <comments>https://blog.pzc.moe/articles/linux/kernel/locking-in-linux-kernel/#disqus_thread</comments>
      
    </item>
    
    <item>
      <title>Contexts in Linux Kernel</title>
      <link>https://blog.pzc.moe/articles/linux/kernel/contexts-in-linux-kernel/</link>
      <guid>https://blog.pzc.moe/articles/linux/kernel/contexts-in-linux-kernel/</guid>
      <pubDate>Tue, 17 Sep 2019 11:24:12 GMT</pubDate>
      
      <description>&lt;p&gt;本文将简单介绍一下 linux 内核中三种主要的上下文（context）。&lt;/p&gt;
&lt;p&gt;&lt;a name=&quot;G22gU&quot;&gt;&lt;/a&gt;&lt;/p&gt;</description>
      
      
      
      
      <category domain="https://blog.pzc.moe/categories/linux/">linux</category>
      
      <category domain="https://blog.pzc.moe/categories/linux/kernel/">kernel</category>
      
      
      <category domain="https://blog.pzc.moe/tags/linux/">linux</category>
      
      <category domain="https://blog.pzc.moe/tags/kernel/">kernel</category>
      
      <category domain="https://blog.pzc.moe/tags/context/">context</category>
      
      <category domain="https://blog.pzc.moe/tags/programming/">programming</category>
      
      
      <comments>https://blog.pzc.moe/articles/linux/kernel/contexts-in-linux-kernel/#disqus_thread</comments>
      
    </item>
    
    <item>
      <title>Force grep Line Buffered</title>
      <link>https://blog.pzc.moe/articles/tools/force-grep-line-buffered/</link>
      <guid>https://blog.pzc.moe/articles/tools/force-grep-line-buffered/</guid>
      <pubDate>Tue, 03 Sep 2019 12:50:13 GMT</pubDate>
      
        
        
          
          
      <description>&lt;p&gt;有时候我们需要在 shell 中执行类似 &lt;code&gt;some-cmd | grep keyword | tee filtered.log&lt;/code&gt; 的命令，如果管道的起始命令输出的东西不够多，那么 &lt;code&gt;grep&lt;/code&gt; 会攒够一定长度的输出才进行</description>
          
        
      
      
      
      
      <category domain="https://blog.pzc.moe/categories/tools/">tools</category>
      
      
      <category domain="https://blog.pzc.moe/tags/linux/">linux</category>
      
      <category domain="https://blog.pzc.moe/tags/shell/">shell</category>
      
      <category domain="https://blog.pzc.moe/tags/grep/">grep</category>
      
      <category domain="https://blog.pzc.moe/tags/tee/">tee</category>
      
      
      <comments>https://blog.pzc.moe/articles/tools/force-grep-line-buffered/#disqus_thread</comments>
      
    </item>
    
    <item>
      <title>Connect acme.sh via IFTTT</title>
      <link>https://blog.pzc.moe/articles/tools/build-connections-to-acme-sh-via-ifttt/</link>
      <guid>https://blog.pzc.moe/articles/tools/build-connections-to-acme-sh-via-ifttt/</guid>
      <pubDate>Mon, 05 Aug 2019 17:37:03 GMT</pubDate>
      
      <description>&lt;p&gt;&lt;a href=&quot;https://github.com/Neilpang/acme.sh&quot;&gt;acme.sh&lt;/a&gt; 是一个使用纯 posix shell 实现的 ACME 协议，经常被用来自动申请更新 tls 证书。在最近的更新中 acme.sh 新增了 notify 特性，该功能可以将每次定时任务的（成功更新、跳过、失败等）状态通过指定的方式发送通知。目前可用的的通知方式以及使用方式可见该项目的 &lt;a href=&quot;https://github.com/Neilpang/acme.sh/wiki/notify&quot;&gt;wiki&lt;/a&gt; 页。&lt;/p&gt;
&lt;p&gt;&lt;a name=&quot;QxuhH&quot;&gt;&lt;/a&gt;&lt;/p&gt;</description>
      
      
      
      
      <category domain="https://blog.pzc.moe/categories/tools/">tools</category>
      
      
      <category domain="https://blog.pzc.moe/tags/acme-sh/">acme.sh</category>
      
      <category domain="https://blog.pzc.moe/tags/ifttt/">ifttt</category>
      
      
      <comments>https://blog.pzc.moe/articles/tools/build-connections-to-acme-sh-via-ifttt/#disqus_thread</comments>
      
    </item>
    
    <item>
      <title>Replace DMG with Sparse Bundle Image</title>
      <link>https://blog.pzc.moe/articles/software/replace-dmg-with-sparsed-bundle-image/</link>
      <guid>https://blog.pzc.moe/articles/software/replace-dmg-with-sparsed-bundle-image/</guid>
      <pubDate>Thu, 18 Jul 2019 19:10:49 GMT</pubDate>
      
      <description>&lt;p&gt;在&lt;a href=&quot;/articles/software/launch-steam-from-case-sensitive-root-filesystem-on-macos.html&quot;&gt;前面的文章&lt;/a&gt;中介绍了使用大小写不敏感的磁盘镜像为 Steam 开辟一个存储区。但是这有一个弊端，即一旦 DMG 文件建立好，其占用的硬盘空间就固定了，即使没有占满 DMG 内部的空间。为此，我们可以用 macOS 提供的一种动态增长的 Image 结构来替换前文的 DMG 文件，即 Sparse Bundle 格式，这也是 Time Machine 内部使用的格式。该格式可动态增长，增长上限是建立文件时指定的值（可以 resize）。该格式虽然不利于分发，但却是持久化存储的一个非常好的选择。&lt;/p&gt;
&lt;p&gt;&lt;a name=&quot;YONcP&quot;&gt;&lt;/a&gt;&lt;/p&gt;</description>
      
      
      
      
      <category domain="https://blog.pzc.moe/categories/software/">software</category>
      
      
      <category domain="https://blog.pzc.moe/tags/notes/">notes</category>
      
      <category domain="https://blog.pzc.moe/tags/macos/">macos</category>
      
      <category domain="https://blog.pzc.moe/tags/steam/">steam</category>
      
      <category domain="https://blog.pzc.moe/tags/image/">image</category>
      
      
      <comments>https://blog.pzc.moe/articles/software/replace-dmg-with-sparsed-bundle-image/#disqus_thread</comments>
      
    </item>
    
    <item>
      <title>Launch Steam from Case-sensitive Root Filesystem on macOS</title>
      <link>https://blog.pzc.moe/articles/software/steam-case-sensitive-macos/</link>
      <guid>https://blog.pzc.moe/articles/software/steam-case-sensitive-macos/</guid>
      <pubDate>Thu, 04 Jul 2019 14:25:55 GMT</pubDate>
      
      <description>&lt;p&gt;由于一些历史原因，steam 至今仍不支持运行在大小写敏感的 apfs 或 hfs 文件系统上。但是由于 steam 仅要求 &lt;code&gt;~/Library/Application Support/Steam&lt;/code&gt; 路径下的文件区分大小写即可，我们借助软连接和磁盘镜像来解决这个问题。&lt;/p&gt;
&lt;p&gt;&lt;a name=&quot;wd9lm&quot;&gt;&lt;/a&gt;&lt;/p&gt;</description>
      
      
      
      
      <category domain="https://blog.pzc.moe/categories/software/">software</category>
      
      
      <category domain="https://blog.pzc.moe/tags/notes/">notes</category>
      
      <category domain="https://blog.pzc.moe/tags/macos/">macos</category>
      
      <category domain="https://blog.pzc.moe/tags/steam/">steam</category>
      
      
      <comments>https://blog.pzc.moe/articles/software/steam-case-sensitive-macos/#disqus_thread</comments>
      
    </item>
    
    <item>
      <title>Worker Thread Based on libev - Supporting Timers</title>
      <link>https://blog.pzc.moe/articles/programming/worker-thread-libev-with-timers/</link>
      <guid>https://blog.pzc.moe/articles/programming/worker-thread-libev-with-timers/</guid>
      <pubDate>Wed, 26 Jun 2019 12:58:31 GMT</pubDate>
      
      <description>&lt;p&gt;接&lt;a href=&quot;/articles/programming/worker-thread-based-on-libev.html&quot;&gt;前文&lt;/a&gt;，本文将在其基础上添加对定时器的支持。Github 地址：&lt;a href=&quot;https://github.com/icpz/worker_thread&quot;&gt;worker_thread&lt;/a&gt;。&lt;/p&gt;
&lt;p&gt;&lt;a name=&quot;vShRF&quot;&gt;&lt;/a&gt;&lt;/p&gt;</description>
      
      
      
      
      <category domain="https://blog.pzc.moe/categories/programming/">programming</category>
      
      
      <category domain="https://blog.pzc.moe/tags/libev/">libev</category>
      
      <category domain="https://blog.pzc.moe/tags/thread/">thread</category>
      
      
      <comments>https://blog.pzc.moe/articles/programming/worker-thread-libev-with-timers/#disqus_thread</comments>
      
    </item>
    
    <item>
      <title>Linux Networking Commands - Deprecated vs Replacement</title>
      <link>https://blog.pzc.moe/articles/tools/linux-network-cmds-old-new/</link>
      <guid>https://blog.pzc.moe/articles/tools/linux-network-cmds-old-new/</guid>
      <pubDate>Tue, 25 Jun 2019 14:58:16 GMT</pubDate>
      
      <description>&lt;p&gt;在很多发行版中经典的 &lt;code&gt;ifconfig&lt;/code&gt; 等命令不再预装的，取而代之的是 &lt;code&gt;ip&lt;/code&gt; 命令，该指令属于 &lt;code&gt;iproute2&lt;/code&gt; 包。本文介绍一下常见的网络层&amp;#x2F;传输层命令。&lt;/p&gt;
&lt;p&gt;&lt;a name=&quot;AFZUV&quot;&gt;&lt;/a&gt;&lt;/p&gt;</description>
      
      
      
      
      <category domain="https://blog.pzc.moe/categories/tools/">tools</category>
      
      
      <category domain="https://blog.pzc.moe/tags/linux/">linux</category>
      
      <category domain="https://blog.pzc.moe/tags/cli/">cli</category>
      
      <category domain="https://blog.pzc.moe/tags/network/">network</category>
      
      <category domain="https://blog.pzc.moe/tags/tools/">tools</category>
      
      
      <comments>https://blog.pzc.moe/articles/tools/linux-network-cmds-old-new/#disqus_thread</comments>
      
    </item>
    
    <item>
      <title>Worker Thread Based on libev</title>
      <link>https://blog.pzc.moe/articles/programming/worker-thread-libev/</link>
      <guid>https://blog.pzc.moe/articles/programming/worker-thread-libev/</guid>
      <pubDate>Wed, 19 Jun 2019 17:58:55 GMT</pubDate>
      
      <description>&lt;p&gt;本文将基于 libev 实现一个简单的 worker thread，支持投递任务来异步执行（&lt;del&gt;有空的话会更新如何支持定时器任务&lt;/del&gt;已更新，详见&lt;a href=&quot;/articles/programming/worker-thread-based-on-libev-supporting-timers.html&quot;&gt;这里&lt;/a&gt;）。Github 地址：&lt;a href=&quot;https://github.com/icpz/worker_thread&quot;&gt;worker_thread&lt;/a&gt;。&lt;/p&gt;
&lt;p&gt;&lt;a name=&quot;ydwaO&quot;&gt;&lt;/a&gt;&lt;/p&gt;</description>
      
      
      
      
      <category domain="https://blog.pzc.moe/categories/programming/">programming</category>
      
      
      <category domain="https://blog.pzc.moe/tags/libev/">libev</category>
      
      <category domain="https://blog.pzc.moe/tags/thread/">thread</category>
      
      
      <comments>https://blog.pzc.moe/articles/programming/worker-thread-libev/#disqus_thread</comments>
      
    </item>
    
    <item>
      <title>Using utstring as Key of uthash</title>
      <link>https://blog.pzc.moe/articles/programming/utstring-as-uthash-key/</link>
      <guid>https://blog.pzc.moe/articles/programming/utstring-as-uthash-key/</guid>
      <pubDate>Mon, 17 Jun 2019 19:35:04 GMT</pubDate>
      
      <description>&lt;p&gt;&lt;a href=&quot;https://troydhanson.github.io/uthash/&quot;&gt;&lt;code&gt;uthash&lt;/code&gt;&lt;/a&gt; 是一个 C 语言的 hash 库； &lt;code&gt;utstring&lt;/code&gt; 是前者的一个子项目，即 C 语言的动态字符串。本文将介绍如何将 &lt;code&gt;utstring&lt;/code&gt; 作为 &lt;code&gt;uthash&lt;/code&gt; 的 key 来使用。&lt;/p&gt;
&lt;p&gt;&lt;a name=&quot;XxOXC&quot;&gt;&lt;/a&gt;&lt;/p&gt;</description>
      
      
      
      
      <category domain="https://blog.pzc.moe/categories/programming/">programming</category>
      
      
      <category domain="https://blog.pzc.moe/tags/uthash/">uthash</category>
      
      <category domain="https://blog.pzc.moe/tags/utstring/">utstring</category>
      
      <category domain="https://blog.pzc.moe/tags/hash/">hash</category>
      
      
      <comments>https://blog.pzc.moe/articles/programming/utstring-as-uthash-key/#disqus_thread</comments>
      
    </item>
    
    <item>
      <title>libcurl Multi Interface Together With libev</title>
      <link>https://blog.pzc.moe/articles/programming/libcurl-multi-with-libev/</link>
      <guid>https://blog.pzc.moe/articles/programming/libcurl-multi-with-libev/</guid>
      <pubDate>Mon, 17 Jun 2019 14:06:40 GMT</pubDate>
      
      <description>&lt;p&gt;&lt;br /&gt;这是一个非常简单的 &lt;a href=&quot;http://libev.schmorp.de/&quot;&gt;&lt;code&gt;libev&lt;/code&gt;&lt;/a&gt; 和 &lt;a href=&quot;https://curl.haxx.se/libcurl/&quot;&gt;&lt;code&gt;libcurl&lt;/code&gt;&lt;/a&gt; 协作的例子。&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;&lt;a name=&quot;61m5u&quot;&gt;&lt;/a&gt;&lt;/p&gt;</description>
      
      
      
      
      <category domain="https://blog.pzc.moe/categories/programming/">programming</category>
      
      
      <category domain="https://blog.pzc.moe/tags/libcurl/">libcurl</category>
      
      <category domain="https://blog.pzc.moe/tags/libev/">libev</category>
      
      <category domain="https://blog.pzc.moe/tags/curl/">curl</category>
      
      
      <comments>https://blog.pzc.moe/articles/programming/libcurl-multi-with-libev/#disqus_thread</comments>
      
    </item>
    
    <item>
      <title>Hexo NexT - Enable noindex HTML Meta Tag</title>
      <link>https://blog.pzc.moe/articles/hexo/hexo-next-add-noindex-meta-tag/</link>
      <guid>https://blog.pzc.moe/articles/hexo/hexo-next-add-noindex-meta-tag/</guid>
      <pubDate>Wed, 12 Jun 2019 16:12:45 GMT</pubDate>
      
        
        
          
          
      <description>&lt;p&gt;有时我们可能不希望某些文章出现在搜索引擎的结果中。根据 &lt;a href=&quot;https://support.google.com/webmasters/answer/93710&quot;&gt;Google&lt;/a&gt;</description>
          
        
      
      
      
      
      <category domain="https://blog.pzc.moe/categories/hexo/">hexo</category>
      
      
      <category domain="https://blog.pzc.moe/tags/notes/">notes</category>
      
      <category domain="https://blog.pzc.moe/tags/hexo/">hexo</category>
      
      <category domain="https://blog.pzc.moe/tags/seo/">seo</category>
      
      
      <comments>https://blog.pzc.moe/articles/hexo/hexo-next-add-noindex-meta-tag/#disqus_thread</comments>
      
    </item>
    
  </channel>
</rss>
