<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>timerring</title><link>https://blogs.timerring.com/</link><description>Recent content on timerring</description><generator>Hugo</generator><language>en</language><lastBuildDate>Thu, 29 Jan 2026 10:03:20 +0800</lastBuildDate><atom:link href="https://blogs.timerring.com/index.xml" rel="self" type="application/rss+xml"/><item><title>How to Subscribe to Gemini Pro Outside the US</title><link>https://blogs.timerring.com/posts/how-to-subscribe-to-gemini-pro-outside-the-us/</link><pubDate>Thu, 29 Jan 2026 10:03:20 +0800</pubDate><guid>https://blogs.timerring.com/posts/how-to-subscribe-to-gemini-pro-outside-the-us/</guid><description>&lt;p>If you&amp;rsquo;re located outside the United States and trying to subscribe to Gemini Pro, you might have encountered the frustrating &amp;ldquo;Not available in your region&amp;rdquo; message. This guide explains why this happens and how to fix it.&lt;/p></description></item><item><title>Vim Cheatsheet</title><link>https://blogs.timerring.com/posts/vim-cheatsheet/</link><pubDate>Tue, 13 Jan 2026 17:38:50 +0800</pubDate><guid>https://blogs.timerring.com/posts/vim-cheatsheet/</guid><description>&lt;p>Vim is a powerful command-line text editor that&amp;rsquo;s been around for decades, and it&amp;rsquo;s still widely used today. Whether you&amp;rsquo;re SSH-ing into a remote server or just prefer the keyboard-centric workflow, Vim is often the go-to choice. The learning curve can be steep at first — I remember the first time I opened Vim and couldn&amp;rsquo;t even figure out how to quit. But once you get the hang of it, the efficiency gains are real. This cheatsheet covers the essentials I use most often, and I’m trying to condense them.&lt;/p></description></item><item><title>ERC 8004 Trustless Agents</title><link>https://blogs.timerring.com/posts/erc-8004-trustless-agents/</link><pubDate>Thu, 16 Oct 2025 02:23:05 +0800</pubDate><guid>https://blogs.timerring.com/posts/erc-8004-trustless-agents/</guid><description>&lt;p>This article is my understanding of the ERC-8004: Trustless Agents, which is a standard for Identity Registry, Reputation Registry and Verification Registry. And refer to the Ethereum Improvement Proposals &lt;a href="https://eips.ethereum.org/EIPS/eip-8004" target="_blank" rel="nofollow noopener">ERC-8004: Trustless Agents&lt;/a>&lt;sup>&lt;a href="#ref-link-1" class="footnote-ref" id="ref-link-back-1">[1]&lt;/a>&lt;/sup>.&lt;/p></description></item><item><title>Fix the Ghost Notification of Github</title><link>https://blogs.timerring.com/posts/fix-the-ghost-notification-of-github/</link><pubDate>Mon, 13 Oct 2025 19:06:52 +0800</pubDate><guid>https://blogs.timerring.com/posts/fix-the-ghost-notification-of-github/</guid><description>&lt;p>I ran into a stubborn GitHub notification blue dot that wouldn’t go away even though the Notifications page showed nothing. Here’s the quick, safe way I found to resolve it, plus a few alternatives and notes on why it happens.&lt;/p></description></item><item><title>Disable SIP on Macos</title><link>https://blogs.timerring.com/posts/disable-SIP-on-Macos/</link><pubDate>Sun, 12 Oct 2025 19:39:00 +0800</pubDate><guid>https://blogs.timerring.com/posts/disable-SIP-on-Macos/</guid><description>&lt;p>System Integrity Protection (SIP) is a security layer that limits even the &lt;code>root&lt;/code> user from modifying protected parts of the system. Apple introduced it in OS X El Capitan to reduce the blast radius of malware and accidental system damage. In practice, SIP blocks writes to system locations, prevents runtime injection into protected processes, and restricts some kernel/system-level operations.&lt;/p>
&lt;p>Sometimes I run a command and see &amp;lsquo;Operation not permitted&amp;rsquo; despite &lt;code>sudo&lt;/code>, SIP is often the reason. So I need to disable SIP temporarily.&lt;/p></description></item><item><title>How to Partially Clone</title><link>https://blogs.timerring.com/posts/how-to-partially-clone/</link><pubDate>Thu, 21 Aug 2025 21:56:10 +0800</pubDate><guid>https://blogs.timerring.com/posts/how-to-partially-clone/</guid><description>&lt;p>Sometimes you encounter a large repository but only need a few directories from it. Cloning the entire repo wastes both time and disk space. Git&amp;rsquo;s sparse checkout solves this problem by letting you pull only the parts you need.&lt;/p></description></item><item><title>The Tips of Macos Automator</title><link>https://blogs.timerring.com/posts/the-tips-of-macos-automator/</link><pubDate>Sun, 22 Jun 2025 14:27:16 +0800</pubDate><guid>https://blogs.timerring.com/posts/the-tips-of-macos-automator/</guid><description>&lt;p>The Automator is a powerful tool for automating tasks on macOS. It allows you to create custom workflows that can be triggered by various events, such as opening a file, pasting text, or receiving an email. This article will share my common usages of Automator.&lt;/p></description></item><item><title>Mainland Network Circuits</title><link>https://blogs.timerring.com/posts/mainland-network-circuits/</link><pubDate>Thu, 19 Jun 2025 22:24:36 +0800</pubDate><guid>https://blogs.timerring.com/posts/mainland-network-circuits/</guid><description>&lt;p>The performance and reliability of internet connectivity to and from mainland China are determined by a complex web of different network circuits, each with its own characteristics.&lt;/p>
&lt;p>We will explore the crucial differences between the standard &lt;em>public network&lt;/em> backbones, like the workhorse 163 network, and premium, optimized lines like CN2. We&amp;rsquo;ll also explain what &lt;em>dedicated networks&lt;/em> such as IPLC are and why they offer a completely different level of performance and privacy. By the end of this article, you&amp;rsquo;ll have a clear framework for understanding these circuits, helping you make more informed decisions whether you&amp;rsquo;re choosing a hosting provider, diagnosing network issues, or are simply curious about how the internet infrastructure in mainland China operates.&lt;/p></description></item><item><title>Cloudflare Warp</title><link>https://blogs.timerring.com/posts/cloudflare-warp/</link><pubDate>Fri, 06 Jun 2025 14:52:52 +0800</pubDate><guid>https://blogs.timerring.com/posts/cloudflare-warp/</guid><description>&lt;p>Frankly speaking, the first time I heard about Cloudflare is the service so called Cloudflare WARP which is provided by Cloudflare. Nowadays, you must have heard the fastest and private network can be provided by Cloudflare. If I say Cloudflare achieves the fastest object by the first step to visiting any website, the world’s fastest public DNS &lt;code>1.1.1.1&lt;/code>. You can probably guess the private provider, yes, that is Cloudflare &lt;code>WARP&lt;/code>. So this article I will introduce the Cloudflare WARP further zero trust and how to use it.&lt;/p></description></item><item><title>The principle of Cloudflare SaaS Optimization</title><link>https://blogs.timerring.com/posts/the-principle-of-cloudflare-saas-optimization/</link><pubDate>Wed, 04 Jun 2025 11:23:44 +0800</pubDate><guid>https://blogs.timerring.com/posts/the-principle-of-cloudflare-saas-optimization/</guid><description>&lt;p>In common situation, when you use the cloudflare to resolve your domain name, and you choose to use the &lt;code>cloudflare proxy&lt;/code>(the yellow cloud icon), then cloudflare would probably get your domain resources into their CDN, that could be a good thing, but as we know, the network in mainland has some special rules, so for the free tier user, the access to the resources in the CDN would be somehow worse, even &lt;code>rest&lt;/code>. That means, if the user connect to the node which has high latency, the request will experience worse. So this article will introduce some methods to help your resources access to the cloudflare nodes which are optimized for the mainland.&lt;/p></description></item><item><title>The MitM and HTTPS Capturing</title><link>https://blogs.timerring.com/posts/the-mitm-and-https-capturing/</link><pubDate>Tue, 03 Jun 2025 16:03:16 +0800</pubDate><guid>https://blogs.timerring.com/posts/the-mitm-and-https-capturing/</guid><description>&lt;p>Do you really know what is the network activity on your phone? Have you ever wondered how to capture the https packages on your phone? In this article, I will introduce you to the &lt;code>MitM&lt;/code> and how to capture the https traffic on your phone.&lt;/p></description></item><item><title>How to Keep Your MAC Always Awake</title><link>https://blogs.timerring.com/posts/how-to-keep-your-mac-always-awake/</link><pubDate>Fri, 30 May 2025 22:01:25 +0800</pubDate><guid>https://blogs.timerring.com/posts/how-to-keep-your-mac-always-awake/</guid><description>&lt;p>Here are some common scenarios: You&amp;rsquo;re about to step away from your Mac for a period, or you&amp;rsquo;re downloading large files and want to keep your Mac from going to sleep. (If you use an external display, you likely understand what I mean. Sometimes, after waking from sleep mode, your Mac fails to power on the external display.) That&amp;rsquo;s why I highly recommend &lt;code>Amphetamine&lt;/code> to you. I&amp;rsquo;ve often heard that macOS boasts excellent power management, but lacking in-depth knowledge myself, I&amp;rsquo;ve sought out the answer.&lt;/p></description></item><item><title>The Way to Get Cookie</title><link>https://blogs.timerring.com/posts/the-way-to-get-cookie/</link><pubDate>Sun, 25 May 2025 13:34:21 +0800</pubDate><guid>https://blogs.timerring.com/posts/the-way-to-get-cookie/</guid><description>&lt;p>本文介绍获取 Cookie 最直接常用的方法。&lt;/p></description></item><item><title>How to Choose the Right Software and Creative License</title><link>https://blogs.timerring.com/posts/how-to-choose-the-right-software-and-creative-license/</link><pubDate>Sat, 24 May 2025 20:06:58 +0800</pubDate><guid>https://blogs.timerring.com/posts/how-to-choose-the-right-software-and-creative-license/</guid><description>&lt;p>Normally, there are many types of software licenses, each with different terms and conditions. Choosing the right license for your project can be a daunting task. In this article, we will discuss the different types of software licenses and how to choose the right one for your project. And in the end, I make a simple website &lt;a href="https://license.timerring.com" target="_blank" rel="nofollow noopener">https://license.timerring.com&lt;/a>&lt;sup>&lt;a href="#ref-link-1" class="footnote-ref" id="ref-link-back-1">[1]&lt;/a>&lt;/sup> to help you choose exactly the license you need.&lt;/p></description></item><item><title>Add Live Photo Effect to Hugo</title><link>https://blogs.timerring.com/posts/0516-add-live-photo-effect-to-hugo/</link><pubDate>Fri, 16 May 2025 16:15:56 +0800</pubDate><guid>https://blogs.timerring.com/posts/0516-add-live-photo-effect-to-hugo/</guid><description>&lt;p>Live Photos 作为最早 Apple 在2015年9月发布的 &lt;code>iPhone6s&lt;/code> 和 &lt;code>6s Plus&lt;/code> 中引入的特色功能，很快就在手机摄影领域独树一帜，收获了无数忠实用户，Live Photo 的特色在于，它不仅仅是一张静态的照片，用户在拍摄实况照片时，iPhone会录下拍照前后各 1.5 秒所发生的一切。在 24 年下半年，随着微信宣布支持实况照片，Live Photo 再次成为了各大应用以及手机厂商的焦点，在短时间内无法实现更好的 AI 叙事的当下，不少手机厂商将 Live photo 适配各大社交媒体视为这个季度的业绩救赎，最近我也在思考，是否可以在博客中添加这个 feature，以便可以更好地展示照片的内容，在经过一番仔细搜索之后，发现网上完全没有关于 Hugo 支持 Live photo 的任何讨论，因此我决定自己动手实现这个 feature，也就有了本篇文章。&lt;/p></description></item><item><title>The Practice of Resolving Domain</title><link>https://blogs.timerring.com/posts/the-practice-of-resolving-domain/</link><pubDate>Sun, 11 May 2025 11:10:46 +0800</pubDate><guid>https://blogs.timerring.com/posts/the-practice-of-resolving-domain/</guid><description>&lt;p>According to the last article about 
 &lt;a href="https://blogs.timerring.com/posts/a-brief-introduction-to-dns/">A Brief Introduction to DNS&lt;/a>, you may have a basic understanding of DNS. In this article, I will show you how to resolve domain name to IP address or other information in practice.&lt;/p></description></item><item><title>Hidden Markov Models</title><link>https://blogs.timerring.com/posts/hidden-markov-models/</link><pubDate>Mon, 21 Apr 2025 14:49:15 +0800</pubDate><guid>https://blogs.timerring.com/posts/hidden-markov-models/</guid><description>&lt;p>This is a lecture note of Hidden Markov Models.&lt;/p></description></item><item><title>Markov Chains</title><link>https://blogs.timerring.com/posts/markov-chains/</link><pubDate>Sun, 20 Apr 2025 18:38:25 +0800</pubDate><guid>https://blogs.timerring.com/posts/markov-chains/</guid><description>&lt;p>This is the notes for the lecture of Markov Chains.&lt;/p></description></item><item><title>Markov Processes</title><link>https://blogs.timerring.com/posts/markov-processes/</link><pubDate>Sun, 20 Apr 2025 15:35:34 +0800</pubDate><guid>https://blogs.timerring.com/posts/markov-processes/</guid><description>&lt;p>This is a summary of the lecture notes of Markov Processes.&lt;/p></description></item><item><title>Find the Formula Rendering Issue of Hugo</title><link>https://blogs.timerring.com/posts/0418-find-the-formula-rendering-issue-of-hugo/</link><pubDate>Fri, 18 Apr 2025 13:47:15 +0800</pubDate><guid>https://blogs.timerring.com/posts/0418-find-the-formula-rendering-issue-of-hugo/</guid><description>&lt;p>最近在写数学相关的博客的时候，发现 &lt;code>mathjax&lt;/code> 的渲染效果不尽人意，经常会在渲染的时候出现非预期的渲染效果，虽然只是极个别的公式，对整体影响并不大，当然我可以放着不解决，继续进行接下来的事情，或者简单将公式通过截图的形式放在文章里，也无伤大雅。但是凡事得想长远，想本质，今天大可以为了这一个公式采用省事的方法解决，那么它不会是我写的最后一个公式，未来可能还会有更多，因为这是一个长期的问题，如果放任不管，可能下次遇到类似的问题，我可能还是会采用省事的方法解决，那么这个问题就会一直存在，所以我认为放下手头的事，集中解决这个问题是值得的。&lt;/p></description></item><item><title>Multi Platform Builds Docker</title><link>https://blogs.timerring.com/posts/multi-platform-builds-docker/</link><pubDate>Wed, 09 Apr 2025 16:39:42 +0800</pubDate><guid>https://blogs.timerring.com/posts/multi-platform-builds-docker/</guid><description>&lt;p>This is a viable build record. The multi platform builds are supported by &lt;a href="https://docs.docker.com/build/building/multi-platform/" target="_blank" rel="nofollow noopener">&lt;code>docker buildx&lt;/code>&lt;/a>&lt;sup>&lt;a href="#ref-link-1" class="footnote-ref" id="ref-link-back-1">[1]&lt;/a>&lt;/sup>, which is related to &lt;code>binfmt_misc&lt;/code> and &lt;code>QEMU&lt;/code>.&lt;/p></description></item><item><title>The Invitation Only Mechanism: From Clubhouse to Manus</title><link>https://blogs.timerring.com/posts/0404-The-invitation-only-mechanism-from-clubhouse-to-manus/</link><pubDate>Fri, 04 Apr 2025 11:40:39 +0800</pubDate><guid>https://blogs.timerring.com/posts/0404-The-invitation-only-mechanism-from-clubhouse-to-manus/</guid><description>&lt;p>虽然自小就听到过会员制的概念，但是也仅限于超市或者药店作为一种鼓励积分的方式，亦或是理发店等固定销售半径的捆绑销售的手段。不同于现在人们所谈论“邀请会员制”的概念，关于“邀请会员制”，我认为英文中有一个非常有意思的词，叫做 &lt;strong>exclusive&lt;/strong>，意思是“只，仅仅”，但是在礼物等场景中 exclusive 尝尝用来形容“特定的，独家的”，追根溯源，本质上都是一种排他性(exclusivity)的文化覆盖。&lt;/p></description></item><item><title>How to Use Git Submodule</title><link>https://blogs.timerring.com/posts/how-to-use-git-submodule/</link><pubDate>Fri, 28 Mar 2025 15:44:52 +0800</pubDate><guid>https://blogs.timerring.com/posts/how-to-use-git-submodule/</guid><description>&lt;p>&lt;a href="https://git-scm.com/book/en/v2/Git-Tools-Submodules" target="_blank" rel="nofollow noopener">Git submodule&lt;/a>&lt;sup>&lt;a href="#ref-link-1" class="footnote-ref" id="ref-link-back-1">[1]&lt;/a>&lt;/sup> is a feature of Git that allows you to include a Git repository as a subdirectory of another Git repository. It is often used to manage dependencies between projects.&lt;/p></description></item><item><title>Live Streaming infra and protocols</title><link>https://blogs.timerring.com/posts/live-streaming-infra-and-protocols/</link><pubDate>Mon, 24 Mar 2025 23:02:26 +0800</pubDate><guid>https://blogs.timerring.com/posts/live-streaming-infra-and-protocols/</guid><description>&lt;p>In our daily life, you may always see the live streaming on the internet, such as the live streaming of the video conference, the live streaming of the sports event, the live streaming of the online course, etc. And sometimes you even start your own live streaming, but we all get used to just clicking the button on the screen to start the live streaming, do you know what is happening behind the scene?&lt;/p></description></item><item><title>Implement danmaku rendering algorithm from scratch</title><link>https://blogs.timerring.com/posts/implement-danmaku-rendering-algorithm-from-scratch/</link><pubDate>Sat, 22 Mar 2025 13:13:16 +0800</pubDate><guid>https://blogs.timerring.com/posts/implement-danmaku-rendering-algorithm-from-scratch/</guid><description>&lt;p>This article presents a comprehensive implementation of a danmaku rendering algorithm from the ground up, along with a thorough analysis of the danmaku rendering algorithm. The source code is available on &lt;a href="https://github.com/timerring/DanmakuConvert" target="_blank" rel="nofollow noopener">GitHub&lt;/a>&lt;sup>&lt;a href="#ref-link-1" class="footnote-ref" id="ref-link-back-1">[1]&lt;/a>&lt;/sup>.&lt;/p></description></item><item><title>Is There an Rss Renaissance in the AI Era?</title><link>https://blogs.timerring.com/posts/is-there-an-rss-renaissance-in-the-ai-era/</link><pubDate>Fri, 21 Mar 2025 13:34:19 +0800</pubDate><guid>https://blogs.timerring.com/posts/is-there-an-rss-renaissance-in-the-ai-era/</guid><description>&lt;p>RSS: RDF Site Summary or Really Simple Syndication。&lt;/p>
