<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
    <title>Q&#x27;s Blog</title>
    <subtitle>A CSer Personal Blog</subtitle>
    <link rel="self" type="application/atom+xml" href="https://blog.qzydustin.com/atom.xml"/>
    <link rel="alternate" type="text/html" href="https://blog.qzydustin.com"/>
    <generator uri="https://www.getzola.org/">Zola</generator>
    <updated>2026-06-22T00:00:00+00:00</updated>
    <id>https://blog.qzydustin.com/atom.xml</id>
    <entry xml:lang="en">
        <title>iPhone ICCID Carrier Unlock: Activation Ticket Backup and Restore</title>
        <published>2026-06-22T00:00:00+00:00</published>
        <updated>2026-06-22T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Zhenyu Qi
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://blog.qzydustin.com/posts/iphone-iccid-carrier-unlock-activation-ticket-backup-and-restore/"/>
        <id>https://blog.qzydustin.com/posts/iphone-iccid-carrier-unlock-activation-ticket-backup-and-restore/</id>
        
        <summary type="html">&lt;p&gt;ICCID activation was once a popular way to work around carrier locks on iPhones. If a previously activated device is jailbreakable, its activation ticket can be backed up and restored after a reset, iOS downgrade, or DFU restore. The ticket is device-specific and only preserves activation on the iPhone from which it was saved. Here I use my iPhone 5s (A1453, au&#x2F;KDDI Japan model) as an example.&lt;&#x2F;p&gt;</summary>
        
    </entry>
    <entry xml:lang="en">
        <title>Implementing Dual-Partition Sysupgrade for the 360V6 Router on OpenWrt</title>
        <published>2026-05-23T00:00:00+00:00</published>
        <updated>2026-05-23T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Zhenyu Qi
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://blog.qzydustin.com/posts/implementing-dual-partition-sysupgrade-360v6-openwrt/"/>
        <id>https://blog.qzydustin.com/posts/implementing-dual-partition-sysupgrade-360v6-openwrt/</id>
        
        <summary type="html">&lt;p&gt;The 360V6 ships with an A&#x2F;B dual-partition design, but after flashing OpenWrt, sysupgrade only writes to the current partition while OEM remnants on the alternate partition cause upgrade failures. After figuring out the bootconfig slot mechanism, I submitted dual-partition upgrade support to OpenWrt upstream, which has since been merged.&lt;&#x2F;p&gt;</summary>
        
    </entry>
    <entry xml:lang="en">
        <title>Rescuing a Bricked 360T7 Router via UART After a DDR3 RAM Upgrade</title>
        <published>2026-05-23T00:00:00+00:00</published>
        <updated>2026-05-23T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Zhenyu Qi
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://blog.qzydustin.com/posts/rescuing-bricked-360t7-uart-after-ddr3-ram-upgrade/"/>
        <id>https://blog.qzydustin.com/posts/rescuing-bricked-360t7-uart-after-ddr3-ram-upgrade/</id>
        
        <summary type="html">&lt;p&gt;A memory-modded 360T7 ran fine for years until I flashed OpenWrt&#x27;s bl2 and fip, which bricked it with &lt;code&gt;dram size: 0MB&lt;&#x2F;code&gt;. Every rescue package found online failed. Eventually I traced the issue to a DDR3 frequency mismatch in the ATF source, compiled a custom bl2, and recovered the router via UART.&lt;&#x2F;p&gt;</summary>
        
    </entry>
    <entry xml:lang="en">
        <title>How to Seamlessly Use BT and PT on a Home Server Without a Public IP - A Guide with WireGuard and VPS</title>
        <published>2024-11-11T19:52:11+00:00</published>
        <updated>2024-11-11T19:52:11+00:00</updated>
        
        <author>
          <name>
            
              Zhenyu Qi
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://blog.qzydustin.com/posts/how-to-seamlessly-use-bt-and-pt-on-a-home-server-without-a-public-ip-a-guide-with-wireguard-and-vps/"/>
        <id>https://blog.qzydustin.com/posts/how-to-seamlessly-use-bt-and-pt-on-a-home-server-without-a-public-ip-a-guide-with-wireguard-and-vps/</id>
        
        <summary type="html">&lt;p&gt;Running a BitTorrent (BT) or Private Tracker (PT) server at home can be challenging if your home network doesn’t have a public IP. Public IPs are essential for direct peer-to-peer connections, which significantly improve torrent connectivity. However, with the right setup, you can achieve similar connectivity and even gain extra benefits, like access to IPv6 peers, by using a VPS and WireGuard.&lt;&#x2F;p&gt;</summary>
        
    </entry>
    <entry xml:lang="en">
        <title>Optimizing a 2012 Mac Mini Server for PVE</title>
        <published>2024-11-11T19:29:42+00:00</published>
        <updated>2024-11-11T19:29:42+00:00</updated>
        
        <author>
          <name>
            
              Zhenyu Qi
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://blog.qzydustin.com/posts/optimizing-a-2012-mac-mini-server-for-pve/"/>
        <id>https://blog.qzydustin.com/posts/optimizing-a-2012-mac-mini-server-for-pve/</id>
        
        <summary type="html">&lt;p&gt;The 2012 Mac Mini Server remains a popular choice for Proxmox Virtual Environment (PVE) installations. This model stands out for its upgradeability: it allows for both memory and storage upgrades, making it particularly versatile. It’s also the last Mac Mini model with this flexibility, as the 2014 model saw soldered RAM, limited CPU performance, and eventually, Apple’s transition to ARM architecture in later versions, which limits virtualization capabilities.&lt;&#x2F;p&gt;</summary>
        
    </entry>
    <entry xml:lang="en">
        <title>Guide to Optimizing Sony Digital Paper for Chinese</title>
        <published>2024-06-18T22:49:50+00:00</published>
        <updated>2024-06-18T22:49:50+00:00</updated>
        
        <author>
          <name>
            
              Zhenyu Qi
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://blog.qzydustin.com/posts/guide-to-optimizing-sony-digital-paper-for-chinese/"/>
        <id>https://blog.qzydustin.com/posts/guide-to-optimizing-sony-digital-paper-for-chinese/</id>
        
        <summary type="html">&lt;p&gt;I got a Sony DPT-RP1 digital paper yesterday. It is such a great tool to read A4 PDF files due to its large screen. The only shortcoming is that it is the Japanese version. The Japanese version has Japanese and English language and input methods, the US version only has English language and input methods, and the Chinese version has Chinese and English language and input methods. When opening a book with Chinese chapters, the Chinese characters in the Table of Contents cannot be displayed normally, but the Chinese and American versions can do that.&lt;&#x2F;p&gt;</summary>
        
    </entry>
    <entry xml:lang="en">
        <title>How to Avoid Being Killed by the OOM Killer - Adding Swap Space</title>
        <published>2024-01-13T03:27:26+00:00</published>
        <updated>2024-01-13T03:27:26+00:00</updated>
        
        <author>
          <name>
            
              Zhenyu Qi
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://blog.qzydustin.com/posts/how-to-avoid-being-killed-by-the-oom-killer-adding-swap-space/"/>
        <id>https://blog.qzydustin.com/posts/how-to-avoid-being-killed-by-the-oom-killer-adding-swap-space/</id>
        
        <summary type="html">&lt;p&gt;In Linux systems, memory management is crucial for maintaining system stability and performance. One component at the heart of this process is the &quot;Out-Of-Memory (OOM) Killer.&quot; This process steps in when your system is critically low on memory. It selectively terminates one or more processes to free up memory and prevent a system crash. However, the intervention of the OOM Killer can be disruptive, as it might terminate essential or high-priority processes.&lt;&#x2F;p&gt;</summary>
        
    </entry>
    <entry xml:lang="en">
        <title>Converting .sas7bdat to CSV Without SAS</title>
        <published>2023-08-27T15:16:21+00:00</published>
        <updated>2023-08-27T15:16:21+00:00</updated>
        
        <author>
          <name>
            
              Zhenyu Qi
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://blog.qzydustin.com/posts/sas7bdat-to-csv/"/>
        <id>https://blog.qzydustin.com/posts/sas7bdat-to-csv/</id>
        
        <summary type="html">&lt;p&gt;&lt;code&gt;.sas7bdat&lt;&#x2F;code&gt; is the binary format SAS uses to store data sets. SAS is commercial statistical software with a licensing cost that prices out most individual users. The format is proprietary and undocumented by SAS, so every reader outside it, including pyreadstat, is the product of reverse engineering.&lt;&#x2F;p&gt;
&lt;p&gt;A single &lt;code&gt;.sas7bdat&lt;&#x2F;code&gt; file holds the table itself, the column metadata, and enough type information to reconstruct rows. What it does not hold is the display layer. SAS stores human-readable value labels and formats in a separate catalog file, &lt;code&gt;.sas7bcat&lt;&#x2F;code&gt;. Converting to CSV throws that layer away, because CSV has no place to put it.&lt;&#x2F;p&gt;</summary>
        
    </entry>
    <entry xml:lang="en">
        <title>Guide to Creating a Bootable macOS USB Installer on Modern Systems</title>
        <published>2023-07-19T17:06:26+00:00</published>
        <updated>2023-07-19T17:06:26+00:00</updated>
        
        <author>
          <name>
            
              Zhenyu Qi
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://blog.qzydustin.com/posts/guide-to-creating-a-bootable-macos-usb-installer-on-modern-systems/"/>
        <id>https://blog.qzydustin.com/posts/guide-to-creating-a-bootable-macos-usb-installer-on-modern-systems/</id>
        
        <summary type="html">&lt;p&gt;Creating a macOS USB Installer can be more challenging than its Windows counterpart, particularly when dealing with older macOS versions on the latest systems. For instance, I faced difficulties while attempting to reinstall macOS 10.7 Lion on a Mac Pro 2012 using a MacBook Air with an M1 chip and the latest macOS. This article aims to document the solutions I found for these challenges, which may help others facing similar issues.&lt;&#x2F;p&gt;</summary>
        
    </entry>
    <entry xml:lang="en">
        <title>Guide to Disabling Automatic APT on Debian for Low-Resource VPS</title>
        <published>2023-06-10T17:30:54+00:00</published>
        <updated>2023-06-10T17:30:54+00:00</updated>
        
        <author>
          <name>
            
              Zhenyu Qi
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://blog.qzydustin.com/posts/guide-to-disabling-automatic-apt-on-debian-for-lowresource-vps/"/>
        <id>https://blog.qzydustin.com/posts/guide-to-disabling-automatic-apt-on-debian-for-lowresource-vps/</id>
        
        <summary type="html">&lt;p&gt;I recently acquired two budget-friendly Virtual Private Servers (VPS) from OranMe, one featuring a 0.1 CPU with 128MB RAM and the other a 0.5 CPU with 512MB RAM. These low-spec servers are not ideal for heavy usage but can be efficient for specific tasks. To maximize their performance, I chose Debian without a desktop environment, aiming to reduce system load.&lt;&#x2F;p&gt;</summary>
        
    </entry>
    <entry xml:lang="en">
        <title>Step-by-Step Web Server Nginx Setup Guide</title>
        <published>2022-11-12T01:44:32-07:00</published>
        <updated>2022-11-12T01:44:32-07:00</updated>
        
        <author>
          <name>
            
              Zhenyu Qi
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://blog.qzydustin.com/posts/stepbystep-web-server-nginx-setup-guide/"/>
        <id>https://blog.qzydustin.com/posts/stepbystep-web-server-nginx-setup-guide/</id>
        
        <summary type="html">&lt;p&gt;Nginx is a high-performance web server known for its efficiency, especially in terms of memory usage, fast startup times, and handling high concurrency. This makes it a popular choice for various internet projects.&lt;&#x2F;p&gt;</summary>
        
    </entry>
    <entry xml:lang="en">
        <title>Cell Phone Plans Worth Keeping and How to Get Them</title>
        <published>2022-10-08T16:20:35-07:00</published>
        <updated>2022-10-08T16:20:35-07:00</updated>
        
        <author>
          <name>
            
              Zhenyu Qi
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://blog.qzydustin.com/posts/cell-phone-plans/"/>
        <id>https://blog.qzydustin.com/posts/cell-phone-plans/</id>
        
        <summary type="html">&lt;p&gt;The cheapest cell plans in America are not advertised. They are grandfathered prepaid lines T-Mobile no longer sells, a $10&#x2F;month unlimited tablet line, and a pay-per-use number you can keep alive for about a dollar a year.&lt;&#x2F;p&gt;</summary>
        
    </entry>
    <entry xml:lang="en">
        <title>Step-by-Step Guide to Building Padavan Router Firmware</title>
        <published>2022-10-05T10:03:05-07:00</published>
        <updated>2022-10-05T10:03:05-07:00</updated>
        
        <author>
          <name>
            
              Zhenyu Qi
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://blog.qzydustin.com/posts/stepbystep-guide-to-building-padavan-router-firmware/"/>
        <id>https://blog.qzydustin.com/posts/stepbystep-guide-to-building-padavan-router-firmware/</id>
        
        <summary type="html">&lt;p&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;bitbucket.org&#x2F;padavan&#x2F;rt-n56u&#x2F;src&#x2F;master&#x2F;&quot;&gt;Padavan&lt;&#x2F;a&gt; is a notable open-source firmware project, ideal for routers with MTK chips. While it&#x27;s officially designed for certain ASUS routers, it can be adapted for most MTK chip routers (Ralink RT3883, MT7620, MT7621, MT7628) through configuration adjustments. This tutorial focuses on building Padavan firmware for the MI-NANO router, a device that, despite its impressive design, suffers from outdated official firmware and lack of IPv6 support.&lt;&#x2F;p&gt;</summary>
        
    </entry>
    <entry xml:lang="en">
        <title>Kindle Jailbreaking: Unlocking Koreader and Custom Extensions</title>
        <published>2022-10-02T12:17:25-07:00</published>
        <updated>2022-10-02T12:17:25-07:00</updated>
        
        <author>
          <name>
            
              Zhenyu Qi
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://blog.qzydustin.com/posts/kindle-jailbreaking/"/>
        <id>https://blog.qzydustin.com/posts/kindle-jailbreaking/</id>
        
        <summary type="html">&lt;p&gt;Amazon&#x27;s Kindle firmware locks you into the stock reader, which handles PDFs poorly and limits customization. Jailbreaking opens access to Koreader (a reader with PDF reflow and custom dictionaries), KUAL (a plugin launcher), and system-level tools like SSH. This guide covers the demo mode exploit for firmware 5.14.2 and earlier.&lt;&#x2F;p&gt;</summary>
        
    </entry>
    <entry xml:lang="en">
        <title>Step-by-Step Guide to Flashing Xiaomi Router Nano Bootloader</title>
        <published>2022-09-28T14:43:27-07:00</published>
        <updated>2022-09-28T14:43:27-07:00</updated>
        
        <author>
          <name>
            
              Zhenyu Qi
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://blog.qzydustin.com/posts/stepbystep-guide-to-flashing-xiaomi-router-nano-bootloader/"/>
        <id>https://blog.qzydustin.com/posts/stepbystep-guide-to-flashing-xiaomi-router-nano-bootloader/</id>
        
        <summary type="html">&lt;p&gt;The Xiaomi router nano, with its MTK 7628 chipset, is a compact yet powerful device. This tutorial will guide you through gaining root access and flashing its bootloader, enhancing its capabilities and performance.&lt;&#x2F;p&gt;</summary>
        
    </entry>
    <entry xml:lang="en">
        <title>Remote LAN Access with ZeroTier, Tailscale, and Cloudflare Tunnel</title>
        <published>2022-09-26T15:28:32-07:00</published>
        <updated>2022-09-26T15:28:32-07:00</updated>
        
        <author>
          <name>
            
              Zhenyu Qi
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://blog.qzydustin.com/posts/remote-lan-access/"/>
        <id>https://blog.qzydustin.com/posts/remote-lan-access/</id>
        
        <summary type="html">&lt;p&gt;Remote LAN access lets devices reach a private network from anywhere. ZeroTier uses a virtual L2 network with P2P paths. Tailscale builds on WireGuard with NAT traversal. Cloudflare Tunnel uses a reverse proxy model.&lt;&#x2F;p&gt;</summary>
        
    </entry>
    <entry xml:lang="en">
        <title>Linux System and Network Tuning</title>
        <published>2022-07-28T15:02:35-07:00</published>
        <updated>2022-07-28T15:02:35-07:00</updated>
        
        <author>
          <name>
            
              Zhenyu Qi
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://blog.qzydustin.com/posts/linux-system-tuning/"/>
        <id>https://blog.qzydustin.com/posts/linux-system-tuning/</id>
        
        <summary type="html">&lt;p&gt;Default Linux kernel parameters target general-purpose workloads. Servers handling high traffic, many connections, or heavy I&#x2F;O need tuning. This guide covers the sysctl parameters that matter and why.&lt;&#x2F;p&gt;</summary>
        
    </entry>
    <entry xml:lang="en">
        <title>Step-by-Step Shadowsocks Proxy Setup Guide</title>
        <published>2022-07-28T14:45:05-07:00</published>
        <updated>2022-07-28T14:45:05-07:00</updated>
        
        <author>
          <name>
            
              Zhenyu Qi
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://blog.qzydustin.com/posts/stepbystep-shadowsocks-proxy-setup-guide/"/>
        <id>https://blog.qzydustin.com/posts/stepbystep-shadowsocks-proxy-setup-guide/</id>
        
        <summary type="html">&lt;p&gt;Building on our previous discussion of Trojan-gfw, this guide focuses on Shadowsocks-libev, an alternative proxy tool that encrypts traffic to evade ISP network censorship. However, users should be aware that Shadowsocks-libev may not be effective for bypassing Chinese network censorship and could result in the server&#x27;s IP being blocked in mainland China.&lt;&#x2F;p&gt;</summary>
        
    </entry>
    <entry xml:lang="en">
        <title>Free Certificates with Certbot</title>
        <published>2022-07-18T17:12:32-07:00</published>
        <updated>2022-07-18T17:12:32-07:00</updated>
        
        <author>
          <name>
            
              Zhenyu Qi
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://blog.qzydustin.com/posts/free-tls-certificates/"/>
        <id>https://blog.qzydustin.com/posts/free-tls-certificates/</id>
        
        <summary type="html">&lt;p&gt;ACME is the protocol for automated certificate management. Let&#x27;s Encrypt speaks ACME. Certbot is the official ACME client from EFF. This guide covers Certbot with Cloudflare DNS validation.&lt;&#x2F;p&gt;</summary>
        
    </entry>
    <entry xml:lang="en">
        <title>Step-by-Step Trojan Proxy Setup Guide</title>
        <published>2022-07-18T16:58:55-07:00</published>
        <updated>2022-07-18T16:58:55-07:00</updated>
        
        <author>
          <name>
            
              Zhenyu Qi
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://blog.qzydustin.com/posts/stepbystep-trojan-proxy-setup-guide/"/>
        <id>https://blog.qzydustin.com/posts/stepbystep-trojan-proxy-setup-guide/</id>
        
        <summary type="html">&lt;p&gt;In this tutorial, I&#x27;ll walk you through setting up a Trojan proxy, an effective tool for bypassing network censorship. Trojan-gfw is adept at disguising internet traffic as HTTPS, making it challenging for Internet Service Providers (ISPs) to detect your activities.&lt;&#x2F;p&gt;</summary>
        
    </entry>
    <entry xml:lang="en">
        <title>Array Algorithms</title>
        <published>2022-07-12T12:25:04-07:00</published>
        <updated>2022-07-12T12:25:04-07:00</updated>
        
        <author>
          <name>
            
              Zhenyu Qi
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://blog.qzydustin.com/posts/array-algorithms/"/>
        <id>https://blog.qzydustin.com/posts/array-algorithms/</id>
        
        <summary type="html">&lt;p&gt;Arrays store elements in contiguous memory. Access is O(1). Search and modification require iterating. This guide covers six algorithms that appear repeatedly in array problems: binary search, two pointers, sliding window, prefix sums, divide and conquer, and the Dutch national flag.&lt;&#x2F;p&gt;</summary>
        
    </entry>
    <entry xml:lang="en">
        <title>Recursion and Iteration</title>
        <published>2022-07-08T22:19:45-07:00</published>
        <updated>2022-07-08T22:19:45-07:00</updated>
        
        <author>
          <name>
            
              Zhenyu Qi
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://blog.qzydustin.com/posts/recursion-and-iteration/"/>
        <id>https://blog.qzydustin.com/posts/recursion-and-iteration/</id>
        
        <summary type="html">&lt;p&gt;Recursion and iteration are interchangeable. Any loop can be rewritten as recursion, and any recursion can be rewritten as a loop using an explicit stack. The difference is cost. Recursion consumes the call stack and adds per-call overhead. Iteration does neither. The right choice depends on the problem structure and the language.&lt;&#x2F;p&gt;</summary>
        
    </entry>
    <entry xml:lang="en">
        <title>Docker and Containers: Security, Rootless Mode, and Podman</title>
        <published>2022-07-07T20:36:36-07:00</published>
        <updated>2022-07-07T20:36:36-07:00</updated>
        
        <author>
          <name>
            
              Zhenyu Qi
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://blog.qzydustin.com/posts/docker-and-containers/"/>
        <id>https://blog.qzydustin.com/posts/docker-and-containers/</id>
        
        <summary type="html">&lt;p&gt;A container is not a virtual machine. VMs emulate hardware and run a full OS kernel. Containers share the host kernel and isolate processes using namespaces (which partition what a process sees: filesystem, network, PIDs, users) and cgroups (which cap what it uses: CPU, memory, I&#x2F;O).&lt;&#x2F;p&gt;</summary>
        
    </entry>
    <entry xml:lang="en">
        <title>Step-by-Step Jekyll Blog Setup Guide</title>
        <published>2022-07-06T16:29:28-07:00</published>
        <updated>2022-07-06T16:29:28-07:00</updated>
        
        <author>
          <name>
            
              Zhenyu Qi
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://blog.qzydustin.com/posts/stepbystep-jekyll-blog-setup-guide/"/>
        <id>https://blog.qzydustin.com/posts/stepbystep-jekyll-blog-setup-guide/</id>
        
        <summary type="html">&lt;p&gt;Jekyll, an elegant and efficient static site generator, serves as an ideal platform for bloggers and developers looking for simplicity and power in their web projects. In this guide, I’ll take you through the process of setting up a Jekyll blog on a Macbook Air M1, leveraging the latest macOS environment. My aim is to provide a clear and concise path to get your Jekyll blog up and running, ensuring a smooth and straightforward experience. Let’s get started on this exciting journey of blogging with Jekyll on a powerful yet user-friendly setup!&lt;&#x2F;p&gt;</summary>
        
    </entry>
    <entry xml:lang="en">
        <title>First Blog</title>
        <published>2022-07-06T15:55:19-07:00</published>
        <updated>2022-07-06T15:55:19-07:00</updated>
        
        <author>
          <name>
            
              Zhenyu Qi
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://blog.qzydustin.com/posts/first-blog/"/>
        <id>https://blog.qzydustin.com/posts/first-blog/</id>
        
        <summary type="html">&lt;blockquote&gt;
&lt;p&gt;业精于勤荒于嬉，行成于思毁于随。&lt;br &#x2F;&gt;
Achievements are reached by hard work rather than recreation. Actions are done after thorough consideration rather than casual decisions.&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;</summary>
        
    </entry>
</feed>
