<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Bowen&apos;s Blog</title><description>Share my thoughts and experiences.</description><link>https://blog.bowen.cool/</link><item><title>How do I manage my photos?</title><link>https://blog.bowen.cool/posts/how-do-i-manage-my-photos/</link><guid isPermaLink="true">https://blog.bowen.cool/posts/how-do-i-manage-my-photos/</guid><description>&lt;img src=&quot;https://blog.bowen.cool/posts/how-do-i-manage-my-photos.png&quot; /&gt;&lt;br&gt;As the number of photos increases, iCloud and MiCloud have become completely uneconomical. Chinese cloud drives are even more unscrupulous. I&apos;ll share my solution here.</description><pubDate>Sun, 28 Dec 2025 06:11:08 GMT</pubDate></item><item><title>My unRAID Usage Report</title><link>https://blog.bowen.cool/posts/my-usage-reports-of-unraid/</link><guid isPermaLink="true">https://blog.bowen.cool/posts/my-usage-reports-of-unraid/</guid><description>&lt;img src=&quot;https://blog.bowen.cool/posts/my-usage-reports-of-unraid.png&quot; /&gt;&lt;br&gt;unRAID is a home NAS system, and it&apos;s also my first time using a NAS. Because some friends are using it, I didn&apos;t consider other NAS systems. It has been running stably for many years with an excellent user experience, so I&apos;m recording this to share with others.</description><pubDate>Fri, 31 Oct 2025 08:17:24 GMT</pubDate></item><item><title>自建音乐流媒体服务</title><link>https://blog.bowen.cool/posts/self-host-music-streaming-service/</link><guid isPermaLink="true">https://blog.bowen.cool/posts/self-host-music-streaming-service/</guid><description>&lt;img src=&quot;https://blog.bowen.cool/posts/self-host-music-streaming-service.png&quot; /&gt;&lt;br&gt;近几年我用过网易云音乐、Apple Music（国区）、Youtube Music、QQ音乐，各有各的缺点，本以为耳濡目染的QQ音乐版权应该很牛逼，没想到一般般，只是热门音乐人的版权很全而已。而且付费看广告也真是神奇体验了。</description><pubDate>Sat, 11 Oct 2025 09:31:10 GMT</pubDate></item><item><title>处理外汇收入</title><link>https://blog.bowen.cool/posts/handle-foreign-income/</link><guid isPermaLink="true">https://blog.bowen.cool/posts/handle-foreign-income/</guid><description>&lt;img src=&quot;https://blog.bowen.cool/posts/handle-foreign-income.png&quot; /&gt;&lt;br&gt;最近我成为了一名数字游民，在这里分享一下我是如何处理工资的。</description><pubDate>Thu, 14 Aug 2025 13:05:42 GMT</pubDate></item><item><title>How to use RClone to backup your data to cloud drives/storages</title><link>https://blog.bowen.cool/posts/offsite-disaster-recovery-for-unraid-with-rclone/</link><guid isPermaLink="true">https://blog.bowen.cool/posts/offsite-disaster-recovery-for-unraid-with-rclone/</guid><description>&lt;img src=&quot;https://blog.bowen.cool/posts/offsite-disaster-recovery-for-unraid-with-rclone.png&quot; /&gt;&lt;br&gt;As is well known, unRAID, as one of the most popular home NAS systems, does not provide remote disaster recovery capabilities (the last item in the 3-2-1 backup principle). As data in the NAS becomes more and more abundant and applications become increasingly complex, I am increasingly concerned about how to recover if all NAS hardware fails due to force majeure (earthquakes, floods, fires, theft, etc.). In order to ensure that data is absolutely safe, today let&apos;s talk about remote disaster recovery.</description><pubDate>Mon, 14 Jul 2025 04:15:28 GMT</pubDate></item><item><title>How to track all http requests on the web using javascript</title><link>https://blog.bowen.cool/posts/how-to-track-all-http-requests-on-the-web-using-javascript/</link><guid isPermaLink="true">https://blog.bowen.cool/posts/how-to-track-all-http-requests-on-the-web-using-javascript/</guid><description>&lt;img src=&quot;https://blog.bowen.cool/posts/how-to-track-all-http-requests-on-the-web-using-javascript.png&quot; /&gt;&lt;br&gt;How to track all http requests on the web using javascript</description><pubDate>Sun, 13 Jul 2025 08:22:21 GMT</pubDate></item><item><title>How to track all the route changes on the web using javascript</title><link>https://blog.bowen.cool/posts/how-to-track-all-the-route-changes-on-the-web-using-javascript/</link><guid isPermaLink="true">https://blog.bowen.cool/posts/how-to-track-all-the-route-changes-on-the-web-using-javascript/</guid><description>&lt;img src=&quot;https://blog.bowen.cool/posts/how-to-track-all-the-route-changes-on-the-web-using-javascript.png&quot; /&gt;&lt;br&gt;How to track all the route changes on the web using javascript</description><pubDate>Sun, 13 Jul 2025 07:30:33 GMT</pubDate></item><item><title>15 万预算新能源 SUV 对比（2024）</title><link>https://blog.bowen.cool/posts/15w-suv-2024/</link><guid isPermaLink="true">https://blog.bowen.cool/posts/15w-suv-2024/</guid><description>&lt;img src=&quot;https://blog.bowen.cool/posts/15w-suv-2024.png&quot; /&gt;&lt;br&gt;15 万预算新能源 SUV 车型对比</description><pubDate>Thu, 07 Nov 2024 17:14:08 GMT</pubDate></item><item><title>How to encrypt backup your data on your nas</title><link>https://blog.bowen.cool/posts/how-to-encrypt-backup-your-data-on-your-nas/</link><guid isPermaLink="true">https://blog.bowen.cool/posts/how-to-encrypt-backup-your-data-on-your-nas/</guid><description>&lt;img src=&quot;https://blog.bowen.cool/posts/how-to-encrypt-backup-your-data-on-your-nas.png&quot; /&gt;&lt;br&gt;We previously discussed how to use RClone to back up your data to cloud drives/OSS and other remote storage services, but using RClone directly this way lacks some advanced features.</description><pubDate>Tue, 17 Sep 2024 01:12:03 GMT</pubDate></item><item><title>Open URLs that start with &quot;chrome://&quot; in Chrome on MacOS.</title><link>https://blog.bowen.cool/posts/open-chrome-url-in-chrome-on-macos/</link><guid isPermaLink="true">https://blog.bowen.cool/posts/open-chrome-url-in-chrome-on-macos/</guid><description>&lt;img src=&quot;https://blog.bowen.cool/posts/open-chrome-url-in-chrome-on-macos.png&quot; /&gt;&lt;br&gt;Chrome did not register itself to open URLs that start with &quot;chrome://&quot;. I&apos;m going to share some tips on how to fix this.</description><pubDate>Sun, 18 Aug 2024 04:27:45 GMT</pubDate></item><item><title>半瓶水的 NAS 硬件升级草案</title><link>https://blog.bowen.cool/posts/nas-hardwares/</link><guid isPermaLink="true">https://blog.bowen.cool/posts/nas-hardwares/</guid><description>&lt;img src=&quot;https://blog.bowen.cool/posts/nas-hardwares.png&quot; /&gt;&lt;br&gt;我目前的 NAS 是由一台 8 年前的旧电脑改造而成的。现在打算更换硬件，参考了一些别人的方案，并调研了比较流行的 NAS 硬件。在此记录一下，也供有需要的人参考。</description><pubDate>Fri, 26 Jul 2024 12:38:53 GMT</pubDate></item><item><title>No front-end required, 2 APIs implement OAuth authentication</title><link>https://blog.bowen.cool/posts/oauth-implementation/</link><guid isPermaLink="true">https://blog.bowen.cool/posts/oauth-implementation/</guid><description>&lt;img src=&quot;https://blog.bowen.cool/posts/oauth-implementation.png&quot; /&gt;&lt;br&gt;I&apos;ve seen too many OAuth flows designed by developers, and many of them actually require frontend involvement. Rendering the frontend page itself is already a complex process, yet they still repeatedly render pages, resulting in extremely poor performance, poor readability, and a waste of manpower. I really can&apos;t stand it anymore.</description><pubDate>Fri, 10 May 2024 07:34:01 GMT</pubDate></item><item><title>The easiest way to print a specific area (element) of an HTML page</title><link>https://blog.bowen.cool/posts/way-to-print-partial-html-page/</link><guid isPermaLink="true">https://blog.bowen.cool/posts/way-to-print-partial-html-page/</guid><description>&lt;img src=&quot;https://blog.bowen.cool/posts/way-to-print-partial-html-page.png&quot; /&gt;&lt;br&gt;The easiest way to print a specific area of an HTML page.</description><pubDate>Mon, 18 Mar 2024 09:09:37 GMT</pubDate></item><item><title>How to Implement Infinite Scrolling with an Ant Design Table</title><link>https://blog.bowen.cool/posts/infinite-scrolling-antd-table/</link><guid isPermaLink="true">https://blog.bowen.cool/posts/infinite-scrolling-antd-table/</guid><description>&lt;img src=&quot;https://blog.bowen.cool/posts/infinite-scrolling-antd-table.png&quot; /&gt;&lt;br&gt;This article will guide you on how to implement infinite scrolling in an Ant Design Table.</description><pubDate>Sat, 16 Mar 2024 12:29:30 GMT</pubDate></item><item><title>The basic principles and process of SSR (Server-Side Rendering)</title><link>https://blog.bowen.cool/posts/server-side-rendering-rationale/</link><guid isPermaLink="true">https://blog.bowen.cool/posts/server-side-rendering-rationale/</guid><description>&lt;img src=&quot;https://blog.bowen.cool/posts/server-side-rendering-rationale.png&quot; /&gt;&lt;br&gt;The basic principles and process of SSR (Server-Side Rendering)</description><pubDate>Sat, 16 Mar 2024 12:28:11 GMT</pubDate></item><item><title>The Browser Rendering Process</title><link>https://blog.bowen.cool/posts/browser-knowledge/</link><guid isPermaLink="true">https://blog.bowen.cool/posts/browser-knowledge/</guid><description>&lt;img src=&quot;https://blog.bowen.cool/posts/browser-knowledge.png&quot; /&gt;&lt;br&gt;This article summarizes some of the browser-related interview questions, including browser architecture, rendering process, performance optimization, and so on.</description><pubDate>Fri, 08 Mar 2024 02:44:25 GMT</pubDate></item><item><title>Common MacOS Shortcuts</title><link>https://blog.bowen.cool/posts/common-shortcuts-for-macos/</link><guid isPermaLink="true">https://blog.bowen.cool/posts/common-shortcuts-for-macos/</guid><description>&lt;img src=&quot;https://blog.bowen.cool/posts/common-shortcuts-for-macos.png&quot; /&gt;&lt;br&gt;This post shares some unifying shortcuts on MacOS for muscle memory formation.</description><pubDate>Wed, 06 Mar 2024 11:06:37 GMT</pubDate></item><item><title>How to write a promise-style dialog?</title><link>https://blog.bowen.cool/posts/how-to-write-a-promise-style-dialog/</link><guid isPermaLink="true">https://blog.bowen.cool/posts/how-to-write-a-promise-style-dialog/</guid><description>&lt;img src=&quot;https://blog.bowen.cool/posts/how-to-write-a-promise-style-dialog.png&quot; /&gt;&lt;br&gt;This article introduces a very concise way of writing Modal/Dialog.</description><pubDate>Tue, 05 Mar 2024 13:14:51 GMT</pubDate></item><item><title>When throttling and debouncing meet asynchronous, what kind of sparks will they create?</title><link>https://blog.bowen.cool/posts/when-throttling-meets-asynchrony/</link><guid isPermaLink="true">https://blog.bowen.cool/posts/when-throttling-meets-asynchrony/</guid><description>&lt;img src=&quot;https://blog.bowen.cool/posts/when-throttling-meets-asynchrony.png&quot; /&gt;&lt;br&gt;This article showcases an implementation of asynchronous throttling, and its twin brother, asynchronous debouncing.</description><pubDate>Fri, 23 Feb 2024 09:54:12 GMT</pubDate></item><item><title>How to connect to the internal network at home from outside?</title><link>https://blog.bowen.cool/posts/how-to-connect-to-the-home-intranet-from-outside/</link><guid isPermaLink="true">https://blog.bowen.cool/posts/how-to-connect-to-the-home-intranet-from-outside/</guid><description>&lt;img src=&quot;https://blog.bowen.cool/posts/how-to-connect-to-the-home-intranet-from-outside.png&quot; /&gt;&lt;br&gt;Summarized some of the solutions used by authors to connect to the home network.</description><pubDate>Sat, 10 Feb 2024 07:28:42 GMT</pubDate></item><item><title>How to modify code with code</title><link>https://blog.bowen.cool/posts/how-to-modify-code-with-ast/</link><guid isPermaLink="true">https://blog.bowen.cool/posts/how-to-modify-code-with-ast/</guid><description>&lt;img src=&quot;https://blog.bowen.cool/posts/how-to-modify-code-with-ast.png&quot; /&gt;&lt;br&gt;The use cases include the most common tool scenarios, such as automatically inserting some logical code or batch modifying the same code logic, and so on.</description><pubDate>Wed, 07 Feb 2024 03:30:12 GMT</pubDate></item><item><title>How do I build my Blog</title><link>https://blog.bowen.cool/posts/how-do-i-build-my-blog/</link><guid isPermaLink="true">https://blog.bowen.cool/posts/how-do-i-build-my-blog/</guid><description>&lt;img src=&quot;https://blog.bowen.cool/posts/how-do-i-build-my-blog.png&quot; /&gt;&lt;br&gt;This article describes some of the author&apos;s thoughts, tradeoffs, and experiences in building a blog in practice.</description><pubDate>Fri, 02 Feb 2024 13:27:08 GMT</pubDate></item><item><title>How to forward sms messages to your todo list</title><link>https://blog.bowen.cool/posts/how-to-forward-sms-messages-to-your-todo-list/</link><guid isPermaLink="true">https://blog.bowen.cool/posts/how-to-forward-sms-messages-to-your-todo-list/</guid><description>&lt;img src=&quot;https://blog.bowen.cool/posts/how-to-forward-sms-messages-to-your-todo-list.png&quot; /&gt;&lt;br&gt;This article introduces how Android and iOS devices can automatically forward pickup codes from text messages to the TODO app, using TickTick as an example.</description><pubDate>Wed, 24 Jan 2024 11:06:07 GMT</pubDate></item><item><title>为 vitepress 添加更专业的 Demo 演示能力</title><link>https://blog.bowen.cool/posts/add-more-professional-demo-presentation-capabilities-to-vitepress/</link><guid isPermaLink="true">https://blog.bowen.cool/posts/add-more-professional-demo-presentation-capabilities-to-vitepress/</guid><description>&lt;img src=&quot;https://blog.bowen.cool/posts/add-more-professional-demo-presentation-capabilities-to-vitepress.png&quot; /&gt;&lt;br&gt;为 vitepress 添加更专业的 Demo 演示能力</description><pubDate>Sun, 06 Aug 2023 07:51:27 GMT</pubDate></item><item><title>How to open two wechat instances on macOS</title><link>https://blog.bowen.cool/posts/how-to-open-two-wechat-instances-on-macOS/</link><guid isPermaLink="true">https://blog.bowen.cool/posts/how-to-open-two-wechat-instances-on-macOS/</guid><description>&lt;img src=&quot;https://blog.bowen.cool/posts/how-to-open-two-wechat-instances-on-macOS.png&quot; /&gt;&lt;br&gt;How to open two wechat instances on macOS</description><pubDate>Tue, 25 Jul 2023 01:44:32 GMT</pubDate></item><item><title>Use iPad as the sole display for Mac Mini</title><link>https://blog.bowen.cool/posts/use-ipad-as-the-sole-display-for-mac-mini/</link><guid isPermaLink="true">https://blog.bowen.cool/posts/use-ipad-as-the-sole-display-for-mac-mini/</guid><description>&lt;img src=&quot;https://blog.bowen.cool/posts/use-ipad-as-the-sole-display-for-mac-mini.png&quot; /&gt;&lt;br&gt;Use iPad as the sole display for Mac Mini! No need to connect an external display to enable Sidecar, the latest MacOS Ventura version, no need for Luna Display.</description><pubDate>Fri, 30 Jun 2023 08:51:08 GMT</pubDate></item><item><title>How to install oh-my-zsh on unRAID</title><link>https://blog.bowen.cool/posts/how-to-install-oh-my-zsh-on-unRAID/</link><guid isPermaLink="true">https://blog.bowen.cool/posts/how-to-install-oh-my-zsh-on-unRAID/</guid><description>&lt;img src=&quot;https://blog.bowen.cool/posts/how-to-install-oh-my-zsh-on-unRAID.png&quot; /&gt;&lt;br&gt;Every time unRAID is booted, the Home directory is reset, resulting in the installation of oh-my-zsh being wiped out. Here&apos;s how to do it, Automatically install it every time you boot up, and restore the configuration.</description><pubDate>Fri, 30 Jun 2023 08:46:47 GMT</pubDate></item><item><title>How to deploy nestjs app to vercel</title><link>https://blog.bowen.cool/posts/how-to-deploy-nestjs-app-to-vercel/</link><guid isPermaLink="true">https://blog.bowen.cool/posts/how-to-deploy-nestjs-app-to-vercel/</guid><description>&lt;img src=&quot;https://blog.bowen.cool/posts/how-to-deploy-nestjs-app-to-vercel.png&quot; /&gt;&lt;br&gt;Steps to deploy nestjs app to vercel</description><pubDate>Sat, 24 Jun 2023 11:27:26 GMT</pubDate></item><item><title>【补发】OpenVPN 小记</title><link>https://blog.bowen.cool/posts/openvpn-experience/</link><guid isPermaLink="true">https://blog.bowen.cool/posts/openvpn-experience/</guid><description>&lt;img src=&quot;https://blog.bowen.cool/posts/openvpn-experience.png&quot; /&gt;&lt;br&gt;记录一下配置 OpenVPN 过程中遇到的问题</description><pubDate>Sun, 14 Aug 2022 09:00:42 GMT</pubDate></item><item><title>记一次 @vue/cli 项目中启动 vite 开发</title><link>https://blog.bowen.cool/posts/start-vite-development-in-vue-cli-project/</link><guid isPermaLink="true">https://blog.bowen.cool/posts/start-vite-development-in-vue-cli-project/</guid><description>&lt;img src=&quot;https://blog.bowen.cool/posts/start-vite-development-in-vue-cli-project.png&quot; /&gt;&lt;br&gt;记一次 @vue/cli 项目中启动 vite 开发</description><pubDate>Thu, 07 Apr 2022 07:33:23 GMT</pubDate></item><item><title>等高布局老是忘？多半是废了</title><link>https://blog.bowen.cool/posts/equal-height-layout/</link><guid isPermaLink="true">https://blog.bowen.cool/posts/equal-height-layout/</guid><description>&lt;img src=&quot;https://blog.bowen.cool/posts/equal-height-layout.png&quot; /&gt;&lt;br&gt;教你如何记住等高布局</description><pubDate>Sat, 12 Feb 2022 08:49:00 GMT</pubDate></item><item><title>记一次在 Typescript 中给 debounce 写注解</title><link>https://blog.bowen.cool/posts/annotate_debounce_in_typescript/</link><guid isPermaLink="true">https://blog.bowen.cool/posts/annotate_debounce_in_typescript/</guid><description>&lt;img src=&quot;https://blog.bowen.cool/posts/annotate_debounce_in_typescript.png&quot; /&gt;&lt;br&gt;最近在用 ts 写一些东西，上次写 ts 还是去年的尝试</description><pubDate>Wed, 22 Sep 2021 03:09:38 GMT</pubDate></item><item><title>吞吐量相关计算公式推导</title><link>https://blog.bowen.cool/posts/derivation_of_throughput_related_formulas/</link><guid isPermaLink="true">https://blog.bowen.cool/posts/derivation_of_throughput_related_formulas/</guid><description>&lt;img src=&quot;https://blog.bowen.cool/posts/derivation_of_throughput_related_formulas.png&quot; /&gt;&lt;br&gt;吞吐量相关计算公式推导</description><pubDate>Mon, 08 Mar 2021 09:33:41 GMT</pubDate></item><item><title>Vue SSR 踩坑</title><link>https://blog.bowen.cool/posts/ssr-experience/</link><guid isPermaLink="true">https://blog.bowen.cool/posts/ssr-experience/</guid><description>&lt;img src=&quot;https://blog.bowen.cool/posts/ssr-experience.png&quot; /&gt;&lt;br&gt;记录一下 Vue SSR 项目中遇到的问题</description><pubDate>Thu, 16 Jul 2020 14:51:40 GMT</pubDate></item><item><title>Vue+ElementUI实现表单动态渲染、可视化配置</title><link>https://blog.bowen.cool/posts/dynamically-render-vue-form/</link><guid isPermaLink="true">https://blog.bowen.cool/posts/dynamically-render-vue-form/</guid><description>&lt;img src=&quot;https://blog.bowen.cool/posts/dynamically-render-vue-form.png&quot; /&gt;&lt;br&gt;前些日子碰到了动态渲染表单的需求，在这里记录一下，也许能帮到大家。</description><pubDate>Mon, 05 Mar 2018 00:00:00 GMT</pubDate></item></channel></rss>