&lt;p>如果说 search 是信息 pull 的代表，那毫无疑问，RSS 就是信息 push 的代表。简单地讲，就是一种信息聚合的服务，通过一种标准化的消息来源的格式规范，聚合多个网站的内容更新并且通知订阅者。尽管听起来很复杂，但是 RSS 本质上只需要两步，从目标网站上找到 RSS 链接，并把它添加到自己内容收取的服务里。&lt;/p></description></item><item><title>Stock Prices</title><link>https://blogs.timerring.com/posts/stock-prices/</link><pubDate>Thu, 20 Mar 2025 15:16:35 +0800</pubDate><guid>https://blogs.timerring.com/posts/stock-prices/</guid><description>&lt;p>This is a tutorial for stock prices in the context of random processes.&lt;/p></description></item><item><title>Possion Processes</title><link>https://blogs.timerring.com/posts/possion-processes/</link><pubDate>Wed, 19 Mar 2025 22:01:16 +0800</pubDate><guid>https://blogs.timerring.com/posts/possion-processes/</guid><description>&lt;p>This article is mainly about the Poisson processes in the book &amp;ldquo;Random Processes&amp;rdquo; by Gregory F. Lawler.&lt;/p></description></item><item><title>Docker With GPU</title><link>https://blogs.timerring.com/posts/docker-with-gpu/</link><pubDate>Tue, 18 Mar 2025 12:21:21 +0800</pubDate><guid>https://blogs.timerring.com/posts/docker-with-gpu/</guid><description>&lt;p>This post is to introduce how to use gpu in docker, which also covers the basic usage of gpu on the host machine.&lt;/p></description></item><item><title>Stochastic Processes</title><link>https://blogs.timerring.com/posts/stochastic-processes/</link><pubDate>Sat, 15 Mar 2025 19:30:50 +0800</pubDate><guid>https://blogs.timerring.com/posts/stochastic-processes/</guid><description>&lt;p>Compared to deterministic model, which is specified by a set of equations that describe exactly how the system will evolve over time. In a stochastic model, the evolution is at least partially random and if the process is run several times, it will not give identical results.&lt;/p></description></item><item><title>Some Useful Tools</title><link>https://blogs.timerring.com/posts/some-useful-tools/</link><pubDate>Thu, 13 Mar 2025 15:13:51 +0800</pubDate><guid>https://blogs.timerring.com/posts/some-useful-tools/</guid><description>&lt;p>Some useful tools for developers.&lt;/p>
&lt;p>Note: This post will be updated regularly.&lt;/p></description></item><item><title>A Shopping Experience in Pang Donglai Supermarket</title><link>https://blogs.timerring.com/posts/a-shopping-experience-in-pangdonglai-supermarket/</link><pubDate>Fri, 07 Mar 2025 14:09:23 +0800</pubDate><guid>https://blogs.timerring.com/posts/a-shopping-experience-in-pangdonglai-supermarket/</guid><description>&lt;p>前天在广州找朋友时发现附近有一家永辉超市，它是去年年末自主改调的“胖东来”超市，我一下子来了兴致，之前虽然也去过河南很多城市，但是没有去过许昌和新乡(New York)，而胖东来又不在河南之外开店，所以一直缺少体验的机会。在胖东来仔细转了一遍后，我对胖东来的服务有了更进一步的理解和感受。&lt;/p></description></item><item><title>Langchain and RAG Best Practices</title><link>https://blogs.timerring.com/posts/langchain-and-rag-best-practices/</link><pubDate>Wed, 05 Mar 2025 00:05:24 +0800</pubDate><guid>https://blogs.timerring.com/posts/langchain-and-rag-best-practices/</guid><description>&lt;p>This is a quick-start essay for LangChain and RAG which mainly refers to the &lt;a href="https://learn.deeplearning.ai/courses/langchain-chat-with-your-data/lesson/snupv/introduction?courseName=langchain-chat-with-your-data" target="_blank" rel="nofollow noopener">Langchain chat with your data&lt;/a>&lt;sup>&lt;a href="#ref-link-1" class="footnote-ref" id="ref-link-back-1">[1]&lt;/a>&lt;/sup> course which are taught by Harrison Chase and Andrew Ng.&lt;/p></description></item><item><title>Random Walks</title><link>https://blogs.timerring.com/posts/random-walks/</link><pubDate>Tue, 18 Feb 2025 22:14:11 +0800</pubDate><guid>https://blogs.timerring.com/posts/random-walks/</guid><description>&lt;p>This article is a summary of the random walks in the book &amp;ldquo;Random Processes&amp;rdquo; by Gregory F. Lawler.&lt;/p></description></item><item><title>Sequences of Random Variables</title><link>https://blogs.timerring.com/posts/sequences-of-random-variables/</link><pubDate>Sun, 02 Feb 2025 20:56:05 +0800</pubDate><guid>https://blogs.timerring.com/posts/sequences-of-random-variables/</guid><description/></item><item><title>Parameter Estimation</title><link>https://blogs.timerring.com/posts/parameter-estimation/</link><pubDate>Sun, 02 Feb 2025 14:55:34 +0800</pubDate><guid>https://blogs.timerring.com/posts/parameter-estimation/</guid><description>&lt;p>This is the notes for the lecture of Parameter Estimation.&lt;/p></description></item><item><title>Two Random Variables</title><link>https://blogs.timerring.com/posts/two-random-variables/</link><pubDate>Sat, 01 Feb 2025 23:55:24 +0800</pubDate><guid>https://blogs.timerring.com/posts/two-random-variables/</guid><description>&lt;p>This article is about the two random variables and their properties.&lt;/p></description></item><item><title>Further Understanding of Proc</title><link>https://blogs.timerring.com/posts/further-understanding-of-proc/</link><pubDate>Sat, 01 Feb 2025 20:49:58 +0800</pubDate><guid>https://blogs.timerring.com/posts/further-understanding-of-proc/</guid><description>&lt;p>The &lt;code>/proc&lt;/code> in Linux is a kind of Pseudo file system (also known as Virtual File System), what it saves is a series of special files that store the current running state of the kernel, and the user can check the hardware info and the runnning processes via the files, even adjust some files to change the state of running kernel. The files in &lt;code>/proc&lt;/code> will be refresh in RAM, so the files&amp;rsquo; size is 0 bytes.&lt;/p></description></item><item><title>The Iftop</title><link>https://blogs.timerring.com/posts/the-iftop/</link><pubDate>Thu, 30 Jan 2025 23:57:06 +0800</pubDate><guid>https://blogs.timerring.com/posts/the-iftop/</guid><description>&lt;p>I frequently use &lt;code>ifconfig&lt;/code> and &lt;code>cat /proc/net/dev&lt;/code> to examine network information. However, today, my cloud server crashed unexpectedly. I reached out to the cloud support for assistance. The engineer utilized &lt;code>iftop&lt;/code> to analyze the situation. After the issue was resolved, I started to consider using this tool. Now, let&amp;rsquo;s take a closer look at this powerful utility.&lt;/p></description></item><item><title>Some Useful Commands to Share</title><link>https://blogs.timerring.com/posts/some-useful-commands-to-share/</link><pubDate>Thu, 30 Jan 2025 23:38:01 +0800</pubDate><guid>https://blogs.timerring.com/posts/some-useful-commands-to-share/</guid><description>&lt;p>Some good commands to share.&lt;/p>
&lt;p>Note: This post will be updated regularly.&lt;/p></description></item><item><title>Random Variables</title><link>https://blogs.timerring.com/posts/random-variables/</link><pubDate>Tue, 28 Jan 2025 22:15:30 +0800</pubDate><guid>https://blogs.timerring.com/posts/random-variables/</guid><description>&lt;p>This article introduces the common distribution functions both continuous and discrete. Besides, the basic knowledge of conditional distribution such as total probability and Bayes&amp;rsquo; Theorem is also introduced. The most important part are the Normal Approximation and Poisson Approximation of the Binomial Random Variable.&lt;/p></description></item><item><title>Repeated Trials</title><link>https://blogs.timerring.com/posts/repeated-trials/</link><pubDate>Tue, 28 Jan 2025 15:08:44 +0800</pubDate><guid>https://blogs.timerring.com/posts/repeated-trials/</guid><description>&lt;p>This article is mainly about Bernoulli Trials and its properties.&lt;/p></description></item><item><title>Probability and Its Axioms</title><link>https://blogs.timerring.com/posts/probability-and-its-axioms/</link><pubDate>Mon, 27 Jan 2025 19:54:20 +0800</pubDate><guid>https://blogs.timerring.com/posts/probability-and-its-axioms/</guid><description>&lt;p>This article is about the probability and its axioms.&lt;/p></description></item><item><title>Reflections on Trending Topics</title><link>https://blogs.timerring.com/posts/reflections-on-trending-topics/</link><pubDate>Sat, 25 Jan 2025 15:42:49 +0800</pubDate><guid>https://blogs.timerring.com/posts/reflections-on-trending-topics/</guid><description>&lt;p>一次制造热点帖子引发的思考与总结。&lt;/p></description></item><item><title>CPU can only see the threads</title><link>https://blogs.timerring.com/posts/cpu-can-only-see-the-threads/</link><pubDate>Thu, 23 Jan 2025 23:36:22 +0800</pubDate><guid>https://blogs.timerring.com/posts/cpu-can-only-see-the-threads/</guid><description>&lt;p>In python, due to the GIL (Global Interpreter Lock), which is a mutex and ensures only one thread can execute at a time, so the multiple threads parallel execution is not supported under the CPython interpreter. But what about the multiple processes? What is the difference between them? How to choose the right method? Do you know the coroutine? Let&amp;rsquo;s explore it together.&lt;/p></description></item><item><title>Go Common Test</title><link>https://blogs.timerring.com/posts/go-common-test/</link><pubDate>Wed, 22 Jan 2025 17:08:47 +0800</pubDate><guid>https://blogs.timerring.com/posts/go-common-test/</guid><description>&lt;p>The test methods in Go mainly include three types: unit test, benchmark test, and example test.&lt;/p></description></item><item><title>Go Concurrency and Parallelism</title><link>https://blogs.timerring.com/posts/go-concurrency-and-parallelism/</link><pubDate>Wed, 22 Jan 2025 14:00:45 +0800</pubDate><guid>https://blogs.timerring.com/posts/go-concurrency-and-parallelism/</guid><description/></item><item><title>Go Cheatsheet</title><link>https://blogs.timerring.com/posts/go-cheatsheet/</link><pubDate>Tue, 21 Jan 2025 18:30:07 +0800</pubDate><guid>https://blogs.timerring.com/posts/go-cheatsheet/</guid><description/></item><item><title>Video Technology 101</title><link>https://blogs.timerring.com/posts/video-technology-101/</link><pubDate>Mon, 20 Jan 2025 11:01:09 +0800</pubDate><guid>https://blogs.timerring.com/posts/video-technology-101/</guid><description>&lt;p>Do you really understand the video technology? What is the &lt;code>frame rate&lt;/code>, &lt;code>resolution&lt;/code>, &lt;code>bit rate&lt;/code> and their relationships? Do you know the parameters &lt;code>p&lt;/code> and &lt;code>K&lt;/code> in the terminology &lt;code>1080p&lt;/code> and &lt;code>4K&lt;/code>? Do you know how to describe the video quality? What is the &lt;code>Blu-ray Disc&lt;/code> on earth? What the difference between the codec such as &lt;code>H.264/AVC&lt;/code>, &lt;code>H.265/HEVC&lt;/code>, &lt;code>AV1&lt;/code>? You may notice the &lt;code>Apple ProRes&lt;/code> in apple, so do you really understand what it for? Do you know the &lt;code>HDR&lt;/code> and &lt;code>Dolby Vision&lt;/code>? So why there are so many tailers such as &lt;code>.mp4&lt;/code>, &lt;code>.mkv&lt;/code>, &lt;code>.flv&lt;/code>, etc?&lt;/p>
&lt;p>Now this Video Technology 101 will introduce them to you.&lt;/p></description></item><item><title>The Main Kind of Message Queue</title><link>https://blogs.timerring.com/posts/the-main-kind-of-message-queue/</link><pubDate>Sun, 19 Jan 2025 20:15:13 +0800</pubDate><guid>https://blogs.timerring.com/posts/the-main-kind-of-message-queue/</guid><description>&lt;p>Message queues are a form of asynchronous service-to-service communication. They are important in enhancing a system&amp;rsquo;s scalability, reliability, and maintainability.&lt;/p></description></item><item><title>The Method to Manage Traffic</title><link>https://blogs.timerring.com/posts/the-method-to-manage-traffic/</link><pubDate>Sun, 19 Jan 2025 17:33:27 +0800</pubDate><guid>https://blogs.timerring.com/posts/the-method-to-manage-traffic/</guid><description>&lt;p>Do you know the basic method to manage the traffic? There are four methods: Load Balancers, Reverse Proxies, Forward Proxies, and API Gateways. And they have different features and usage scenarios.&lt;/p></description></item><item><title>The Different Kind of API Design</title><link>https://blogs.timerring.com/posts/the-different-kind-of-api-design/</link><pubDate>Sun, 19 Jan 2025 14:42:18 +0800</pubDate><guid>https://blogs.timerring.com/posts/the-different-kind-of-api-design/</guid><description>&lt;p>In the daily life, we often hear about different kind of API, such as REST API, GraphQL API, WebSocket, Webhook, RPC and gRPC even the SOAP, so do you know the difference between them? How to choose the right API for your project?&lt;/p></description></item><item><title>The Encode and Decode in Python</title><link>https://blogs.timerring.com/posts/the-encode-and-decode-in-python/</link><pubDate>Sun, 19 Jan 2025 13:07:49 +0800</pubDate><guid>https://blogs.timerring.com/posts/the-encode-and-decode-in-python/</guid><description>&lt;p>Do you really know the encode and decode in Python?&lt;/p></description></item><item><title>About the Systemd</title><link>https://blogs.timerring.com/posts/about-the-systemd/</link><pubDate>Sat, 18 Jan 2025 22:06:14 +0800</pubDate><guid>https://blogs.timerring.com/posts/about-the-systemd/</guid><description>&lt;p>It has been a long time since the linux used &lt;code>init&lt;/code> to manage the startup process, such as &lt;code>sudo /etc/init.d/apache2 start&lt;/code> or &lt;code>service apache2 start&lt;/code>, but the &lt;code>init&lt;/code> is serial. To address this issue, the &lt;code>systemd&lt;/code> was born. The d is the abbreviation of &lt;code>daemon&lt;/code>, which means the &lt;code>systemd&lt;/code> is a daemon manager. The systemd substitutes the initd and becomes the default main process &lt;code>PID 1&lt;/code>.&lt;/p></description></item><item><title>The Tips About Dockerfile</title><link>https://blogs.timerring.com/posts/the-tips-about-dockerfile/</link><pubDate>Sat, 18 Jan 2025 21:05:23 +0800</pubDate><guid>https://blogs.timerring.com/posts/the-tips-about-dockerfile/</guid><description>&lt;p>Normally, we often write a &lt;code>Dockerfile&lt;/code> in the current directory.&lt;/p>
&lt;ul>
&lt;li>The &lt;code>Dockerfile&lt;/code> is a configuration file that describes how to build the image. You can refer to the &lt;a href="https://docs.docker.com/reference/dockerfile/" target="_blank" rel="nofollow noopener">official documentation&lt;/a>&lt;sup>&lt;a href="#ref-link-1" class="footnote-ref" id="ref-link-back-1">[1]&lt;/a>&lt;/sup> for more details.&lt;/li>
&lt;li>If you list &lt;strong>more than one&lt;/strong> &lt;code>CMD&lt;/code>, only the last one takes effect. So if you have multiple commands to run, you better write them in a script file.&lt;/li>
&lt;li>Docker is not the VMware, there is no &lt;code>systemd&lt;/code> in the container. Its startup program is the container application process. The container exists for the main process. Once the main process exits, the container loses its meaning of existence and thus exits. So when you execute multiple commands and if they are blocking, you better write the previous commands in nohup and the last command in the blocking command. (never use the command such as &lt;code>CMD service nginx start&lt;/code>, the CMD only will execute as &lt;code>CMD [ &amp;quot;sh&amp;quot;, &amp;quot;-c&amp;quot;, &amp;quot;service nginx start&amp;quot;]&lt;/code>, when the sh is executed, the container will exit, the correct way is run it directly &lt;code>CMD [&amp;quot;nginx&amp;quot;, &amp;quot;-g&amp;quot;, &amp;quot;daemon off;&amp;quot;]&lt;/code>)&lt;/li>
&lt;/ul></description></item><item><title>Docker Cheatsheet</title><link>https://blogs.timerring.com/posts/docker-cheatsheet/</link><pubDate>Fri, 17 Jan 2025 10:06:35 +0800</pubDate><guid>https://blogs.timerring.com/posts/docker-cheatsheet/</guid><description>&lt;p>This is a cheatsheet of docker.&lt;/p>
&lt;p>Note: the docs will be updated from time to time.&lt;/p></description></item><item><title>Docker 101</title><link>https://blogs.timerring.com/posts/docker-101/</link><pubDate>Thu, 16 Jan 2025 22:33:49 +0800</pubDate><guid>https://blogs.timerring.com/posts/docker-101/</guid><description>&lt;p>Docker is a practical tool for everyday use, and like &lt;code>Git&lt;/code>, you can learn it in just 30 minutes.&lt;/p></description></item><item><title>The Instance Class Static Magic Method in Python</title><link>https://blogs.timerring.com/posts/the-instance-class-static-magic-method-in-python/</link><pubDate>Tue, 14 Jan 2025 21:51:24 +0800</pubDate><guid>https://blogs.timerring.com/posts/the-instance-class-static-magic-method-in-python/</guid><description>&lt;p>So what is the difference between the Instance method, the Class method and the Static method?&lt;/p></description></item><item><title>The Review and Plan for Bilive</title><link>https://blogs.timerring.com/posts/the-review-and-plan-for-bilive/</link><pubDate>Fri, 10 Jan 2025 19:24:37 +0800</pubDate><guid>https://blogs.timerring.com/posts/the-review-and-plan-for-bilive/</guid><description>&lt;p>从 12 月 10 号正式上线生产版本的 &lt;code>bilive&lt;/code> 到现在，已经过去了一个月了。目前 &lt;code>bilive&lt;/code> 的 star 数已经突破了 300，实际用户数应该在 20 ～ 30 之间。当然 star 的数据本身没有什么意义，我真正追求的是使用者，但是 star 数据能够反映出项目实际浏览量，与其他工具类项目相比，我对于 &lt;code>bilive&lt;/code> 的定位更像是一个产品，如何让这个产品积累足够多的用户和反馈，是我目前主要面临的问题。&lt;/p></description></item><item><title>The Overview of Security</title><link>https://blogs.timerring.com/posts/the-overview-of-security/</link><pubDate>Wed, 08 Jan 2025 20:42:43 +0800</pubDate><guid>https://blogs.timerring.com/posts/the-overview-of-security/</guid><description>&lt;p>In today&amp;rsquo;s digital age, security is paramount. As we increasingly rely on technology for communication, commerce, and data storage, understanding the fundamentals of security becomes essential. This article provides an overview of key security concepts, including encryption, digest algorithms, and digital signatures. By exploring these topics, we aim to equip you with the knowledge to protect your digital assets and ensure the integrity and confidentiality of your information. Whether you&amp;rsquo;re a tech enthusiast or a professional in the field, this guide will offer valuable insights into the mechanisms that safeguard our digital world.&lt;/p></description></item><item><title>How to Publish Your Code as a Pip Module</title><link>https://blogs.timerring.com/posts/how-to-publish-your-code-as-a-pip-module/</link><pubDate>Tue, 07 Jan 2025 20:46:08 +0800</pubDate><guid>https://blogs.timerring.com/posts/how-to-publish-your-code-as-a-pip-module/</guid><description>&lt;p>Last week, I have made a python cli tool. To make it more convenient to use, I want to publish it as a pip module, so I have made some research and mistakes, and finally succeeded.&lt;/p></description></item><item><title>Git Cheatsheet</title><link>https://blogs.timerring.com/posts/git-cheatsheet/</link><pubDate>Tue, 07 Jan 2025 20:39:35 +0800</pubDate><guid>https://blogs.timerring.com/posts/git-cheatsheet/</guid><description>&lt;p>This is a Git cheatsheet that distills my years of experience.&lt;/p>
&lt;ul>
&lt;li>Workspace: The directory of the repository. The working directory is independent of each branch.&lt;/li>
&lt;li>Staging Area (Index): A temporary area for data, similar to a cache before writing from the working directory to the repository. The staging area is independent of each branch.&lt;/li>
&lt;li>Repository: Stores all code versions that have been committed to the local repository.&lt;/li>
&lt;li>Version Structure: A tree structure where each node represents a code version.&lt;/li>
&lt;/ul></description></item><item><title>Some Good Things to Share About the Packages</title><link>https://blogs.timerring.com/posts/some-good-things-to-share-about-the-packages/</link><pubDate>Mon, 06 Jan 2025 19:59:20 +0800</pubDate><guid>https://blogs.timerring.com/posts/some-good-things-to-share-about-the-packages/</guid><description>&lt;p>As a developer, I have been using many packages in my projects. Sometimes I may even forget the existence of the packages. When I changed my devices or some one else asked me, it&amp;rsquo;s hard for me to remember everything to recommend. Thus I will try to list the things which I think are very helpful and useful to share with you. Maybe we can even make an &amp;ldquo;Annual Oscar Awards ceremony&amp;rdquo; for the things.&lt;/p>
&lt;p>Note: This post will be updated regularly.&lt;/p></description></item><item><title>Introduction to the HTTP and HTTPS Protocol</title><link>https://blogs.timerring.com/posts/introduction-to-the-http-and-https-protocol/</link><pubDate>Sat, 04 Jan 2025 15:15:31 +0800</pubDate><guid>https://blogs.timerring.com/posts/introduction-to-the-http-and-https-protocol/</guid><description>&lt;p>HTTP protocol is the foundation of the Internet, and HTTPS is the secure version of HTTP. HTTP is an application layer protocol based on TCP/IP protocol. It does not involve packet (packet) transmission, mainly specifying the communication format between the client and the server, and the default port is 80.&lt;/p></description></item><item><title>Mail Service and Protocol</title><link>https://blogs.timerring.com/posts/mail-service-and-protocol/</link><pubDate>Sat, 04 Jan 2025 10:53:02 +0800</pubDate><guid>https://blogs.timerring.com/posts/mail-service-and-protocol/</guid><description>&lt;p>Recently, I have been working on DNS of my domain name. And then I need to set up the mail service of my domain name. When I tried many times, I always failed to receive the mail on my phone. Suddenly, I remembered that I didn&amp;rsquo;t set up IMAP service. So let&amp;rsquo;s review the mail service and protocol.&lt;/p></description></item><item><title>How to Add Commits to Someone Else's Pull Request</title><link>https://blogs.timerring.com/posts/how-to-add-commits-to-someone-elses-pull-request/</link><pubDate>Fri, 03 Jan 2025 17:06:19 +0800</pubDate><guid>https://blogs.timerring.com/posts/how-to-add-commits-to-someone-elses-pull-request/</guid><description>&lt;p>Most of time, we need to reply the commiter to adjust some code, sometimes it&amp;rsquo;s not efficient. Instead, we can directly add the commit to the PR.&lt;/p></description></item><item><title>How to Merge Multiple Commit to the One</title><link>https://blogs.timerring.com/posts/how-to-merge-multiple-commit-to-the-one/</link><pubDate>Fri, 03 Jan 2025 17:05:15 +0800</pubDate><guid>https://blogs.timerring.com/posts/how-to-merge-multiple-commit-to-the-one/</guid><description>&lt;p>Sometimes we make too many small commits during development, and it&amp;rsquo;s better to squash them into one clean commit before pushing. Here&amp;rsquo;s how to use &lt;code>git rebase -i&lt;/code> to merge multiple commits.&lt;/p></description></item><item><title>Understanding Clash Through Configuration</title><link>https://blogs.timerring.com/posts/understanding-clash-through-configuration/</link><pubDate>Thu, 02 Jan 2025 15:11:55 +0800</pubDate><guid>https://blogs.timerring.com/posts/understanding-clash-through-configuration/</guid><description>&lt;p>We can learn the proxy process of clash through the configuration file.&lt;/p></description></item><item><title>Thinking About Advertisement from an Open Source Perspective</title><link>https://blogs.timerring.com/posts/thinking-about-advertisement-from-an-open-source-perspective/</link><pubDate>Fri, 27 Dec 2024 15:17:09 +0800</pubDate><guid>https://blogs.timerring.com/posts/thinking-about-advertisement-from-an-open-source-perspective/</guid><description>&lt;p>我在本科期间听到过很多关于广告论调，仍记得某位教授对于短视频所代表的互联网深恶痛绝，在课堂上批判广告的价值，抨击广告行业的浮躁。我身边的同学也大抵持相同的观点，认为互联网广告就是智商税，广告的目的是为了卖课，卖课的目的是为了收割。可事实真的如此吗？&lt;/p></description></item><item><title>A Brief Introduction to DNS</title><link>https://blogs.timerring.com/posts/a-brief-introduction-to-dns/</link><pubDate>Thu, 26 Dec 2024 21:10:14 +0800</pubDate><guid>https://blogs.timerring.com/posts/a-brief-introduction-to-dns/</guid><description>&lt;p>In my mind, DNS is the key of the internet. I always believe if you control the DNS, you control the Internet world. So let us get started to know the DNS.&lt;/p></description></item><item><title>Real Computer Network</title><link>https://blogs.timerring.com/posts/real-computer-network/</link><pubDate>Mon, 23 Dec 2024 20:06:18 +0800</pubDate><guid>https://blogs.timerring.com/posts/real-computer-network/</guid><description>&lt;p>For the computer network, I believe that most people have learned it in the course of university or college. No matter whether you are familiar with it or not, this article will give you a different perspective of the network. It can really help you a lot.&lt;/p></description></item><item><title>Python Generator Iterator and Decorator</title><link>https://blogs.timerring.com/posts/python-generator-iterator-and-decorator/</link><pubDate>Mon, 23 Dec 2024 19:19:14 +0800</pubDate><guid>https://blogs.timerring.com/posts/python-generator-iterator-and-decorator/</guid><description>&lt;p>This article will review the basic knowledge of Python, including generator, iterator, and decorator.&lt;/p></description></item><item><title>Python Underlying Mechanism</title><link>https://blogs.timerring.com/posts/python-underlying-mechanism/</link><pubDate>Mon, 23 Dec 2024 19:12:31 +0800</pubDate><guid>https://blogs.timerring.com/posts/python-underlying-mechanism/</guid><description>&lt;p>This article will review the underlying mechanism of Python, including data types and derivation operations.&lt;/p></description></item><item><title>Python Files Exceptions and Modules</title><link>https://blogs.timerring.com/posts/python-files-exceptions-and-modules/</link><pubDate>Mon, 23 Dec 2024 19:02:35 +0800</pubDate><guid>https://blogs.timerring.com/posts/python-files-exceptions-and-modules/</guid><description>&lt;p>This article will review the basic knowledge of Python, including files, exceptions, and modules.&lt;/p></description></item><item><title>Python Object Oriented Programming</title><link>https://blogs.timerring.com/posts/python-object-oriented-programming/</link><pubDate>Mon, 23 Dec 2024 18:23:06 +0800</pubDate><guid>https://blogs.timerring.com/posts/python-object-oriented-programming/</guid><description>&lt;p>This article will review the object-oriented programming of Python. Mainly about the class, inheritance, and polymorphism.&lt;/p></description></item><item><title>Python Cheatsheet</title><link>https://blogs.timerring.com/posts/python-cheatsheet/</link><pubDate>Sun, 22 Dec 2024 00:09:26 +0800</pubDate><guid>https://blogs.timerring.com/posts/python-cheatsheet/</guid><description/></item><item><title>Python Function Parameter</title><link>https://blogs.timerring.com/posts/python-function-parameter/</link><pubDate>Sat, 21 Dec 2024 22:09:09 +0800</pubDate><guid>https://blogs.timerring.com/posts/python-function-parameter/</guid><description>&lt;p>This blog will review the function parameter of Python. Mainly about the parameter passing, Keyword and Position Parameter, Anonymous Function, and unit test with &lt;code>assert&lt;/code>.&lt;/p></description></item><item><title>Python Control Structure</title><link>https://blogs.timerring.com/posts/python-control-structure/</link><pubDate>Sat, 21 Dec 2024 20:26:15 +0800</pubDate><guid>https://blogs.timerring.com/posts/python-control-structure/</guid><description>&lt;p>This blog will review the control structure of Python.&lt;/p></description></item><item><title>Python Composite Data Type</title><link>https://blogs.timerring.com/posts/python-composite-data-type/</link><pubDate>Sat, 21 Dec 2024 19:38:25 +0800</pubDate><guid>https://blogs.timerring.com/posts/python-composite-data-type/</guid><description>&lt;p>This article will review the composite data type in Python, such as &lt;code>list&lt;/code>, &lt;code>tuple&lt;/code>, &lt;code>dictionary&lt;/code>, and &lt;code>set&lt;/code>.&lt;/p></description></item><item><title>Python Basic Data Type</title><link>https://blogs.timerring.com/posts/python-basic-data-type/</link><pubDate>Sat, 21 Dec 2024 16:51:57 +0800</pubDate><guid>https://blogs.timerring.com/posts/python-basic-data-type/</guid><description>&lt;p>This article will explore data types and common methods for them in Python.
The content of this review is as follows: &lt;code>number type&lt;/code>, &lt;code>string type&lt;/code>, &lt;code>boolean type&lt;/code> and &lt;code>type conversion&lt;/code>.&lt;/p></description></item><item><title>Python Basic Syntax Elements</title><link>https://blogs.timerring.com/posts/python-basic-syntax-elements/</link><pubDate>Fri, 20 Dec 2024 23:19:25 +0800</pubDate><guid>https://blogs.timerring.com/posts/python-basic-syntax-elements/</guid><description>&lt;p>Sometimes you may forget about the basic of Python, so let us take a look at the summary of Python basic summary. The content of this review is as follows: &lt;code>data type&lt;/code>, &lt;code>variable&lt;/code>, &lt;code>control flow&lt;/code>, &lt;code>input &amp;amp; output&lt;/code>, &lt;code>PEP8 format&lt;/code>.&lt;/p></description></item><item><title>Deploy Github Pages With GPG Signing</title><link>https://blogs.timerring.com/posts/deploy-github-pages-with-gpg-signing/</link><pubDate>Wed, 18 Dec 2024 23:25:21 +0800</pubDate><guid>https://blogs.timerring.com/posts/deploy-github-pages-with-gpg-signing/</guid><description>&lt;p>I have been busy migrating my blog this week. Coincidentally, I learned that there may be cases of commit forgery on GitHub. Therefore, for security reasons, I added a GPG signature. However, when deploying Hugo, I encountered many problems regarding whether GPG signatures can also be used. Fortunately, I finally solved them.&lt;/p></description></item><item><title>GPG 101</title><link>https://blogs.timerring.com/posts/gpg-101/</link><pubDate>Tue, 17 Dec 2024 20:26:57 +0800</pubDate><guid>https://blogs.timerring.com/posts/gpg-101/</guid><description>&lt;blockquote>
&lt;p>GnuPG is a complete and free implementation of the OpenPGP standard as defined by RFC4880(also known as PGP). GnuPG allows you to encrypt and sign your data and communications; it features a versatile key management system, along with access modules for all kinds of public key directories. GnuPG, also known as GPG, is a command line tool with features for easy integration with other applications.&lt;/p>
&lt;/blockquote>
&lt;p>This article I will introduce the basic usage of GPG.&lt;/p></description></item><item><title>Housewarming 2024</title><link>https://blogs.timerring.com/posts/housewarming-2024/</link><pubDate>Sat, 14 Dec 2024 14:53:36 +0800</pubDate><guid>https://blogs.timerring.com/posts/housewarming-2024/</guid><description>&lt;p>So after a long time, I decide to restart my blog program. In my daily development, I have a lot of thoughts and ideas, thus I will write some documents to record them. But I believe that sharing is the best way to learn. A specific example is &lt;code>cryptography&lt;/code>, which means the closing source algorithm is never the safest. Only algorithms that have been vetted by the public are truly secure.&lt;/p></description></item><item><title>My Must Haves for Macos Memo</title><link>https://blogs.timerring.com/posts/my-must-haves-for-macos-memo/</link><pubDate>Sat, 22 Jun 2024 15:53:14 +0800</pubDate><guid>https://blogs.timerring.com/posts/my-must-haves-for-macos-memo/</guid><description>&lt;p>This article will share my must-haves for Macos in order to make my Macos more efficient and comfortable.&lt;/p></description></item><item><title>About</title><link>https://blogs.timerring.com/about/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://blogs.timerring.com/about/</guid><description>&lt;h2 id="about">
 About
 &lt;a class="anchor" href="#about">#&lt;/a>
&lt;/h2>
&lt;ul>
&lt;li>John Howe&lt;/li>
&lt;li>GPG Public: 
 &lt;a href="https://blogs.timerring.com/gpg-pubkey.asc.html">0x26FEE0805E6C9F71&lt;/a>&lt;/li>
&lt;li>Key fingerprint = &lt;code>B613 FBAF 0822 BEBD FABF 8F65 26FE E080 5E6C 9F71&lt;/code>&lt;/li>
&lt;/ul>
&lt;p>If you want to know what this blog is about, here are some representative posts:&lt;/p>
&lt;ul>
&lt;li>&lt;code>Network&lt;/code> 
 &lt;a href="https://blogs.timerring.com/posts/real-computer-network">Real Computer Network&lt;/a> | 
 &lt;a href="https://blogs.timerring.com/posts/a-brief-introduction-to-dns">A Brief Introduction to DNS&lt;/a> ｜ 
 &lt;a href="https://blogs.timerring.com/posts/introduction-to-the-http-and-https-protocol">Introduction to the HTTP and HTTPS Protocol&lt;/a>&lt;/li>
&lt;li>&lt;code>Develop&lt;/code> 
 &lt;a href="https://blogs.timerring.com/posts/cpu-can-only-see-the-threads">CPU can only see the threads&lt;/a> | 
 &lt;a href="https://blogs.timerring.com/tags/python">Python series&lt;/a>&lt;/li>
&lt;li>&lt;code>Audio and Video&lt;/code> 
 &lt;a href="https://blogs.timerring.com/posts/video-technology-101">Video Technology 101&lt;/a> | 
 &lt;a href="https://blogs.timerring.com/posts/implement-danmaku-rendering-algorithm-from-scratch">Implement danmaku rendering algorithm from scratch&lt;/a>&lt;/li>
&lt;li>&lt;code>Security&lt;/code> 
 &lt;a href="https://blogs.timerring.com/posts/the-overview-of-security">The Overview of Security&lt;/a> | 
 &lt;a href="https://blogs.timerring.com/posts/gpg-101">GPG 101&lt;/a>&lt;/li>
&lt;li>&lt;code>Container&lt;/code> 
 &lt;a href="https://blogs.timerring.com/posts/docker-101">Docker 101&lt;/a> | 
 &lt;a href="https://blogs.timerring.com/posts/docker-cheatsheet">Docker Cheatsheet&lt;/a>&lt;/li>
&lt;/ul>
&lt;h2 id="coffee-chat">
 Coffee chat
 &lt;a class="anchor" href="#coffee-chat">#&lt;/a>
&lt;/h2>
&lt;p>


 
 


&lt;a href="https://ko-fi.com/polls/What-is-the-custom-topic-for-the-next-month-C0C219LHQJ" target="_blank" rel="noopener" class="book-btn">
 blog topic and coffee chat
&lt;/a>




 
 


&lt;a href="https://ko-fi.com/timerring" target="_blank" rel="noopener" class="book-btn">
 buy me a coffee
&lt;/a>
&lt;/p></description></item><item><title>Friends</title><link>https://blogs.timerring.com/friends/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://blogs.timerring.com/friends/</guid><description>&lt;h1 id="followed-blogs">
 Followed blogs
 &lt;a class="anchor" href="#followed-blogs">#&lt;/a>
&lt;/h1>
&lt;p>


 
 


&lt;a href="https://research.google/blog/?utm_source=blog.timerring.com" target="_blank" rel="noopener" class="book-btn">
 Google Research
&lt;/a>




 
 


&lt;a href="https://blog.cloudflare.com/?utm_source=blog.timerring.com" target="_blank" rel="noopener" class="book-btn">
 Cloudflare
&lt;/a>




 
 


&lt;a href="https://openai.com/news/?utm_source=blog.timerring.com" target="_blank" rel="noopener" class="book-btn">
 OpenAI
&lt;/a>




 
 


&lt;a href="https://developers.openai.com/blog/?utm_source=blog.timerring.com" target="_blank" rel="noopener" class="book-btn">
 OpenAI Developers
&lt;/a>




 
 


&lt;a href="https://www.claude.com/blog/?utm_source=blog.timerring.com" target="_blank" rel="noopener" class="book-btn">
 Claude
&lt;/a>




 
 


&lt;a href="https://cursor.com/blog/?utm_source=blog.timerring.com" target="_blank" rel="noopener" class="book-btn">
 Cursor
&lt;/a>




 
 


&lt;a href="https://windsurf.com/blog/?utm_source=blog.timerring.com" target="_blank" rel="noopener" class="book-btn">
 Windsurf
&lt;/a>




 
 


&lt;a href="https://www.perplexity.ai/hub/?utm_source=blog.timerring.com" target="_blank" rel="noopener" class="book-btn">
 Perplexity
&lt;/a>




 
 


&lt;a href="https://sourcegraph.com/blog/?utm_source=blog.timerring.com" target="_blank" rel="noopener" class="book-btn">
 Sourcegraph
&lt;/a>




 
 


&lt;a href="https://www.cerebras.ai/blog/?utm_source=blog.timerring.com" target="_blank" rel="noopener" class="book-btn">
 Cerebras
&lt;/a>




 
 


&lt;a href="https://www.mixedbread.com/blog/?utm_source=blog.timerring.com" target="_blank" rel="noopener" class="book-btn">
 Mixedbread
&lt;/a>




 
 


&lt;a href="https://www.morphllm.com/blog/?utm_source=blog.timerring.com" target="_blank" rel="noopener" class="book-btn">
 Morphllm
&lt;/a>




 
 


&lt;a href="https://www.tavily.com/blog/?utm_source=blog.timerring.com" target="_blank" rel="noopener" class="book-btn">
 tavily
&lt;/a>
&lt;/p>
&lt;h1 id="friends-links">
 Friends links
 &lt;a class="anchor" href="#friends-links">#&lt;/a>
&lt;/h1>
&lt;p>


 
 


&lt;a href="https://www.nodeseek.com/?utm_source=blog.timerring.com" target="_blank" rel="noopener" class="book-btn">
 Nodeseek
&lt;/a>




 
 


&lt;a href="https://blog.skk.moe/?utm_source=blog.timerring.com" target="_blank" rel="noopener" class="book-btn">
 Sukka
&lt;/a>




 
 


&lt;a href="https://selfboot.cn/?utm_source=blog.timerring.com" target="_blank" rel="noopener" class="book-btn">
 Selfboot
&lt;/a>




 
 


&lt;a href="https://zu1k.com/?utm_source=blog.timerring.com" target="_blank" rel="noopener" class="book-btn">
 zu1k
&lt;/a>




 
 


&lt;a href="https://spencerwoo.com/?utm_source=blog.timerring.com" target="_blank" rel="noopener" class="book-btn">
 Spencer Woo
&lt;/a>




 
 


&lt;a href="https://zhile.io/?utm_source=blog.timerring.com" target="_blank" rel="noopener" class="book-btn">
 zhile.io
&lt;/a>




 
 


&lt;a href="https://www.52txr.cn/?utm_source=blog.timerring.com" target="_blank" rel="noopener" class="book-btn">
 52txr
&lt;/a>




 
 


&lt;a href="https://colah.github.io/?utm_source=blog.timerring.com" target="_blank" rel="noopener" class="book-btn">
 Colah
&lt;/a>




 
 


&lt;a href="https://01.me/?utm_source=blog.timerring.com" target="_blank" rel="noopener" class="book-btn">
 Bojie Li
&lt;/a>




 
 


&lt;a href="https://bimu.live/?utm_source=blog.timerring.com" target="_blank" rel="noopener" class="book-btn">
 Bimu
&lt;/a>




 
 


&lt;a href="https://xiaozhou.net/?utm_source=blog.timerring.com" target="_blank" rel="noopener" class="book-btn">
 Timothy
&lt;/a>




 
 


&lt;a href="https://immmmm.com/?utm_source=blog.timerring.com" target="_blank" rel="noopener" class="book-btn">
 immmmm
&lt;/a>




 
 


&lt;a href="https://harrychen.xyz/?utm_source=blog.timerring.com" target="_blank" rel="noopener" class="book-btn">
 Harry Chen
&lt;/a>




 
 


&lt;a href="https://qcrao.com/?utm_source=blog.timerring.com" target="_blank" rel="noopener" class="book-btn">
 Qcrao
&lt;/a>




 
 


&lt;a href="https://liam.page/?utm_source=blog.timerring.com" target="_blank" rel="noopener" class="book-btn">
 Liam
&lt;/a>




 
 


&lt;a href="https://blog.ishell.online/?utm_source=blog.timerring.com" target="_blank" rel="noopener" class="book-btn">
 ishell
&lt;/a>




 
 


&lt;a href="https://dewx.top/?utm_source=blog.timerring.com" target="_blank" rel="noopener" class="book-btn">
 dewx
&lt;/a>




 
 


&lt;a href="https://wiki.eryajf.net/?utm_source=blog.timerring.com" target="_blank" rel="noopener" class="book-btn">
 Eryajf
&lt;/a>




 
 


&lt;a href="https://darmau.co/zh/?utm_source=blog.timerring.com" target="_blank" rel="noopener" class="book-btn">
 Darmau
&lt;/a>




 
 


&lt;a href="https://gaoweix.com/?utm_source=blog.timerring.com" target="_blank" rel="noopener" class="book-btn">
 gaoweix
&lt;/a>




 
 


&lt;a href="https://limbopro.com/?utm_source=blog.timerring.com" target="_blank" rel="noopener" class="book-btn">
 limbopro
&lt;/a>




 
 


&lt;a href="https://yu-changqian.github.io/?utm_source=blog.timerring.com" target="_blank" rel="noopener" class="book-btn">
 Changqian Yu
&lt;/a>




 
 


&lt;a href="https://ice1000.org/?utm_source=blog.timerring.com" target="_blank" rel="noopener" class="book-btn">
 ice1000
&lt;/a>




 
 


&lt;a href="https://lsvih.com/?utm_source=blog.timerring.com" target="_blank" rel="noopener" class="book-btn">
 lsvih
&lt;/a>




 
 


&lt;a href="https://blog.zhheo.com/?utm_source=blog.timerring.com" target="_blank" rel="noopener" class="book-btn">
 zhheo
&lt;/a>




 
 


&lt;a href="https://www.jiejoe.com/home/?utm_source=blog.timerring.com" target="_blank" rel="noopener" class="book-btn">
 jiejoe
&lt;/a>




 
 


&lt;a href="https://shuyuej.com/?utm_source=blog.timerring.com" target="_blank" rel="noopener" class="book-btn">
 shuyuej
&lt;/a>




 
 


&lt;a href="https://www.likun.tech/Bio/?utm_source=blog.timerring.com" target="_blank" rel="noopener" class="book-btn">
 likun
&lt;/a>




 
 


&lt;a href="https://only.rs/?utm_source=blog.timerring.com" target="_blank" rel="noopener" class="book-btn">
 only.rs
&lt;/a>




 
 


&lt;a href="https://aigonna.com/?utm_source=blog.timerring.com" target="_blank" rel="noopener" class="book-btn">
 aigonna
&lt;/a>




 
 


&lt;a href="https://bulianglin.com/?utm_source=blog.timerring.com" target="_blank" rel="noopener" class="book-btn">
 bulianglin
&lt;/a>




 
 


&lt;a href="https://greatdk.com/?utm_source=blog.timerring.com" target="_blank" rel="noopener" class="book-btn">
 greatdk
&lt;/a>




 
 


&lt;a href="https://idoubi.cc/?utm_source=blog.timerring.com" target="_blank" rel="noopener" class="book-btn">
 idoubi
&lt;/a>




 
 


&lt;a href="https://spaces.ac.cn/?utm_source=blog.timerring.com" target="_blank" rel="noopener" class="book-btn">
 Jianlin Su
&lt;/a>




 
 


&lt;a href="https://blog.axiaoxin.com/?utm_source=blog.timerring.com" target="_blank" rel="noopener" class="book-btn">
 axiaoxin
&lt;/a>




 
 


&lt;a href="https://www.owenyoung.com/?utm_source=blog.timerring.com" target="_blank" rel="noopener" class="book-btn">
 theowenyoung
&lt;/a>




 
 


&lt;a href="https://kyth.hedwig.pub/?utm_source=blog.timerring.com" target="_blank" rel="noopener" class="book-btn">
 kyth
&lt;/a>




 
 


&lt;a href="https://zyzhang.com/?utm_source=blog.timerring.com" target="_blank" rel="noopener" class="book-btn">
 zyzhang
&lt;/a>




 
 


&lt;a href="https://lifelonglearn.ing/?utm_source=blog.timerring.com" target="_blank" rel="noopener" class="book-btn">
 naiba
&lt;/a>




 
 


&lt;a href="https://www.lixueduan.com/?utm_source=blog.timerring.com" target="_blank" rel="noopener" class="book-btn">
 lixueduan
&lt;/a>




 
 


&lt;a href="https://www.gatesnotes.com/?utm_source=blog.timerring.com" target="_blank" rel="noopener" class="book-btn">
 gatesnotes
&lt;/a>




 
 


&lt;a href="https://blog.ezyang.com/?utm_source=blog.timerring.com" target="_blank" rel="noopener" class="book-btn">
 ezyang
&lt;/a>




 
 


&lt;a href="https://blog.yuanji.dev/?utm_source=blog.timerring.com" target="_blank" rel="noopener" class="book-btn">
 yuanji
&lt;/a>




 
 


&lt;a href="https://taoshu.in/?utm_source=blog.timerring.com" target="_blank" rel="noopener" class="book-btn">
 taoshu
&lt;/a>




 
 


&lt;a href="https://blog.tangwudi.com/cloudflaremap/?utm_source=blog.timerring.com" target="_blank" rel="noopener" class="book-btn">
 tangwudi
&lt;/a>




 
 


&lt;a href="https://www.tisonkun.org/?utm_source=blog.timerring.com" target="_blank" rel="noopener" class="book-btn">
 tisonkun
&lt;/a>




 
 


&lt;a href="https://vitalik.eth/?utm_source=blog.timerring.com" target="_blank" rel="noopener" class="book-btn">
 vitalik
&lt;/a>




 
 


&lt;a href="https://blog.cmliussss.com/?utm_source=blog.timerring.com" target="_blank" rel="noopener" class="book-btn">
 cmliussss
&lt;/a>




 
 


&lt;a href="https://substack.com/@rasbt/?utm_source=blog.timerring.com" target="_blank" rel="noopener" class="book-btn">
 Sebastian Raschka
&lt;/a>




 
 


&lt;a href="https://aresluna.org/?utm_source=blog.timerring.com" target="_blank" rel="noopener" class="book-btn">
 Marcin Wichary
&lt;/a>
&lt;/p></description></item></channel></rss>