<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Posts on 锦李本鲤</title><link>https://blog.jinli.io/post/</link><description>Recent content in Posts on 锦李本鲤</description><generator>Hugo -- gohugo.io</generator><language>zh-CN</language><copyright>© 2026 锦李本鲤</copyright><lastBuildDate>Sat, 15 Aug 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://blog.jinli.io/post/index.xml" rel="self" type="application/rss+xml"/><item><title>从 Powerlevel10k 迁移到 Oh My Posh</title><link>https://blog.jinli.io/p/%E4%BB%8E-powerlevel10k-%E8%BF%81%E7%A7%BB%E5%88%B0-oh-my-posh/</link><pubDate>Wed, 05 Aug 2026 00:00:00 +0000</pubDate><guid>https://blog.jinli.io/p/%E4%BB%8E-powerlevel10k-%E8%BF%81%E7%A7%BB%E5%88%B0-oh-my-posh/</guid><description>&lt;!-- more --&gt;

&lt;h2 class="relative group"&gt;为什么迁移？
 &lt;div id="为什么迁移" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e4%b8%ba%e4%bb%80%e4%b9%88%e8%bf%81%e7%a7%bb" aria-label="锚点"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;之前我的 Shell 配置使用 &lt;a href="https://ohmyz.sh/" target="_blank" rel="noreferrer"&gt;Oh My Zsh&lt;/a&gt; 和
&lt;a href="https://github.com/romkatv/powerlevel10k" target="_blank" rel="noreferrer"&gt;Powerlevel10k&lt;/a&gt;。它精致而且速度
很快，但提示符绑定在 Zsh 上。我希望在 macOS、Linux、HPC 集群和 Windows
PowerShell 中使用同一套视觉风格，因此将提示符迁移到了
&lt;a href="https://ohmyposh.dev/" target="_blank" rel="noreferrer"&gt;Oh My Posh&lt;/a&gt;。&lt;/p&gt;</description></item><item><title>使用Traefik和Let's Encrypt实现自动TLS证书</title><link>https://blog.jinli.io/p/%E4%BD%BF%E7%94%A8traefik%E5%92%8Clets-encrypt%E5%AE%9E%E7%8E%B0%E8%87%AA%E5%8A%A8tls%E8%AF%81%E4%B9%A6/</link><pubDate>Sun, 05 Jul 2026 00:00:00 +0000</pubDate><guid>https://blog.jinli.io/p/%E4%BD%BF%E7%94%A8traefik%E5%92%8Clets-encrypt%E5%AE%9E%E7%8E%B0%E8%87%AA%E5%8A%A8tls%E8%AF%81%E4%B9%A6/</guid><description>&lt;!-- more --&gt;

&lt;h2 class="relative group"&gt;背景
 &lt;div id="背景" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e8%83%8c%e6%99%af" aria-label="锚点"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;我之前一直使用Cloudflare Tunnel免费版来反向代理Nextcloud容器。虽然Cloudflare Tunnel使用方便，但免费版有 &lt;strong&gt;100MB上传限制&lt;/strong&gt;，这成为我使用Nextcloud时的主要障碍。&lt;/p&gt;</description></item><item><title>为代理部署本地大语言模型：完整指南</title><link>https://blog.jinli.io/p/%E4%B8%BA%E4%BB%A3%E7%90%86%E9%83%A8%E7%BD%B2%E6%9C%AC%E5%9C%B0%E5%A4%A7%E8%AF%AD%E8%A8%80%E6%A8%A1%E5%9E%8B%E5%AE%8C%E6%95%B4%E6%8C%87%E5%8D%97/</link><pubDate>Tue, 02 Jun 2026 00:00:00 +0000</pubDate><guid>https://blog.jinli.io/p/%E4%B8%BA%E4%BB%A3%E7%90%86%E9%83%A8%E7%BD%B2%E6%9C%AC%E5%9C%B0%E5%A4%A7%E8%AF%AD%E8%A8%80%E6%A8%A1%E5%9E%8B%E5%AE%8C%E6%95%B4%E6%8C%87%E5%8D%97/</guid><description>&lt;!-- more --&gt;

&lt;h2 class="relative group"&gt;引言
 &lt;div id="引言" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e5%bc%95%e8%a8%80" aria-label="锚点"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;随着量化技术和硬件能力的进步，在本地运行大语言模型（LLM）变得越来越实用。对于像&lt;strong&gt;OpenClaw&lt;/strong&gt;和&lt;strong&gt;Hermes&lt;/strong&gt;这样的代理框架，拥有一个具有大上下文窗口（10万+令牌）的本地LLM对于维护对话历史和执行复杂的多步骤任务至关重要。&lt;/p&gt;</description></item><item><title>OpenClaw AI助手设置总结</title><link>https://blog.jinli.io/p/openclaw-ai%E5%8A%A9%E6%89%8B%E8%AE%BE%E7%BD%AE%E6%80%BB%E7%BB%93/</link><pubDate>Tue, 12 May 2026 00:00:00 +0000</pubDate><guid>https://blog.jinli.io/p/openclaw-ai%E5%8A%A9%E6%89%8B%E8%AE%BE%E7%BD%AE%E6%80%BB%E7%BB%93/</guid><description>&lt;!-- more --&gt;

&lt;h2 class="relative group"&gt;缘起
 &lt;div id="缘起" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e7%bc%98%e8%b5%b7" aria-label="锚点"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;在配置了自己的AI助手OpenClaw后，记录一下整个设置过程，包括配置在线模型、本地模型、测试模型性能、添加技能等。&lt;/p&gt;</description></item><item><title>容器（8）：使用Portainer Agent监控远程电脑上的Docker容器</title><link>https://blog.jinli.io/p/%E5%AE%B9%E5%99%A88%E4%BD%BF%E7%94%A8portainer-agent%E7%9B%91%E6%8E%A7%E8%BF%9C%E7%A8%8B%E7%94%B5%E8%84%91%E4%B8%8A%E7%9A%84docker%E5%AE%B9%E5%99%A8/</link><pubDate>Tue, 17 Mar 2026 00:00:00 +0000</pubDate><guid>https://blog.jinli.io/p/%E5%AE%B9%E5%99%A88%E4%BD%BF%E7%94%A8portainer-agent%E7%9B%91%E6%8E%A7%E8%BF%9C%E7%A8%8B%E7%94%B5%E8%84%91%E4%B8%8A%E7%9A%84docker%E5%AE%B9%E5%99%A8/</guid><description>&lt;!-- more --&gt;

&lt;h2 class="relative group"&gt;缘起
 &lt;div id="缘起" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e7%bc%98%e8%b5%b7" aria-label="锚点"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;我们之前介绍了使用Portainer来监控和管理电脑上运行的容器，Portainer提供了可视化的界面，可以方便地查看容器日志、重启容器、管理镜像文件等。在配置了反向代理后，我们可以方便地使用域名来远程访问，例如&lt;code&gt;https://portainer.example.com&lt;/code&gt;。&lt;/p&gt;</description></item><item><title>本地运行大语言模型（二）：vLLM和Ollama的比较及部署Open WebUI前端</title><link>https://blog.jinli.io/p/%E6%9C%AC%E5%9C%B0%E8%BF%90%E8%A1%8C%E5%A4%A7%E8%AF%AD%E8%A8%80%E6%A8%A1%E5%9E%8B%E4%BA%8Cvllm%E5%92%8Collama%E7%9A%84%E6%AF%94%E8%BE%83%E5%8F%8A%E9%83%A8%E7%BD%B2open-webui%E5%89%8D%E7%AB%AF/</link><pubDate>Fri, 13 Mar 2026 00:00:00 +0000</pubDate><guid>https://blog.jinli.io/p/%E6%9C%AC%E5%9C%B0%E8%BF%90%E8%A1%8C%E5%A4%A7%E8%AF%AD%E8%A8%80%E6%A8%A1%E5%9E%8B%E4%BA%8Cvllm%E5%92%8Collama%E7%9A%84%E6%AF%94%E8%BE%83%E5%8F%8A%E9%83%A8%E7%BD%B2open-webui%E5%89%8D%E7%AB%AF/</guid><description>&lt;!-- more --&gt;

&lt;h2 class="relative group"&gt;缘起
 &lt;div id="缘起" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e7%bc%98%e8%b5%b7" aria-label="锚点"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;之前我们讨论过自建大语言模型服务，当时使用的是Ollama作为后端服务，使用Lobechat作为前端，通过API调用后端的Ollama来实现对话。&lt;/p&gt;</description></item><item><title>容器（7）：自建容器镜像仓库</title><link>https://blog.jinli.io/p/%E5%AE%B9%E5%99%A87%E8%87%AA%E5%BB%BA%E5%AE%B9%E5%99%A8%E9%95%9C%E5%83%8F%E4%BB%93%E5%BA%93/</link><pubDate>Wed, 11 Feb 2026 00:00:00 +0000</pubDate><guid>https://blog.jinli.io/p/%E5%AE%B9%E5%99%A87%E8%87%AA%E5%BB%BA%E5%AE%B9%E5%99%A8%E9%95%9C%E5%83%8F%E4%BB%93%E5%BA%93/</guid><description>&lt;!-- more --&gt;

&lt;h2 class="relative group"&gt;缘起
 &lt;div id="缘起" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e7%bc%98%e8%b5%b7" aria-label="锚点"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;由于国内的网络环境问题，我们无法直接从dockerhub拉取容器镜像。为了能在国内的电脑上方便地部署一些容器服务，我决定在一台位于国外的服务器上自建一个容器镜像仓库（即Registry）。&lt;/p&gt;</description></item><item><title>个人网站的建立过程（五）：内容管理系统（CMS）的选择与配置（Hugo框架）</title><link>https://blog.jinli.io/p/%E4%B8%AA%E4%BA%BA%E7%BD%91%E7%AB%99%E7%9A%84%E5%BB%BA%E7%AB%8B%E8%BF%87%E7%A8%8B%E4%BA%94%E5%86%85%E5%AE%B9%E7%AE%A1%E7%90%86%E7%B3%BB%E7%BB%9Fcms%E7%9A%84%E9%80%89%E6%8B%A9%E4%B8%8E%E9%85%8D%E7%BD%AEhugo%E6%A1%86%E6%9E%B6/</link><pubDate>Mon, 09 Feb 2026 00:00:00 +0000</pubDate><guid>https://blog.jinli.io/p/%E4%B8%AA%E4%BA%BA%E7%BD%91%E7%AB%99%E7%9A%84%E5%BB%BA%E7%AB%8B%E8%BF%87%E7%A8%8B%E4%BA%94%E5%86%85%E5%AE%B9%E7%AE%A1%E7%90%86%E7%B3%BB%E7%BB%9Fcms%E7%9A%84%E9%80%89%E6%8B%A9%E4%B8%8E%E9%85%8D%E7%BD%AEhugo%E6%A1%86%E6%9E%B6/</guid><description>&lt;!-- more --&gt;

&lt;h2 class="relative group"&gt;缘起
 &lt;div id="缘起" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e7%bc%98%e8%b5%b7" aria-label="锚点"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;这个网站已经上线五年了，一直使用Hugo框架。Hugo框架非常好用，但经过几年的使用，我还是感受到了一些不便之处。&lt;/p&gt;</description></item><item><title>Linux状态监控软件Conky的使用</title><link>https://blog.jinli.io/p/linux%E7%8A%B6%E6%80%81%E7%9B%91%E6%8E%A7%E8%BD%AF%E4%BB%B6conky%E7%9A%84%E4%BD%BF%E7%94%A8/</link><pubDate>Fri, 14 Nov 2025 00:00:00 +0000</pubDate><guid>https://blog.jinli.io/p/linux%E7%8A%B6%E6%80%81%E7%9B%91%E6%8E%A7%E8%BD%AF%E4%BB%B6conky%E7%9A%84%E4%BD%BF%E7%94%A8/</guid><description>&lt;!-- more --&gt;

&lt;h2 class="relative group"&gt;缘起
 &lt;div id="缘起" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e7%bc%98%e8%b5%b7" aria-label="锚点"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;在使用Linux系统时，很多时候需要实时监测系统的状态，例如在打游戏时监测CPU和GPU的使用率、温度等信息，在训练机器学习模型时监测显存使用情况，在下载大文件时监测网络速度等。虽然已经有System Monitor等图形化工具，以及&lt;code&gt;htop&lt;/code&gt;、&lt;code&gt;nvidia-smi&lt;/code&gt;等命令行工具可以用来监测系统状态，但这些工具大多需要手动打开，并不能实时显示在桌面上，有时不太方便。&lt;/p&gt;</description></item><item><title>全平台免费剪切板共享软件ClipCascade的安装与使用</title><link>https://blog.jinli.io/p/%E5%85%A8%E5%B9%B3%E5%8F%B0%E5%85%8D%E8%B4%B9%E5%89%AA%E5%88%87%E6%9D%BF%E5%85%B1%E4%BA%AB%E8%BD%AF%E4%BB%B6clipcascade%E7%9A%84%E5%AE%89%E8%A3%85%E4%B8%8E%E4%BD%BF%E7%94%A8/</link><pubDate>Tue, 07 Oct 2025 00:00:00 +0000</pubDate><guid>https://blog.jinli.io/p/%E5%85%A8%E5%B9%B3%E5%8F%B0%E5%85%8D%E8%B4%B9%E5%89%AA%E5%88%87%E6%9D%BF%E5%85%B1%E4%BA%AB%E8%BD%AF%E4%BB%B6clipcascade%E7%9A%84%E5%AE%89%E8%A3%85%E4%B8%8E%E4%BD%BF%E7%94%A8/</guid><description>&lt;!-- more --&gt;

&lt;h2 class="relative group"&gt;缘起
 &lt;div id="缘起" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e7%bc%98%e8%b5%b7" aria-label="锚点"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;我在之前的文章中介绍过多电脑键鼠共享软件Barrier/InputLeap/Deskflow，可以在Windows、macOS和Linux系统间共享键盘和鼠标，极大地方便了多电脑办公的体验。这些软件也支持跨系统共享剪切板内容，但我在使用中发现，共享剪切板的功能在Wayland环境下并不可用。不幸的是，我的主力电脑使用的Fedora 42系统，默认使用的图形界面正是Wayland，因此我无法在这台电脑上使用Barrier/InputLeap/Deskflow的剪切板共享功能。&lt;/p&gt;</description></item><item><title>Nvidia显卡（四）：容器化配置Nvidia显卡的CUDA编程和深度学习环境</title><link>https://blog.jinli.io/p/nvidia%E6%98%BE%E5%8D%A1%E5%9B%9B%E5%AE%B9%E5%99%A8%E5%8C%96%E9%85%8D%E7%BD%AEnvidia%E6%98%BE%E5%8D%A1%E7%9A%84cuda%E7%BC%96%E7%A8%8B%E5%92%8C%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0%E7%8E%AF%E5%A2%83/</link><pubDate>Wed, 20 Aug 2025 00:00:00 +0000</pubDate><guid>https://blog.jinli.io/p/nvidia%E6%98%BE%E5%8D%A1%E5%9B%9B%E5%AE%B9%E5%99%A8%E5%8C%96%E9%85%8D%E7%BD%AEnvidia%E6%98%BE%E5%8D%A1%E7%9A%84cuda%E7%BC%96%E7%A8%8B%E5%92%8C%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0%E7%8E%AF%E5%A2%83/</guid><description>&lt;!-- more --&gt;

&lt;h2 class="relative group"&gt;缘起
 &lt;div id="缘起" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e7%bc%98%e8%b5%b7" aria-label="锚点"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;这是“Nvidia显卡”系列文章的第四篇，本系列文章主要记录如何使用Nvidia显卡，尤其是在Linux系统上使用Nvidia显卡。在之前的文章中，我记录了在Ubuntu系统上使用Nvidia显卡的相关设置，包括游戏、CUDA编程、深度学习、Docker容器等。后来我转向了Fedora系统，本以为在Fedora系统上配置Nvidia显卡的CUDA编程和深度学习环境会和在Ubuntu系统上类似，而且由于有RPM Fusion的支持，安装和配置会更加方便。然而实际上却遇到了意想不到的困难，因此不得不再开一篇文章来记录这些问题和解决方案。&lt;/p&gt;</description></item><item><title>Linux系统中文输入法：中州韻Rime和薄荷输入法（oh-my-rime）</title><link>https://blog.jinli.io/p/linux%E7%B3%BB%E7%BB%9F%E4%B8%AD%E6%96%87%E8%BE%93%E5%85%A5%E6%B3%95%E4%B8%AD%E5%B7%9E%E9%9F%BBrime%E5%92%8C%E8%96%84%E8%8D%B7%E8%BE%93%E5%85%A5%E6%B3%95oh-my-rime/</link><pubDate>Tue, 19 Aug 2025 00:00:00 +0000</pubDate><guid>https://blog.jinli.io/p/linux%E7%B3%BB%E7%BB%9F%E4%B8%AD%E6%96%87%E8%BE%93%E5%85%A5%E6%B3%95%E4%B8%AD%E5%B7%9E%E9%9F%BBrime%E5%92%8C%E8%96%84%E8%8D%B7%E8%BE%93%E5%85%A5%E6%B3%95oh-my-rime/</guid><description>&lt;!-- more --&gt;

&lt;h2 class="relative group"&gt;缘起
 &lt;div id="缘起" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e7%bc%98%e8%b5%b7" aria-label="锚点"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;Linux的桌面端近年来发展非常迅速，目前在易用性上Linux的桌面端已经做得非常不错了。然而由于其生态繁杂，各种工具和配置项五花八门，对于中文的支持一直都比较差。使用中文的新用户光折腾输入法可能都摸不着头脑，我曾经也在配置中文输入法、中文字体上花了不少精力、浪费了不少时间。而且就在最近，我又遇到了一些问题，决定把这些经验整理一下，帮助更多的用户顺利使用Linux系统中的中文环境。&lt;/p&gt;</description></item><item><title>启动引导（二）：双硬盘下Windows/Linux双系统启动项配置踩坑</title><link>https://blog.jinli.io/p/%E5%90%AF%E5%8A%A8%E5%BC%95%E5%AF%BC%E4%BA%8C%E5%8F%8C%E7%A1%AC%E7%9B%98%E4%B8%8Bwindows/linux%E5%8F%8C%E7%B3%BB%E7%BB%9F%E5%90%AF%E5%8A%A8%E9%A1%B9%E9%85%8D%E7%BD%AE%E8%B8%A9%E5%9D%91/</link><pubDate>Sat, 16 Aug 2025 00:00:00 +0000</pubDate><guid>https://blog.jinli.io/p/%E5%90%AF%E5%8A%A8%E5%BC%95%E5%AF%BC%E4%BA%8C%E5%8F%8C%E7%A1%AC%E7%9B%98%E4%B8%8Bwindows/linux%E5%8F%8C%E7%B3%BB%E7%BB%9F%E5%90%AF%E5%8A%A8%E9%A1%B9%E9%85%8D%E7%BD%AE%E8%B8%A9%E5%9D%91/</guid><description>&lt;!-- more --&gt;

&lt;h2 class="relative group"&gt;缘起
 &lt;div id="缘起" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e7%bc%98%e8%b5%b7" aria-label="锚点"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;这是”启动引导“系列文章的第二篇。我也是万万没想到这么个简单的话题还能整成一个系列，因为我在写第一篇文章的时候就觉得已经把启动引导的相关概念已经讲得很明白了，而且成功搞了很多次多系统的启动引导配置。但是最近在搞双硬盘分别安装Windows和Linux双系统时踩了一个巨大的坑，所以感觉有必要再写一篇文章来记录一下。&lt;/p&gt;</description></item><item><title>Nvidia显卡（三）：Fedora下的游戏、CUDA、深度学习、Docker等</title><link>https://blog.jinli.io/p/nvidia%E6%98%BE%E5%8D%A1%E4%B8%89fedora%E4%B8%8B%E7%9A%84%E6%B8%B8%E6%88%8Fcuda%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0docker%E7%AD%89/</link><pubDate>Fri, 15 Aug 2025 00:00:00 +0000</pubDate><guid>https://blog.jinli.io/p/nvidia%E6%98%BE%E5%8D%A1%E4%B8%89fedora%E4%B8%8B%E7%9A%84%E6%B8%B8%E6%88%8Fcuda%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0docker%E7%AD%89/</guid><description>&lt;!-- more --&gt;

&lt;h2 class="relative group"&gt;缘起
 &lt;div id="缘起" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e7%bc%98%e8%b5%b7" aria-label="锚点"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;这是“Nvidia显卡”系列文章的第三篇，本系列文章主要记录如何使用Nvidia显卡，尤其是在Linux系统上使用Nvidia显卡。在之前的文章中，我记录了在Ubuntu系统上使用Nvidia显卡的相关设置，包括游戏、CUDA编程、深度学习、Docker容器等。现在我已经从Ubuntu迁移到了Fedora系统，而在Fedora上使用Nvidia显卡的设置与Ubuntu有所不同，所以在这里记录一下。&lt;/p&gt;</description></item><item><title>SSH相关: ssh到Windows、ssh配置、免密码登录、VSCode远程开发等</title><link>https://blog.jinli.io/p/ssh%E7%9B%B8%E5%85%B3-ssh%E5%88%B0windowsssh%E9%85%8D%E7%BD%AE%E5%85%8D%E5%AF%86%E7%A0%81%E7%99%BB%E5%BD%95vscode%E8%BF%9C%E7%A8%8B%E5%BC%80%E5%8F%91%E7%AD%89/</link><pubDate>Mon, 11 Aug 2025 00:00:00 +0000</pubDate><guid>https://blog.jinli.io/p/ssh%E7%9B%B8%E5%85%B3-ssh%E5%88%B0windowsssh%E9%85%8D%E7%BD%AE%E5%85%8D%E5%AF%86%E7%A0%81%E7%99%BB%E5%BD%95vscode%E8%BF%9C%E7%A8%8B%E5%BC%80%E5%8F%91%E7%AD%89/</guid><description>&lt;!-- more --&gt;

&lt;h2 class="relative group"&gt;缘起
 &lt;div id="缘起" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e7%bc%98%e8%b5%b7" aria-label="锚点"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;SSH（Secure Shell）是非常常用的远程登录协议，我本身使用得已经非常多了，设置并不难，而且很多都是一劳永逸。但大部分设置基本都是每次换电脑或重装系统时才会搞，使用频率非常低，所以每次都要重新查找相关资料。&lt;/p&gt;</description></item><item><title>虚拟私有网络（三）：使用Headscale和Tailscale搭建VPN</title><link>https://blog.jinli.io/p/%E8%99%9A%E6%8B%9F%E7%A7%81%E6%9C%89%E7%BD%91%E7%BB%9C%E4%B8%89%E4%BD%BF%E7%94%A8headscale%E5%92%8Ctailscale%E6%90%AD%E5%BB%BAvpn/</link><pubDate>Thu, 07 Aug 2025 00:00:00 +0000</pubDate><guid>https://blog.jinli.io/p/%E8%99%9A%E6%8B%9F%E7%A7%81%E6%9C%89%E7%BD%91%E7%BB%9C%E4%B8%89%E4%BD%BF%E7%94%A8headscale%E5%92%8Ctailscale%E6%90%AD%E5%BB%BAvpn/</guid><description>&lt;!-- more --&gt;

&lt;h2 class="relative group"&gt;缘起
 &lt;div id="缘起" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e7%bc%98%e8%b5%b7" aria-label="锚点"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;本文是《虚拟私有网络VPN》系列的第3篇。在前两篇文章中，我介绍了VPN的基础概念和使用场景，以及如何使用Tailscale来搭建一个私有虚拟网络。本系列的其他文章参见：&lt;/p&gt;</description></item><item><title>Obsidian（二）：网页版Obsidian的部署与使用</title><link>https://blog.jinli.io/p/obsidian%E4%BA%8C%E7%BD%91%E9%A1%B5%E7%89%88obsidian%E7%9A%84%E9%83%A8%E7%BD%B2%E4%B8%8E%E4%BD%BF%E7%94%A8/</link><pubDate>Mon, 21 Jul 2025 00:00:00 +0000</pubDate><guid>https://blog.jinli.io/p/obsidian%E4%BA%8C%E7%BD%91%E9%A1%B5%E7%89%88obsidian%E7%9A%84%E9%83%A8%E7%BD%B2%E4%B8%8E%E4%BD%BF%E7%94%A8/</guid><description>&lt;!-- more --&gt;

&lt;h2 class="relative group"&gt;缘起
 &lt;div id="缘起" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e7%bc%98%e8%b5%b7" aria-label="锚点"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;在上一篇文章中，我介绍了如何使用Obsidian和Nextcloud来管理笔记。上一篇文章的标题中使用了“全平台”这个词，是说Obsidian支持Windows、Linux、Mac、Android等多个平台。一般来说，这已经够用了，但是在某些场景下却依然不太方便。&lt;/p&gt;</description></item><item><title>从公网访问个人网站（三）——使用Cloudflare Tunnel反向代理Docker容器</title><link>https://blog.jinli.io/p/%E4%BB%8E%E5%85%AC%E7%BD%91%E8%AE%BF%E9%97%AE%E4%B8%AA%E4%BA%BA%E7%BD%91%E7%AB%99%E4%B8%89%E4%BD%BF%E7%94%A8cloudflare-tunnel%E5%8F%8D%E5%90%91%E4%BB%A3%E7%90%86docker%E5%AE%B9%E5%99%A8/</link><pubDate>Mon, 02 Jun 2025 00:00:00 +0000</pubDate><guid>https://blog.jinli.io/p/%E4%BB%8E%E5%85%AC%E7%BD%91%E8%AE%BF%E9%97%AE%E4%B8%AA%E4%BA%BA%E7%BD%91%E7%AB%99%E4%B8%89%E4%BD%BF%E7%94%A8cloudflare-tunnel%E5%8F%8D%E5%90%91%E4%BB%A3%E7%90%86docker%E5%AE%B9%E5%99%A8/</guid><description>&lt;!-- more --&gt;

&lt;h2 class="relative group"&gt;缘起
 &lt;div id="缘起" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e7%bc%98%e8%b5%b7" aria-label="锚点"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;为了能够从公网访问我在自己服务器上搭建的网站和部署的服务，我之前的做法是：&lt;/p&gt;</description></item><item><title>Homelab（1）：使用Kubernetes（K8s）或K3s自建家庭集群</title><link>https://blog.jinli.io/p/homelab1%E4%BD%BF%E7%94%A8kubernetesk8s%E6%88%96k3s%E8%87%AA%E5%BB%BA%E5%AE%B6%E5%BA%AD%E9%9B%86%E7%BE%A4/</link><pubDate>Sun, 01 Jun 2025 00:00:00 +0000</pubDate><guid>https://blog.jinli.io/p/homelab1%E4%BD%BF%E7%94%A8kubernetesk8s%E6%88%96k3s%E8%87%AA%E5%BB%BA%E5%AE%B6%E5%BA%AD%E9%9B%86%E7%BE%A4/</guid><description>&lt;!-- more --&gt;

&lt;h2 class="relative group"&gt;缘起
 &lt;div id="缘起" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e7%bc%98%e8%b5%b7" aria-label="锚点"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;在开始自建家庭服务器和用容器技术来部署各种私有服务约5年后，我已经熟悉了一套用docker compose管理所有容器的方案，这套方案很优雅也很有用，但这仅限单台电脑。最近我突然有了管理使用多台电脑的需求，我终于开始觉得有必要从单个服务器转向服务器集群，或者说Homelab了。&lt;/p&gt;</description></item><item><title>从公网访问个人网站（二）——Traefik反向代理配置</title><link>https://blog.jinli.io/p/%E4%BB%8E%E5%85%AC%E7%BD%91%E8%AE%BF%E9%97%AE%E4%B8%AA%E4%BA%BA%E7%BD%91%E7%AB%99%E4%BA%8Ctraefik%E5%8F%8D%E5%90%91%E4%BB%A3%E7%90%86%E9%85%8D%E7%BD%AE/</link><pubDate>Sat, 31 May 2025 00:00:00 +0000</pubDate><guid>https://blog.jinli.io/p/%E4%BB%8E%E5%85%AC%E7%BD%91%E8%AE%BF%E9%97%AE%E4%B8%AA%E4%BA%BA%E7%BD%91%E7%AB%99%E4%BA%8Ctraefik%E5%8F%8D%E5%90%91%E4%BB%A3%E7%90%86%E9%85%8D%E7%BD%AE/</guid><description>&lt;!-- more --&gt;

&lt;h2 class="relative group"&gt;缘起
 &lt;div id="缘起" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e7%bc%98%e8%b5%b7" aria-label="锚点"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;之前我一直使用Nginx作为反向代理来访问我的私人服务器上的网站。当时Nginx是直接安装在电脑上的，没有容器化，这导致我之后想把这些服务迁移到其他电脑上时还得重新配置Nginx、重新配置SSL证书等。&lt;/p&gt;</description></item><item><title>容器（6）：使用Docker时的一些误区、坏习惯和问题</title><link>https://blog.jinli.io/p/%E5%AE%B9%E5%99%A86%E4%BD%BF%E7%94%A8docker%E6%97%B6%E7%9A%84%E4%B8%80%E4%BA%9B%E8%AF%AF%E5%8C%BA%E5%9D%8F%E4%B9%A0%E6%83%AF%E5%92%8C%E9%97%AE%E9%A2%98/</link><pubDate>Wed, 21 May 2025 00:00:00 +0000</pubDate><guid>https://blog.jinli.io/p/%E5%AE%B9%E5%99%A86%E4%BD%BF%E7%94%A8docker%E6%97%B6%E7%9A%84%E4%B8%80%E4%BA%9B%E8%AF%AF%E5%8C%BA%E5%9D%8F%E4%B9%A0%E6%83%AF%E5%92%8C%E9%97%AE%E9%A2%98/</guid><description>&lt;!-- more --&gt;

&lt;h2 class="relative group"&gt;缘起
 &lt;div id="缘起" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e7%bc%98%e8%b5%b7" aria-label="锚点"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;这是关于docker容器的第六篇文章，这个系列的其他文章链接如下：&lt;/p&gt;</description></item><item><title>身份验证：使用Authelia搭建私有的身份验证服务</title><link>https://blog.jinli.io/p/%E8%BA%AB%E4%BB%BD%E9%AA%8C%E8%AF%81%E4%BD%BF%E7%94%A8authelia%E6%90%AD%E5%BB%BA%E7%A7%81%E6%9C%89%E7%9A%84%E8%BA%AB%E4%BB%BD%E9%AA%8C%E8%AF%81%E6%9C%8D%E5%8A%A1/</link><pubDate>Sat, 17 May 2025 00:00:00 +0000</pubDate><guid>https://blog.jinli.io/p/%E8%BA%AB%E4%BB%BD%E9%AA%8C%E8%AF%81%E4%BD%BF%E7%94%A8authelia%E6%90%AD%E5%BB%BA%E7%A7%81%E6%9C%89%E7%9A%84%E8%BA%AB%E4%BB%BD%E9%AA%8C%E8%AF%81%E6%9C%8D%E5%8A%A1/</guid><description>&lt;!-- more --&gt;

&lt;h2 class="relative group"&gt;缘起
 &lt;div id="缘起" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e7%bc%98%e8%b5%b7" aria-label="锚点"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;之前一直觉得没必要自己搞一个身份验证服务，毕竟在自己部署的服务中，直接创建用户和密码就行了。但是最近准备搭建一个HeadScale（Tailscale的自托管版本）服务器，有几种方式搭建HeadScale的UI界面，但它们似乎都不支持直接创建用户和密码。&lt;/p&gt;</description></item><item><title>私有虚拟网络VPN（二）：基础概念和使用Tailscale搭建指南</title><link>https://blog.jinli.io/p/%E7%A7%81%E6%9C%89%E8%99%9A%E6%8B%9F%E7%BD%91%E7%BB%9Cvpn%E4%BA%8C%E5%9F%BA%E7%A1%80%E6%A6%82%E5%BF%B5%E5%92%8C%E4%BD%BF%E7%94%A8tailscale%E6%90%AD%E5%BB%BA%E6%8C%87%E5%8D%97/</link><pubDate>Sun, 04 May 2025 00:00:00 +0000</pubDate><guid>https://blog.jinli.io/p/%E7%A7%81%E6%9C%89%E8%99%9A%E6%8B%9F%E7%BD%91%E7%BB%9Cvpn%E4%BA%8C%E5%9F%BA%E7%A1%80%E6%A6%82%E5%BF%B5%E5%92%8C%E4%BD%BF%E7%94%A8tailscale%E6%90%AD%E5%BB%BA%E6%8C%87%E5%8D%97/</guid><description>&lt;!-- more --&gt;

&lt;h2 class="relative group"&gt;缘起
 &lt;div id="缘起" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e7%bc%98%e8%b5%b7" aria-label="锚点"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;本文是《私有虚拟网络VPN》系列的第2篇。在第1篇文章中，我基于自己需要在国外访问国内资源的需求，介绍了如何在云服务器上搭建Shadowsocks服务，实现科学上网。本文将介绍VPN的基础概念，并重点介绍如何使用Tailscale来搭建一个私有虚拟网络。本系列的其他文章参见：&lt;/p&gt;</description></item><item><title>Obsidian（一）：全平台笔记管理软件</title><link>https://blog.jinli.io/p/obsidian%E4%B8%80%E5%85%A8%E5%B9%B3%E5%8F%B0%E7%AC%94%E8%AE%B0%E7%AE%A1%E7%90%86%E8%BD%AF%E4%BB%B6/</link><pubDate>Thu, 01 May 2025 00:00:00 +0000</pubDate><guid>https://blog.jinli.io/p/obsidian%E4%B8%80%E5%85%A8%E5%B9%B3%E5%8F%B0%E7%AC%94%E8%AE%B0%E7%AE%A1%E7%90%86%E8%BD%AF%E4%BB%B6/</guid><description>&lt;!-- more --&gt;

&lt;h2 class="relative group"&gt;缘起
 &lt;div id="缘起" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e7%bc%98%e8%b5%b7" aria-label="锚点"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;之前一直使用微软的OneNote来管理笔记，OneNote功能强大，可以跟踪笔记的修改历史，可以使用OneDrive来同步笔记。但是OneNote的缺点也不少，最令我无法忍受的就是其默认字体是Calibri，而且无法修改（或者说即使修改了也永远不会生效），我真的不明白，为什么用户修改个默认字体这么简单的事，这么多年来一直就无法解决。我每次都得不厌其烦地把字体改成Times New Roman。&lt;/p&gt;</description></item><item><title>容器（5）：docker最佳实践指南——容器更新监测工具WUD（What's Up Docker）</title><link>https://blog.jinli.io/p/%E5%AE%B9%E5%99%A85docker%E6%9C%80%E4%BD%B3%E5%AE%9E%E8%B7%B5%E6%8C%87%E5%8D%97%E5%AE%B9%E5%99%A8%E6%9B%B4%E6%96%B0%E7%9B%91%E6%B5%8B%E5%B7%A5%E5%85%B7wudwhats-up-docker/</link><pubDate>Sat, 26 Apr 2025 00:00:00 +0000</pubDate><guid>https://blog.jinli.io/p/%E5%AE%B9%E5%99%A85docker%E6%9C%80%E4%BD%B3%E5%AE%9E%E8%B7%B5%E6%8C%87%E5%8D%97%E5%AE%B9%E5%99%A8%E6%9B%B4%E6%96%B0%E7%9B%91%E6%B5%8B%E5%B7%A5%E5%85%B7wudwhats-up-docker/</guid><description>&lt;!-- more --&gt;

&lt;h2 class="relative group"&gt;缘起
 &lt;div id="缘起" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e7%bc%98%e8%b5%b7" aria-label="锚点"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;这是介绍docker容器的第五篇文章。本系列其他文章链接如下：&lt;/p&gt;</description></item><item><title>容器（4）：docker最佳实践指南——容器更新、升级和迁移</title><link>https://blog.jinli.io/p/%E5%AE%B9%E5%99%A84docker%E6%9C%80%E4%BD%B3%E5%AE%9E%E8%B7%B5%E6%8C%87%E5%8D%97%E5%AE%B9%E5%99%A8%E6%9B%B4%E6%96%B0%E5%8D%87%E7%BA%A7%E5%92%8C%E8%BF%81%E7%A7%BB/</link><pubDate>Thu, 24 Apr 2025 00:00:00 +0000</pubDate><guid>https://blog.jinli.io/p/%E5%AE%B9%E5%99%A84docker%E6%9C%80%E4%BD%B3%E5%AE%9E%E8%B7%B5%E6%8C%87%E5%8D%97%E5%AE%B9%E5%99%A8%E6%9B%B4%E6%96%B0%E5%8D%87%E7%BA%A7%E5%92%8C%E8%BF%81%E7%A7%BB/</guid><description>&lt;!-- more --&gt;

&lt;h2 class="relative group"&gt;缘起
 &lt;div id="缘起" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e7%bc%98%e8%b5%b7" aria-label="锚点"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;这是介绍docker容器的第四篇文章。本系列其他文章链接如下：&lt;/p&gt;</description></item><item><title>容器（3）：docker最佳实践指南——数据卷volume的管理</title><link>https://blog.jinli.io/p/%E5%AE%B9%E5%99%A83docker%E6%9C%80%E4%BD%B3%E5%AE%9E%E8%B7%B5%E6%8C%87%E5%8D%97%E6%95%B0%E6%8D%AE%E5%8D%B7volume%E7%9A%84%E7%AE%A1%E7%90%86/</link><pubDate>Wed, 23 Apr 2025 00:00:00 +0000</pubDate><guid>https://blog.jinli.io/p/%E5%AE%B9%E5%99%A83docker%E6%9C%80%E4%BD%B3%E5%AE%9E%E8%B7%B5%E6%8C%87%E5%8D%97%E6%95%B0%E6%8D%AE%E5%8D%B7volume%E7%9A%84%E7%AE%A1%E7%90%86/</guid><description>&lt;!-- more --&gt;

&lt;h2 class="relative group"&gt;缘起
 &lt;div id="缘起" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e7%bc%98%e8%b5%b7" aria-label="锚点"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;这是介绍docker容器的第三篇文章。本系列文章链接如下：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://blog.jinli.io/p/%E5%AE%B9%E5%99%A81%E5%AE%B9%E5%99%A8%E7%9B%B8%E5%85%B3%E7%9F%A5%E8%AF%86%E7%AE%80%E4%BB%8B%E5%AE%B9%E5%99%A8%E5%8C%96dockerdocker-composekubernetes-/-k8s%E7%AD%89/" &gt;容器（1）：容器相关知识简介——容器化、docker、docker-compose、Kubernetes / K8s等&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://blog.jinli.io/p/%E5%AE%B9%E5%99%A82docker%E6%9C%80%E4%BD%B3%E5%AE%9E%E8%B7%B5%E6%8C%87%E5%8D%97docker-compose%E5%92%8Cportainer/" &gt;容器（2）：docker最佳实践指南——docker-compose和Portainer&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://blog.jinli.io/p/%E5%AE%B9%E5%99%A84docker%E6%9C%80%E4%BD%B3%E5%AE%9E%E8%B7%B5%E6%8C%87%E5%8D%97%E5%AE%B9%E5%99%A8%E6%9B%B4%E6%96%B0%E5%8D%87%E7%BA%A7%E5%92%8C%E8%BF%81%E7%A7%BB/" &gt;容器（4）：docker最佳实践指南——容器更新、升级和迁移&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://blog.jinli.io/p/%E5%AE%B9%E5%99%A85docker%E6%9C%80%E4%BD%B3%E5%AE%9E%E8%B7%B5%E6%8C%87%E5%8D%97%E5%AE%B9%E5%99%A8%E6%9B%B4%E6%96%B0%E7%9B%91%E6%B5%8B%E5%B7%A5%E5%85%B7wudwhats-up-docker/" &gt;容器（5）：docker最佳实践指南——容器更新监测工具WUD（What&amp;rsquo;s Up Docker）&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://blog.jinli.io/p/%E5%AE%B9%E5%99%A86%E4%BD%BF%E7%94%A8docker%E6%97%B6%E7%9A%84%E4%B8%80%E4%BA%9B%E8%AF%AF%E5%8C%BA%E5%9D%8F%E4%B9%A0%E6%83%AF%E5%92%8C%E9%97%AE%E9%A2%98/" &gt;容器（6）：使用Docker时的一些误区、坏习惯和问题&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;前两篇文章分别介绍了容器的基本概念和使用方法，以及使用容器的最佳实践方式。&lt;/p&gt;</description></item><item><title>动态域名解析--Cloudflare</title><link>https://blog.jinli.io/p/%E5%8A%A8%E6%80%81%E5%9F%9F%E5%90%8D%E8%A7%A3%E6%9E%90--cloudflare/</link><pubDate>Thu, 10 Apr 2025 00:00:00 +0000</pubDate><guid>https://blog.jinli.io/p/%E5%8A%A8%E6%80%81%E5%9F%9F%E5%90%8D%E8%A7%A3%E6%9E%90--cloudflare/</guid><description>&lt;p&gt;之前就写过关于动态域名解析的文章，使用的是阿里云的API。最近将域名转移到了Cloudflare上，顺便记录一下如何使用Cloudflare的API进行动态域名解析。&lt;/p&gt;</description></item><item><title>远程桌面（二）：VNC配置</title><link>https://blog.jinli.io/p/%E8%BF%9C%E7%A8%8B%E6%A1%8C%E9%9D%A2%E4%BA%8Cvnc%E9%85%8D%E7%BD%AE/</link><pubDate>Tue, 08 Apr 2025 00:00:00 +0000</pubDate><guid>https://blog.jinli.io/p/%E8%BF%9C%E7%A8%8B%E6%A1%8C%E9%9D%A2%E4%BA%8Cvnc%E9%85%8D%E7%BD%AE/</guid><description>&lt;!-- more --&gt;

&lt;h2 class="relative group"&gt;缘起
 &lt;div id="缘起" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e7%bc%98%e8%b5%b7" aria-label="锚点"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;之前一直在用AnyDesk作为远程桌面软件，但最近学校的IT部门说AnyDesk有安全隐患，不能再使用了。在Linux上允许使用的远程桌面软件只有VNC和XRDP。VNC和RDP都是远程桌面协议，但VNC是一个开源的协议，而RDP是微软的专有协议。VNC的优点是跨平台，支持Linux、Windows、macOS等操作系统；虽然RDP是微软的专有协议，但Linux上也有开源的实现，比如XRDP。&lt;/p&gt;</description></item><item><title>Nvidia显卡（二）：视频剪辑转码工具FFmpeg使用GPU加速</title><link>https://blog.jinli.io/p/nvidia%E6%98%BE%E5%8D%A1%E4%BA%8C%E8%A7%86%E9%A2%91%E5%89%AA%E8%BE%91%E8%BD%AC%E7%A0%81%E5%B7%A5%E5%85%B7ffmpeg%E4%BD%BF%E7%94%A8gpu%E5%8A%A0%E9%80%9F/</link><pubDate>Tue, 26 Nov 2024 00:00:00 +0000</pubDate><guid>https://blog.jinli.io/p/nvidia%E6%98%BE%E5%8D%A1%E4%BA%8C%E8%A7%86%E9%A2%91%E5%89%AA%E8%BE%91%E8%BD%AC%E7%A0%81%E5%B7%A5%E5%85%B7ffmpeg%E4%BD%BF%E7%94%A8gpu%E5%8A%A0%E9%80%9F/</guid><description>&lt;!-- more --&gt;

&lt;h2 class="relative group"&gt;缘起
 &lt;div id="缘起" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e7%bc%98%e8%b5%b7" aria-label="锚点"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;FFmpeg是一个非常强大的音视频处理工具，可以用来剪辑、转码、合并、分离、提取视频音频等等。FFmpeg是一个自由开源软件，最初由法国程序员法布里斯·贝拉（Fabrice Bellard）发起，现在由米夏埃尔·尼德迈尔（Michael Niedermayer）维护。目前市面上的很多播放器、视频剪辑软件、转码软件，比如 Blender，Kodi， Plex， Shotcut， VLC media playe， YouTube等，都是基于FFmpeg的。当然，也有很多软件使用了FFmpeg的代码，但并未遵守FFmpeg的开源协议，被钉在了&lt;a href="https://scilxurkel001.github.io/archive/ffmpeg-shame/" target="_blank" rel="noreferrer"&gt;“FFmpeg耻辱柱”&lt;/a&gt;上。&lt;/p&gt;</description></item><item><title>实例学PyTorch（7）：语言模型（二）——使用Transformer实现词级语言模型</title><link>https://blog.jinli.io/p/%E5%AE%9E%E4%BE%8B%E5%AD%A6pytorch7%E8%AF%AD%E8%A8%80%E6%A8%A1%E5%9E%8B%E4%BA%8C%E4%BD%BF%E7%94%A8transformer%E5%AE%9E%E7%8E%B0%E8%AF%8D%E7%BA%A7%E8%AF%AD%E8%A8%80%E6%A8%A1%E5%9E%8B/</link><pubDate>Mon, 23 Sep 2024 00:00:00 +0000</pubDate><guid>https://blog.jinli.io/p/%E5%AE%9E%E4%BE%8B%E5%AD%A6pytorch7%E8%AF%AD%E8%A8%80%E6%A8%A1%E5%9E%8B%E4%BA%8C%E4%BD%BF%E7%94%A8transformer%E5%AE%9E%E7%8E%B0%E8%AF%8D%E7%BA%A7%E8%AF%AD%E8%A8%80%E6%A8%A1%E5%9E%8B/</guid><description>&lt;!-- more --&gt;

&lt;h2 class="relative group"&gt;背景
 &lt;div id="背景" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e8%83%8c%e6%99%af" aria-label="锚点"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;这是&lt;a href="https://jinli.io/categories/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0/" target="_blank" rel="noreferrer"&gt;“实例学PyTorch”&lt;/a&gt;系列的第7篇文章。在第6篇文章&lt;a href="https://blog.jinli.io/p/%E5%AE%9E%E4%BE%8B%E5%AD%A6pytorch6%E8%AF%AD%E8%A8%80%E6%A8%A1%E5%9E%8B%E4%B8%80%E4%BD%BF%E7%94%A8lstm%E5%AE%9E%E7%8E%B0%E8%AF%8D%E7%BA%A7%E8%AF%AD%E8%A8%80%E6%A8%A1%E5%9E%8B/" &gt;“实例学PyTorch（6）：语言模型（一）——使用LSTM实现词级语言模型”&lt;/a&gt;中，我们简单介绍了使用LSTM实现一个词级语言模型。&lt;/p&gt;</description></item><item><title>Linux系统上多用户共享Steam游戏（以Ubuntu为例）</title><link>https://blog.jinli.io/p/linux%E7%B3%BB%E7%BB%9F%E4%B8%8A%E5%A4%9A%E7%94%A8%E6%88%B7%E5%85%B1%E4%BA%ABsteam%E6%B8%B8%E6%88%8F%E4%BB%A5ubuntu%E4%B8%BA%E4%BE%8B/</link><pubDate>Thu, 19 Sep 2024 00:00:00 +0000</pubDate><guid>https://blog.jinli.io/p/linux%E7%B3%BB%E7%BB%9F%E4%B8%8A%E5%A4%9A%E7%94%A8%E6%88%B7%E5%85%B1%E4%BA%ABsteam%E6%B8%B8%E6%88%8F%E4%BB%A5ubuntu%E4%B8%BA%E4%BE%8B/</guid><description>&lt;!-- more --&gt;

&lt;h2 class="relative group"&gt;缘起
 &lt;div id="缘起" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e7%bc%98%e8%b5%b7" aria-label="锚点"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;之前给我的Ubuntu电脑安装了Steam游戏平台和Proton兼容层，可以通过这个兼容层在Linux系统上运行Windows游戏。但我没怎么玩过游戏，所以一直没有仔细研究，只知道Proton兼容层还挺强大的，大部分游戏运行起来都没有问题，即使是游戏的“系统要求”中只显示支持Windows系统。&lt;/p&gt;</description></item><item><title>实例学PyTorch（6）：语言模型（一）——使用LSTM实现词级语言模型</title><link>https://blog.jinli.io/p/%E5%AE%9E%E4%BE%8B%E5%AD%A6pytorch6%E8%AF%AD%E8%A8%80%E6%A8%A1%E5%9E%8B%E4%B8%80%E4%BD%BF%E7%94%A8lstm%E5%AE%9E%E7%8E%B0%E8%AF%8D%E7%BA%A7%E8%AF%AD%E8%A8%80%E6%A8%A1%E5%9E%8B/</link><pubDate>Mon, 09 Sep 2024 00:00:00 +0000</pubDate><guid>https://blog.jinli.io/p/%E5%AE%9E%E4%BE%8B%E5%AD%A6pytorch6%E8%AF%AD%E8%A8%80%E6%A8%A1%E5%9E%8B%E4%B8%80%E4%BD%BF%E7%94%A8lstm%E5%AE%9E%E7%8E%B0%E8%AF%8D%E7%BA%A7%E8%AF%AD%E8%A8%80%E6%A8%A1%E5%9E%8B/</guid><description>&lt;!-- more --&gt;

&lt;h2 class="relative group"&gt;背景
 &lt;div id="背景" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e8%83%8c%e6%99%af" aria-label="锚点"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;这是&lt;a href="https://jinli.io/categories/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0/" target="_blank" rel="noreferrer"&gt;“实例学PyTorch”&lt;/a&gt;系列的第6篇文章。在第4篇文章和第5篇文章中，我们介绍了序列预测问题，并用RNN、GRU和LSTM实现了对正弦函数的预测。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://blog.jinli.io/p/%E5%AE%9E%E4%BE%8B%E5%AD%A6pytorch4%E5%BA%8F%E5%88%97%E9%A2%84%E6%B5%8B%E4%B8%80%E5%BE%AA%E7%8E%AF%E7%A5%9E%E7%BB%8F%E7%BD%91%E7%BB%9Crnn/" &gt;“实例学PyTorch（4）：序列预测（一）——循环神经网络（RNN）”&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://blog.jinli.io/p/%E5%AE%9E%E4%BE%8B%E5%AD%A6pytorch5%E5%BA%8F%E5%88%97%E9%A2%84%E6%B5%8B%E4%BA%8C%E9%97%A8%E6%8E%A7%E5%BE%AA%E7%8E%AF%E5%8D%95%E5%85%83gru%E5%92%8C%E9%95%BF%E7%9F%AD%E6%9C%9F%E8%AE%B0%E5%BF%86%E7%BD%91%E7%BB%9Clstm/" &gt;“实例学PyTorch（5）：序列预测（二）——门控循环单元（GRU）和长短期记忆网络（LSTM）”&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;我们在第4篇文章中提到过，除了Sine函数这种时间序列，序列数据还可以是语言模型中的单词序列，本文就来简单介绍使用LSTM实现一个词级语言模型。&lt;/p&gt;</description></item><item><title>本地运行大语言模型（一）：使用ollama和LobeChat在本地或者服务器上部署</title><link>https://blog.jinli.io/p/%E6%9C%AC%E5%9C%B0%E8%BF%90%E8%A1%8C%E5%A4%A7%E8%AF%AD%E8%A8%80%E6%A8%A1%E5%9E%8B%E4%B8%80%E4%BD%BF%E7%94%A8ollama%E5%92%8Clobechat%E5%9C%A8%E6%9C%AC%E5%9C%B0%E6%88%96%E8%80%85%E6%9C%8D%E5%8A%A1%E5%99%A8%E4%B8%8A%E9%83%A8%E7%BD%B2/</link><pubDate>Tue, 13 Aug 2024 00:00:00 +0000</pubDate><guid>https://blog.jinli.io/p/%E6%9C%AC%E5%9C%B0%E8%BF%90%E8%A1%8C%E5%A4%A7%E8%AF%AD%E8%A8%80%E6%A8%A1%E5%9E%8B%E4%B8%80%E4%BD%BF%E7%94%A8ollama%E5%92%8Clobechat%E5%9C%A8%E6%9C%AC%E5%9C%B0%E6%88%96%E8%80%85%E6%9C%8D%E5%8A%A1%E5%99%A8%E4%B8%8A%E9%83%A8%E7%BD%B2/</guid><description>&lt;!-- more --&gt;

&lt;h2 class="relative group"&gt;缘起
 &lt;div id="缘起" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e7%bc%98%e8%b5%b7" aria-label="锚点"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;在给自己的服务器安装了一个显卡后，我就想充分利用这块显卡，于是我就想到了部署一个大语言模型。这样就不用每月订阅付费的ChatGPT了。毕竟有时我用ChatGPT的频率并不高，每月20美元的订阅费用有点贵。如果可以自己部署一个私有的大语言模型，一来是可以使用各种大语言模型，不会局限于ChatGPT，二来即使开源的大语言模型效果不如付费版的ChatGTP，也可以使用OpenAI的API调用ChatGPT的接口，可以达到和使用ChatGPT付费版差不多的效果，但每月的费用应该用不到20美元。&lt;/p&gt;</description></item><item><title>Nvidia显卡（一）：Ubuntu下的游戏、CUDA、深度学习、Docker等</title><link>https://blog.jinli.io/p/nvidia%E6%98%BE%E5%8D%A1%E4%B8%80ubuntu%E4%B8%8B%E7%9A%84%E6%B8%B8%E6%88%8Fcuda%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0docker%E7%AD%89/</link><pubDate>Mon, 12 Aug 2024 00:00:00 +0000</pubDate><guid>https://blog.jinli.io/p/nvidia%E6%98%BE%E5%8D%A1%E4%B8%80ubuntu%E4%B8%8B%E7%9A%84%E6%B8%B8%E6%88%8Fcuda%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0docker%E7%AD%89/</guid><description>&lt;!-- more --&gt;

&lt;h2 class="relative group"&gt;缘起
 &lt;div id="缘起" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e7%bc%98%e8%b5%b7" aria-label="锚点"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;最近买了一块Nvidia RTX 4060 Ti (8GB)显卡，为了物尽其用，我想在Ubuntu上使用这块显卡进行游戏、CUDA编程、深度学习等。但是在Ubuntu上使用Nvidia显卡并不是一件容易的事情，需要进行一些设置，下面记录一下我在Ubuntu上使用Nvidia显卡的相关设置。&lt;/p&gt;</description></item><item><title>容器（2）：docker最佳实践指南——docker-compose和Portainer</title><link>https://blog.jinli.io/p/%E5%AE%B9%E5%99%A82docker%E6%9C%80%E4%BD%B3%E5%AE%9E%E8%B7%B5%E6%8C%87%E5%8D%97docker-compose%E5%92%8Cportainer/</link><pubDate>Sun, 11 Aug 2024 00:00:00 +0000</pubDate><guid>https://blog.jinli.io/p/%E5%AE%B9%E5%99%A82docker%E6%9C%80%E4%BD%B3%E5%AE%9E%E8%B7%B5%E6%8C%87%E5%8D%97docker-compose%E5%92%8Cportainer/</guid><description>&lt;!-- more --&gt;

&lt;h2 class="relative group"&gt;缘起
 &lt;div id="缘起" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e7%bc%98%e8%b5%b7" aria-label="锚点"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;这是docker系列的第二篇文章。本系列其他文章链接如下：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://blog.jinli.io/p/%E5%AE%B9%E5%99%A81%E5%AE%B9%E5%99%A8%E7%9B%B8%E5%85%B3%E7%9F%A5%E8%AF%86%E7%AE%80%E4%BB%8B%E5%AE%B9%E5%99%A8%E5%8C%96dockerdocker-composekubernetes-/-k8s%E7%AD%89/" &gt;容器（1）：容器相关知识简介——容器化、docker、docker-compose、Kubernetes / K8s等&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://blog.jinli.io/p/%E5%AE%B9%E5%99%A83docker%E6%9C%80%E4%BD%B3%E5%AE%9E%E8%B7%B5%E6%8C%87%E5%8D%97%E6%95%B0%E6%8D%AE%E5%8D%B7volume%E7%9A%84%E7%AE%A1%E7%90%86/" &gt;容器（3）：docker最佳实践指南——数据卷volume的管理&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://blog.jinli.io/p/%E5%AE%B9%E5%99%A84docker%E6%9C%80%E4%BD%B3%E5%AE%9E%E8%B7%B5%E6%8C%87%E5%8D%97%E5%AE%B9%E5%99%A8%E6%9B%B4%E6%96%B0%E5%8D%87%E7%BA%A7%E5%92%8C%E8%BF%81%E7%A7%BB/" &gt;容器（4）：docker最佳实践指南——容器更新、升级和迁移&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://blog.jinli.io/p/%E5%AE%B9%E5%99%A85docker%E6%9C%80%E4%BD%B3%E5%AE%9E%E8%B7%B5%E6%8C%87%E5%8D%97%E5%AE%B9%E5%99%A8%E6%9B%B4%E6%96%B0%E7%9B%91%E6%B5%8B%E5%B7%A5%E5%85%B7wudwhats-up-docker/" &gt;容器（5）：docker最佳实践指南——容器更新监测工具WUD（What&amp;rsquo;s Up Docker）&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://blog.jinli.io/p/%E5%AE%B9%E5%99%A86%E4%BD%BF%E7%94%A8docker%E6%97%B6%E7%9A%84%E4%B8%80%E4%BA%9B%E8%AF%AF%E5%8C%BA%E5%9D%8F%E4%B9%A0%E6%83%AF%E5%92%8C%E9%97%AE%E9%A2%98/" &gt;容器（6）：使用Docker时的一些误区、坏习惯和问题&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;在&lt;a href="https://blog.jinli.io/p/%E5%AE%B9%E5%99%A81%E5%AE%B9%E5%99%A8%E7%9B%B8%E5%85%B3%E7%9F%A5%E8%AF%86%E7%AE%80%E4%BB%8B%E5%AE%B9%E5%99%A8%E5%8C%96dockerdocker-composekubernetes-/-k8s%E7%AD%89/" &gt;&amp;ldquo;容器（1）：容器相关知识简介——容器化、docker、docker-compose、Kubernetes / K8s等&amp;rdquo;&lt;/a&gt;中，我们介绍了容器化的概念，以及如何使用Docker进行容器化。在实际使用Docker时，我们可能会遇到一些问题，例如：&lt;/p&gt;</description></item><item><title>实例学PyTorch（5）：序列预测（二）——门控循环单元（GRU）和长短期记忆网络（LSTM）</title><link>https://blog.jinli.io/p/%E5%AE%9E%E4%BE%8B%E5%AD%A6pytorch5%E5%BA%8F%E5%88%97%E9%A2%84%E6%B5%8B%E4%BA%8C%E9%97%A8%E6%8E%A7%E5%BE%AA%E7%8E%AF%E5%8D%95%E5%85%83gru%E5%92%8C%E9%95%BF%E7%9F%AD%E6%9C%9F%E8%AE%B0%E5%BF%86%E7%BD%91%E7%BB%9Clstm/</link><pubDate>Sun, 04 Aug 2024 00:00:00 +0000</pubDate><guid>https://blog.jinli.io/p/%E5%AE%9E%E4%BE%8B%E5%AD%A6pytorch5%E5%BA%8F%E5%88%97%E9%A2%84%E6%B5%8B%E4%BA%8C%E9%97%A8%E6%8E%A7%E5%BE%AA%E7%8E%AF%E5%8D%95%E5%85%83gru%E5%92%8C%E9%95%BF%E7%9F%AD%E6%9C%9F%E8%AE%B0%E5%BF%86%E7%BD%91%E7%BB%9Clstm/</guid><description>&lt;!-- more --&gt;

&lt;h2 class="relative group"&gt;背景
 &lt;div id="背景" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e8%83%8c%e6%99%af" aria-label="锚点"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;这是&lt;a href="https://jinli.io/categories/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0/" target="_blank" rel="noreferrer"&gt;“实例学PyTorch”&lt;/a&gt;系列的第5篇文章。在第4篇文章&lt;a href="https://blog.jinli.io/p/%E5%AE%9E%E4%BE%8B%E5%AD%A6pytorch4%E5%BA%8F%E5%88%97%E9%A2%84%E6%B5%8B%E4%B8%80%E5%BE%AA%E7%8E%AF%E7%A5%9E%E7%BB%8F%E7%BD%91%E7%BB%9Crnn/" &gt;“实例学PyTorch（4）：序列预测（一）——循环神经网络（RNN）”&lt;/a&gt;中，我们介绍了序列预测问题，以及如何使用一个简单的循环神经网络（RNN）来实现对正弦函数的预测。在本文中，我们将更进一步，介绍序列预测中另外两种常用的神经网络：门控循环单元（Gated Recurrent Unit，GRU）和长短期记忆网络（Long Short-Term Memory，LSTM）。&lt;/p&gt;</description></item><item><title>Python环境管理方式总结</title><link>https://blog.jinli.io/p/python%E7%8E%AF%E5%A2%83%E7%AE%A1%E7%90%86%E6%96%B9%E5%BC%8F%E6%80%BB%E7%BB%93/</link><pubDate>Sun, 21 Jul 2024 00:00:00 +0000</pubDate><guid>https://blog.jinli.io/p/python%E7%8E%AF%E5%A2%83%E7%AE%A1%E7%90%86%E6%96%B9%E5%BC%8F%E6%80%BB%E7%BB%93/</guid><description>&lt;!-- more --&gt;

&lt;h2 class="relative group"&gt;缘起
 &lt;div id="缘起" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e7%bc%98%e8%b5%b7" aria-label="锚点"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;在使用Python开发时，遇到了很多配置环境的情形。有时需要安装不同版本的Python，有时需要安装不同的Python包，有时需要安装不同的Python包的不同版本。&lt;/p&gt;</description></item><item><title>远程桌面（一）：AnyDesk的安装与使用</title><link>https://blog.jinli.io/p/%E8%BF%9C%E7%A8%8B%E6%A1%8C%E9%9D%A2%E4%B8%80anydesk%E7%9A%84%E5%AE%89%E8%A3%85%E4%B8%8E%E4%BD%BF%E7%94%A8/</link><pubDate>Sun, 14 Jul 2024 00:00:00 +0000</pubDate><guid>https://blog.jinli.io/p/%E8%BF%9C%E7%A8%8B%E6%A1%8C%E9%9D%A2%E4%B8%80anydesk%E7%9A%84%E5%AE%89%E8%A3%85%E4%B8%8E%E4%BD%BF%E7%94%A8/</guid><description>&lt;!-- more --&gt;

&lt;h2 class="relative group"&gt;缘起
 &lt;div id="缘起" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e7%bc%98%e8%b5%b7" aria-label="锚点"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;我在家和在办公室都有数台电脑，运行的操作系统包括Windows、macOS和Linux。&lt;/p&gt;</description></item><item><title>Arch Linux系统安装与配置</title><link>https://blog.jinli.io/p/arch-linux%E7%B3%BB%E7%BB%9F%E5%AE%89%E8%A3%85%E4%B8%8E%E9%85%8D%E7%BD%AE/</link><pubDate>Sun, 30 Jun 2024 00:00:00 +0000</pubDate><guid>https://blog.jinli.io/p/arch-linux%E7%B3%BB%E7%BB%9F%E5%AE%89%E8%A3%85%E4%B8%8E%E9%85%8D%E7%BD%AE/</guid><description>&lt;!-- more --&gt;

&lt;h2 class="relative group"&gt;缘起
 &lt;div id="缘起" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e7%bc%98%e8%b5%b7" aria-label="锚点"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;手上有一个2018年的老Surface Pro 6，现在性能已经有些跟不上了，但还可以拿来玩一玩，就准备安装一两个轻量级的Linux系统，顺便熟悉熟悉不同的Linux发行版，为之后更新主力机的Linux系统做准备。&lt;/p&gt;</description></item><item><title>启动引导（一）：多系统启动项配置</title><link>https://blog.jinli.io/p/%E5%90%AF%E5%8A%A8%E5%BC%95%E5%AF%BC%E4%B8%80%E5%A4%9A%E7%B3%BB%E7%BB%9F%E5%90%AF%E5%8A%A8%E9%A1%B9%E9%85%8D%E7%BD%AE/</link><pubDate>Fri, 24 May 2024 00:00:00 +0000</pubDate><guid>https://blog.jinli.io/p/%E5%90%AF%E5%8A%A8%E5%BC%95%E5%AF%BC%E4%B8%80%E5%A4%9A%E7%B3%BB%E7%BB%9F%E5%90%AF%E5%8A%A8%E9%A1%B9%E9%85%8D%E7%BD%AE/</guid><description>&lt;!-- more --&gt;

&lt;h2 class="relative group"&gt;缘起
 &lt;div id="缘起" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e7%bc%98%e8%b5%b7" aria-label="锚点"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;我之前在电脑上装过双系统或者多系统，但对于多个系统的启动项一直云里雾里，经常出现启动项丢失、启动项重复等问题。这次我打算好好研究一下多系统启动项的配置，包括启动加载器的设置、EFI/Grub/rEFInd等，以及如何定制多系统启动器主题。&lt;/p&gt;</description></item><item><title>从公网访问个人网站——Nginx反向代理配置</title><link>https://blog.jinli.io/p/%E4%BB%8E%E5%85%AC%E7%BD%91%E8%AE%BF%E9%97%AE%E4%B8%AA%E4%BA%BA%E7%BD%91%E7%AB%99nginx%E5%8F%8D%E5%90%91%E4%BB%A3%E7%90%86%E9%85%8D%E7%BD%AE/</link><pubDate>Wed, 08 May 2024 00:00:00 +0000</pubDate><guid>https://blog.jinli.io/p/%E4%BB%8E%E5%85%AC%E7%BD%91%E8%AE%BF%E9%97%AE%E4%B8%AA%E4%BA%BA%E7%BD%91%E7%AB%99nginx%E5%8F%8D%E5%90%91%E4%BB%A3%E7%90%86%E9%85%8D%E7%BD%AE/</guid><description>&lt;!-- more --&gt;

&lt;h2 class="relative group"&gt;缘起
 &lt;div id="缘起" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e7%bc%98%e8%b5%b7" aria-label="锚点"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;在决定用自己的电脑搭建一个私人服务器之后，我购买了一个域名，配置了动态域名解析，于是就可以通过域名来访问自己的服务器了。后来我又在这个服务器上搭建了不少网站，并使用Nginx配置了反向代理，以便从公网访问这些网站。这里我记录一下我是如何配置Nginx反向代理的。&lt;/p&gt;</description></item><item><title>自建在线LaTeX编译预览服务：Overleaf开源社区版</title><link>https://blog.jinli.io/p/%E8%87%AA%E5%BB%BA%E5%9C%A8%E7%BA%BFlatex%E7%BC%96%E8%AF%91%E9%A2%84%E8%A7%88%E6%9C%8D%E5%8A%A1overleaf%E5%BC%80%E6%BA%90%E7%A4%BE%E5%8C%BA%E7%89%88/</link><pubDate>Wed, 24 Apr 2024 00:00:00 +0000</pubDate><guid>https://blog.jinli.io/p/%E8%87%AA%E5%BB%BA%E5%9C%A8%E7%BA%BFlatex%E7%BC%96%E8%AF%91%E9%A2%84%E8%A7%88%E6%9C%8D%E5%8A%A1overleaf%E5%BC%80%E6%BA%90%E7%A4%BE%E5%8C%BA%E7%89%88/</guid><description>&lt;!-- more --&gt;

&lt;h2 class="relative group"&gt;缘起
 &lt;div id="缘起" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e7%bc%98%e8%b5%b7" aria-label="锚点"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;之前在和别人合作写作业或者论文时，一直使用&lt;a href="https://www.overleaf.com/" target="_blank" rel="noreferrer"&gt;Overleaf&lt;/a&gt;来协作编写LaTeX文档。虽然不如在本地编辑器（如VS Code）上可定制性强，但跟别人协作起来还是挺方便的。在写博士论文时，为了使用Git同步功能，我购买了一年的学生订阅。由于毕业后使用频率降低，我就没有续费了。最近我需要重新编译一下之前的博士论文，才发现Overleaf免费用户的编译时间是有限制的，由于博士论文比较大，编译时间超过了限制，导致我无法编译成功。&lt;/p&gt;</description></item><item><title>GitHub/GitLab上的项目合作开发流程</title><link>https://blog.jinli.io/p/github/gitlab%E4%B8%8A%E7%9A%84%E9%A1%B9%E7%9B%AE%E5%90%88%E4%BD%9C%E5%BC%80%E5%8F%91%E6%B5%81%E7%A8%8B/</link><pubDate>Mon, 12 Feb 2024 00:00:00 +0000</pubDate><guid>https://blog.jinli.io/p/github/gitlab%E4%B8%8A%E7%9A%84%E9%A1%B9%E7%9B%AE%E5%90%88%E4%BD%9C%E5%BC%80%E5%8F%91%E6%B5%81%E7%A8%8B/</guid><description>&lt;!-- more --&gt;

&lt;h2 class="relative group"&gt;背景
 &lt;div id="背景" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e8%83%8c%e6%99%af" aria-label="锚点"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;如果在GitHub上看到了一个有趣的项目，想要参与开发，我们一般需要遵照一定的流程。这里记录一下一般的项目合作开发流程。&lt;/p&gt;</description></item><item><title>实例学PyTorch（4）：序列预测（一）——循环神经网络（RNN）</title><link>https://blog.jinli.io/p/%E5%AE%9E%E4%BE%8B%E5%AD%A6pytorch4%E5%BA%8F%E5%88%97%E9%A2%84%E6%B5%8B%E4%B8%80%E5%BE%AA%E7%8E%AF%E7%A5%9E%E7%BB%8F%E7%BD%91%E7%BB%9Crnn/</link><pubDate>Sat, 27 Jan 2024 00:00:00 +0000</pubDate><guid>https://blog.jinli.io/p/%E5%AE%9E%E4%BE%8B%E5%AD%A6pytorch4%E5%BA%8F%E5%88%97%E9%A2%84%E6%B5%8B%E4%B8%80%E5%BE%AA%E7%8E%AF%E7%A5%9E%E7%BB%8F%E7%BD%91%E7%BB%9Crnn/</guid><description>&lt;!-- more --&gt;

&lt;h2 class="relative group"&gt;背景
 &lt;div id="背景" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e8%83%8c%e6%99%af" aria-label="锚点"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;这是&lt;a href="https://jinli.io/categories/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0/" target="_blank" rel="noreferrer"&gt;“实例学PyTorch”&lt;/a&gt;系列的第4篇文章。在前三篇文章中&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://blog.jinli.io/p/%E5%AE%9E%E4%BE%8B%E5%AD%A6pytorch1mnist%E6%89%8B%E5%86%99%E6%95%B0%E5%AD%97%E8%AF%86%E5%88%AB%E4%B8%80pytorch%E5%9F%BA%E7%A1%80%E5%92%8C%E7%A5%9E%E7%BB%8F%E7%BD%91%E7%BB%9C%E5%9F%BA%E7%A1%80/" &gt;“实例学PyTorch（1）：MNIST手写数字识别（一）——PyTorch基础和神经网络基础”&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://blog.jinli.io/p/%E5%AE%9E%E4%BE%8B%E5%AD%A6pytorch2mnist%E6%89%8B%E5%86%99%E6%95%B0%E5%AD%97%E8%AF%86%E5%88%AB%E4%BA%8C%E7%A5%9E%E7%BB%8F%E7%BD%91%E7%BB%9C%E4%B8%AD%E7%9A%84%E5%8F%82%E6%95%B0%E9%80%89%E6%8B%A9/" &gt;“实例学PyTorch（2）：MNIST手写数字识别（二）——神经网络中的参数选择”&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://blog.jinli.io/p/%E5%AE%9E%E4%BE%8B%E5%AD%A6pytorch3mnist%E6%89%8B%E5%86%99%E6%95%B0%E5%AD%97%E8%AF%86%E5%88%AB%E4%B8%89%E5%8D%B7%E7%A7%AF%E7%A5%9E%E7%BB%8F%E7%BD%91%E7%BB%9Ccnn/" &gt;“实例学PyTorch（3）：MNIST手写数字识别（三）——卷积神经网络（CNN）”&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;我们介绍了用PyTorch解决图片分类的问题。机器学习领域还有一个非常重要的问题是序列预测，与图片分类不同，序列预测需要考虑数据的前后关联性。能够处理数据的前后关联性的神经网络是循环神经网络（Recurrent Neural Network，RNN）。&lt;/p&gt;</description></item><item><title>实例学PyTorch（3）：MNIST手写数字识别（三）——卷积神经网络（CNN）</title><link>https://blog.jinli.io/p/%E5%AE%9E%E4%BE%8B%E5%AD%A6pytorch3mnist%E6%89%8B%E5%86%99%E6%95%B0%E5%AD%97%E8%AF%86%E5%88%AB%E4%B8%89%E5%8D%B7%E7%A7%AF%E7%A5%9E%E7%BB%8F%E7%BD%91%E7%BB%9Ccnn/</link><pubDate>Tue, 23 Jan 2024 00:00:00 +0000</pubDate><guid>https://blog.jinli.io/p/%E5%AE%9E%E4%BE%8B%E5%AD%A6pytorch3mnist%E6%89%8B%E5%86%99%E6%95%B0%E5%AD%97%E8%AF%86%E5%88%AB%E4%B8%89%E5%8D%B7%E7%A7%AF%E7%A5%9E%E7%BB%8F%E7%BD%91%E7%BB%9Ccnn/</guid><description>&lt;!-- more --&gt;

&lt;h2 class="relative group"&gt;背景
 &lt;div id="背景" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e8%83%8c%e6%99%af" aria-label="锚点"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;这是&lt;a href="https://jinli.io/categories/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0/" target="_blank" rel="noreferrer"&gt;“实例学PyTorch”&lt;/a&gt;系列的第3篇文章。在前两篇文章&lt;a href="https://blog.jinli.io/p/%E5%AE%9E%E4%BE%8B%E5%AD%A6pytorch1mnist%E6%89%8B%E5%86%99%E6%95%B0%E5%AD%97%E8%AF%86%E5%88%AB%E4%B8%80pytorch%E5%9F%BA%E7%A1%80%E5%92%8C%E7%A5%9E%E7%BB%8F%E7%BD%91%E7%BB%9C%E5%9F%BA%E7%A1%80/" &gt;“实例学PyTorch（1）：MNIST手写数字识别（一）——PyTorch基础和神经网络基础”&lt;/a&gt;和&lt;a href="https://blog.jinli.io/p/%E5%AE%9E%E4%BE%8B%E5%AD%A6pytorch2mnist%E6%89%8B%E5%86%99%E6%95%B0%E5%AD%97%E8%AF%86%E5%88%AB%E4%BA%8C%E7%A5%9E%E7%BB%8F%E7%BD%91%E7%BB%9C%E4%B8%AD%E7%9A%84%E5%8F%82%E6%95%B0%E9%80%89%E6%8B%A9/" &gt;“实例学PyTorch（2）：MNIST手写数字识别（二）——神经网络中的参数选择”&lt;/a&gt;中，我们介绍了PyTorch的基本概念和使用方法，使用一个简单的三层全连接神经网络实现了MNIST手写数字识别，并简单讨论了一下神经网络中参数选择的问题，这算是深度学习或计算机视觉领域的“Hello World&amp;quot;。在这篇文章中，我们将使用一个卷积神经网络实现MNIST手写数字识别，算是对之前两篇文章的一个扩展。&lt;/p&gt;</description></item><item><title>实例学PyTorch（2）：MNIST手写数字识别（二）——神经网络中的参数选择</title><link>https://blog.jinli.io/p/%E5%AE%9E%E4%BE%8B%E5%AD%A6pytorch2mnist%E6%89%8B%E5%86%99%E6%95%B0%E5%AD%97%E8%AF%86%E5%88%AB%E4%BA%8C%E7%A5%9E%E7%BB%8F%E7%BD%91%E7%BB%9C%E4%B8%AD%E7%9A%84%E5%8F%82%E6%95%B0%E9%80%89%E6%8B%A9/</link><pubDate>Sat, 20 Jan 2024 00:00:00 +0000</pubDate><guid>https://blog.jinli.io/p/%E5%AE%9E%E4%BE%8B%E5%AD%A6pytorch2mnist%E6%89%8B%E5%86%99%E6%95%B0%E5%AD%97%E8%AF%86%E5%88%AB%E4%BA%8C%E7%A5%9E%E7%BB%8F%E7%BD%91%E7%BB%9C%E4%B8%AD%E7%9A%84%E5%8F%82%E6%95%B0%E9%80%89%E6%8B%A9/</guid><description>&lt;!-- more --&gt;

&lt;h2 class="relative group"&gt;背景
 &lt;div id="背景" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e8%83%8c%e6%99%af" aria-label="锚点"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;这是&lt;a href="https://jinli.io/categories/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0/" target="_blank" rel="noreferrer"&gt;“实例学PyTorch”&lt;/a&gt;系列的第2篇文章。在上一篇文章&lt;a href="https://blog.jinli.io/p/%E5%AE%9E%E4%BE%8B%E5%AD%A6pytorch1mnist%E6%89%8B%E5%86%99%E6%95%B0%E5%AD%97%E8%AF%86%E5%88%AB%E4%B8%80pytorch%E5%9F%BA%E7%A1%80%E5%92%8C%E7%A5%9E%E7%BB%8F%E7%BD%91%E7%BB%9C%E5%9F%BA%E7%A1%80/" &gt;“实例学PyTorch（1）：MNIST手写数字识别（一）——PyTorch基础和神经网络基础”&lt;/a&gt;中，我们介绍了PyTorch的基本概念和使用方法，并使用一个简单的三层全连接神经网络实现了MNIST手写数字识别，这算是深度学习领域的“Hello World&amp;quot;。在这篇文章中，我们将简单讨论一下这个简单的三层神经网络中参数的选择，对比不同的参数选择对模型性能的影响。&lt;/p&gt;</description></item><item><title>容器（1）：容器相关知识简介——容器化、docker、docker-compose、Kubernetes / K8s等</title><link>https://blog.jinli.io/p/%E5%AE%B9%E5%99%A81%E5%AE%B9%E5%99%A8%E7%9B%B8%E5%85%B3%E7%9F%A5%E8%AF%86%E7%AE%80%E4%BB%8B%E5%AE%B9%E5%99%A8%E5%8C%96dockerdocker-composekubernetes-/-k8s%E7%AD%89/</link><pubDate>Thu, 18 Jan 2024 00:00:00 +0000</pubDate><guid>https://blog.jinli.io/p/%E5%AE%B9%E5%99%A81%E5%AE%B9%E5%99%A8%E7%9B%B8%E5%85%B3%E7%9F%A5%E8%AF%86%E7%AE%80%E4%BB%8B%E5%AE%B9%E5%99%A8%E5%8C%96dockerdocker-composekubernetes-/-k8s%E7%AD%89/</guid><description>&lt;!-- more --&gt;

&lt;h2 class="relative group"&gt;缘起
 &lt;div id="缘起" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e7%bc%98%e8%b5%b7" aria-label="锚点"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;我自建的网站几乎全部是用Docker部署的，在跟朋友聊起我是如何搭建这些网站时，我发现很多人都表示听说过Docker或者容器，但并不知道它们到底是什么。&lt;/p&gt;</description></item><item><title>Python Web开发学习（五）：在AWS上部署网站</title><link>https://blog.jinli.io/p/python-web%E5%BC%80%E5%8F%91%E5%AD%A6%E4%B9%A0%E4%BA%94%E5%9C%A8aws%E4%B8%8A%E9%83%A8%E7%BD%B2%E7%BD%91%E7%AB%99/</link><pubDate>Wed, 17 Jan 2024 00:00:00 +0000</pubDate><guid>https://blog.jinli.io/p/python-web%E5%BC%80%E5%8F%91%E5%AD%A6%E4%B9%A0%E4%BA%94%E5%9C%A8aws%E4%B8%8A%E9%83%A8%E7%BD%B2%E7%BD%91%E7%AB%99/</guid><description>&lt;!-- more --&gt;

&lt;h2 class="relative group"&gt;简介
 &lt;div id="简介" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e7%ae%80%e4%bb%8b" aria-label="锚点"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;本系列的前四篇文章中，我们使用Python的Flask框架开发了一个简单的天气预报网站，并且可以用Docker把这个网站部署到了私有服务器上，使得我们的网站可以在公网上访问。&lt;/p&gt;</description></item><item><title>实例学PyTorch（1）：MNIST手写数字识别（一）——PyTorch基础和神经网络基础</title><link>https://blog.jinli.io/p/%E5%AE%9E%E4%BE%8B%E5%AD%A6pytorch1mnist%E6%89%8B%E5%86%99%E6%95%B0%E5%AD%97%E8%AF%86%E5%88%AB%E4%B8%80pytorch%E5%9F%BA%E7%A1%80%E5%92%8C%E7%A5%9E%E7%BB%8F%E7%BD%91%E7%BB%9C%E5%9F%BA%E7%A1%80/</link><pubDate>Mon, 15 Jan 2024 00:00:00 +0000</pubDate><guid>https://blog.jinli.io/p/%E5%AE%9E%E4%BE%8B%E5%AD%A6pytorch1mnist%E6%89%8B%E5%86%99%E6%95%B0%E5%AD%97%E8%AF%86%E5%88%AB%E4%B8%80pytorch%E5%9F%BA%E7%A1%80%E5%92%8C%E7%A5%9E%E7%BB%8F%E7%BD%91%E7%BB%9C%E5%9F%BA%E7%A1%80/</guid><description>&lt;!-- more --&gt;

&lt;h2 class="relative group"&gt;缘起
 &lt;div id="缘起" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e7%bc%98%e8%b5%b7" aria-label="锚点"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;我在多年前上机器学习的课时，使用过TensorFlow，但是当时对深度学习的理解还不够深入，只是简单地使用了一下。后来我也再没有上过机器学习的课，但研究工作中还是用到了一些机器学习的知识，所以我断断续续地学习了一些机器学习的知识。&lt;/p&gt;</description></item><item><title>私有虚拟网络VPN（一）：在云服务器上用Shadowsocks搭建VPN</title><link>https://blog.jinli.io/p/%E7%A7%81%E6%9C%89%E8%99%9A%E6%8B%9F%E7%BD%91%E7%BB%9Cvpn%E4%B8%80%E5%9C%A8%E4%BA%91%E6%9C%8D%E5%8A%A1%E5%99%A8%E4%B8%8A%E7%94%A8shadowsocks%E6%90%AD%E5%BB%BAvpn/</link><pubDate>Sat, 09 Dec 2023 00:00:00 +0000</pubDate><guid>https://blog.jinli.io/p/%E7%A7%81%E6%9C%89%E8%99%9A%E6%8B%9F%E7%BD%91%E7%BB%9Cvpn%E4%B8%80%E5%9C%A8%E4%BA%91%E6%9C%8D%E5%8A%A1%E5%99%A8%E4%B8%8A%E7%94%A8shadowsocks%E6%90%AD%E5%BB%BAvpn/</guid><description>&lt;!-- more --&gt;

&lt;h2 class="relative group"&gt;缘起
 &lt;div id="缘起" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e7%bc%98%e8%b5%b7" aria-label="锚点"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;由于版权问题，在国外无法使用国内很多视频、音乐资源，因此就想搭建一个VPN，以便翻墙回国。于是我在国内的云服务商那里租了一台服务器，然后在上面搭建了Shadowsocks服务，实现了翻墙回国。在这个过程中遇到了不少问题，这里记录一下。&lt;/p&gt;</description></item><item><title>使用mailcow和docker自建私人邮箱服务器（二）——使用邮箱中继与降低被屏蔽的概率</title><link>https://blog.jinli.io/p/%E4%BD%BF%E7%94%A8mailcow%E5%92%8Cdocker%E8%87%AA%E5%BB%BA%E7%A7%81%E4%BA%BA%E9%82%AE%E7%AE%B1%E6%9C%8D%E5%8A%A1%E5%99%A8%E4%BA%8C%E4%BD%BF%E7%94%A8%E9%82%AE%E7%AE%B1%E4%B8%AD%E7%BB%A7%E4%B8%8E%E9%99%8D%E4%BD%8E%E8%A2%AB%E5%B1%8F%E8%94%BD%E7%9A%84%E6%A6%82%E7%8E%87/</link><pubDate>Sun, 03 Dec 2023 00:00:00 +0000</pubDate><guid>https://blog.jinli.io/p/%E4%BD%BF%E7%94%A8mailcow%E5%92%8Cdocker%E8%87%AA%E5%BB%BA%E7%A7%81%E4%BA%BA%E9%82%AE%E7%AE%B1%E6%9C%8D%E5%8A%A1%E5%99%A8%E4%BA%8C%E4%BD%BF%E7%94%A8%E9%82%AE%E7%AE%B1%E4%B8%AD%E7%BB%A7%E4%B8%8E%E9%99%8D%E4%BD%8E%E8%A2%AB%E5%B1%8F%E8%94%BD%E7%9A%84%E6%A6%82%E7%8E%87/</guid><description>&lt;!-- more --&gt;

&lt;h2 class="relative group"&gt;缘起
 &lt;div id="缘起" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e7%bc%98%e8%b5%b7" aria-label="锚点"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;在本系列的第一篇文章&lt;a href="https://blog.jinli.io/p/%E4%BD%BF%E7%94%A8mailcow%E5%92%8Cdocker%E8%87%AA%E5%BB%BA%E7%A7%81%E4%BA%BA%E9%82%AE%E7%AE%B1%E6%9C%8D%E5%8A%A1%E5%99%A8/" &gt;&amp;ldquo;使用mailcow和docker自建私人邮箱服务器&amp;rdquo;&lt;/a&gt;中，我们用mailcow和docker在自己的电脑或服务器上搭建了私人邮箱服务器。由于很多运营商都会屏蔽25端口，导致邮件无法从服务器发送出去，因此我们使用了邮箱中继作为替代方案。&lt;/p&gt;</description></item><item><title>Python Web开发学习（四）：使用Docker、Gunicorn和Nginx部署网站</title><link>https://blog.jinli.io/p/python-web%E5%BC%80%E5%8F%91%E5%AD%A6%E4%B9%A0%E5%9B%9B%E4%BD%BF%E7%94%A8dockergunicorn%E5%92%8Cnginx%E9%83%A8%E7%BD%B2%E7%BD%91%E7%AB%99/</link><pubDate>Tue, 21 Nov 2023 00:00:00 +0000</pubDate><guid>https://blog.jinli.io/p/python-web%E5%BC%80%E5%8F%91%E5%AD%A6%E4%B9%A0%E5%9B%9B%E4%BD%BF%E7%94%A8dockergunicorn%E5%92%8Cnginx%E9%83%A8%E7%BD%B2%E7%BD%91%E7%AB%99/</guid><description>&lt;!-- more --&gt;

&lt;h2 class="relative group"&gt;简介
 &lt;div id="简介" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e7%ae%80%e4%bb%8b" aria-label="锚点"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;在本系列的前三篇文章中，我们使用Python的Flask框架开发了一个简单的天气预报网站，到目前为止，我们的网站还仅限于在自己的电脑上访问。在这篇文章中，我们将使用Docker、Gunicorn和Nginx部署这个网站，使得我们的网站可以在公网上访问。&lt;/p&gt;</description></item><item><title>Python Web开发学习（三）：使用输入框和API</title><link>https://blog.jinli.io/p/python-web%E5%BC%80%E5%8F%91%E5%AD%A6%E4%B9%A0%E4%B8%89%E4%BD%BF%E7%94%A8%E8%BE%93%E5%85%A5%E6%A1%86%E5%92%8Capi/</link><pubDate>Sat, 18 Nov 2023 00:00:00 +0000</pubDate><guid>https://blog.jinli.io/p/python-web%E5%BC%80%E5%8F%91%E5%AD%A6%E4%B9%A0%E4%B8%89%E4%BD%BF%E7%94%A8%E8%BE%93%E5%85%A5%E6%A1%86%E5%92%8Capi/</guid><description>&lt;!-- more --&gt;

&lt;h2 class="relative group"&gt;简介
 &lt;div id="简介" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e7%ae%80%e4%bb%8b" aria-label="锚点"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;这是本系列文章的第三篇，主要介绍如何使用输入框获取用户输入，以及如何使用API获取网络上的信息。&lt;/p&gt;</description></item><item><title>Python Web开发学习（二）：使用PostgreSQL和SQLAlchemy</title><link>https://blog.jinli.io/p/python-web%E5%BC%80%E5%8F%91%E5%AD%A6%E4%B9%A0%E4%BA%8C%E4%BD%BF%E7%94%A8postgresql%E5%92%8Csqlalchemy/</link><pubDate>Fri, 17 Nov 2023 00:00:00 +0000</pubDate><guid>https://blog.jinli.io/p/python-web%E5%BC%80%E5%8F%91%E5%AD%A6%E4%B9%A0%E4%BA%8C%E4%BD%BF%E7%94%A8postgresql%E5%92%8Csqlalchemy/</guid><description>&lt;!-- more --&gt;

&lt;h2 class="relative group"&gt;缘起
 &lt;div id="缘起" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e7%bc%98%e8%b5%b7" aria-label="锚点"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;在本系列的上一篇文章&lt;a href="https://blog.jinli.io/p/python-web%E5%BC%80%E5%8F%91%E5%AD%A6%E4%B9%A0%E4%B8%80%E4%BD%BF%E7%94%A8flask%E6%A1%86%E6%9E%B6/" &gt;&amp;ldquo;Python Web开发学习（一）：使用Flask框架&amp;rdquo;&lt;/a&gt;中，我们使用Flask框架开发了一个简单的Web应用程序，来显示一些城市的天气信息。但是这些天气信息都是写死在代码中的，如果我们有许多的天气信息，再写死在代码中就不太方便了。因此我们需要一个数据库来存储这些天气信息，然后从数据库中读取这些天气信息，再显示在网页上。&lt;/p&gt;</description></item><item><title>Python Web开发学习（一）：使用Flask框架</title><link>https://blog.jinli.io/p/python-web%E5%BC%80%E5%8F%91%E5%AD%A6%E4%B9%A0%E4%B8%80%E4%BD%BF%E7%94%A8flask%E6%A1%86%E6%9E%B6/</link><pubDate>Fri, 17 Nov 2023 00:00:00 +0000</pubDate><guid>https://blog.jinli.io/p/python-web%E5%BC%80%E5%8F%91%E5%AD%A6%E4%B9%A0%E4%B8%80%E4%BD%BF%E7%94%A8flask%E6%A1%86%E6%9E%B6/</guid><description>&lt;!-- more --&gt;

&lt;h2 class="relative group"&gt;缘起
 &lt;div id="缘起" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e7%bc%98%e8%b5%b7" aria-label="锚点"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;主流的Web开发语言有很多，比如Java、PHP、Python、Ruby等，其中我对Python了解最多，因此我想用Python来开发Web应用程序。Python有很多Web框架，比如Django、Flask、Tornado等，这些框架都有各自的特点，其中Flask是一个轻量级的Web框架，因此我选择从Flask框架开始来学习开发Web应用程序。&lt;/p&gt;</description></item><item><title>Ubuntu 22下配置SQL开发测试环境（MySQL+VSCode）</title><link>https://blog.jinli.io/p/ubuntu-22%E4%B8%8B%E9%85%8D%E7%BD%AEsql%E5%BC%80%E5%8F%91%E6%B5%8B%E8%AF%95%E7%8E%AF%E5%A2%83mysql-vscode/</link><pubDate>Thu, 12 Oct 2023 00:00:00 +0000</pubDate><guid>https://blog.jinli.io/p/ubuntu-22%E4%B8%8B%E9%85%8D%E7%BD%AEsql%E5%BC%80%E5%8F%91%E6%B5%8B%E8%AF%95%E7%8E%AF%E5%A2%83mysql-vscode/</guid><description>&lt;!-- more --&gt;

&lt;h2 class="relative group"&gt;缘起
 &lt;div id="缘起" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e7%bc%98%e8%b5%b7" aria-label="锚点"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;最近在学习使用SQL语言，主要是做LeetCode上的题目。但由于我是刚入门，对SQL数据库还不太熟悉，因此经常需要给自己写的SQL语句调试，这就需要一个可以连接的MySQL数据库。网上的教程大多都是在Windows系统下安装MySQL，但我平时的开发环境是在MacBook上用VSCode连接远程的Ubuntu服务器，因此我想在Ubuntu系统下安装MySQL，并且能够用VSCode remote连接MySQL数据库。&lt;/p&gt;</description></item><item><title>将域名服务商从Hostinger迁移到Cloudflare</title><link>https://blog.jinli.io/p/%E5%B0%86%E5%9F%9F%E5%90%8D%E6%9C%8D%E5%8A%A1%E5%95%86%E4%BB%8Ehostinger%E8%BF%81%E7%A7%BB%E5%88%B0cloudflare/</link><pubDate>Fri, 15 Sep 2023 00:00:00 +0000</pubDate><guid>https://blog.jinli.io/p/%E5%B0%86%E5%9F%9F%E5%90%8D%E6%9C%8D%E5%8A%A1%E5%95%86%E4%BB%8Ehostinger%E8%BF%81%E7%A7%BB%E5%88%B0cloudflare/</guid><description>&lt;!-- more --&gt;

&lt;h2 class="relative group"&gt;缘起
 &lt;div id="缘起" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e7%bc%98%e8%b5%b7" aria-label="锚点"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;Hostinger是一个网络托管服务商，提供域名注册、虚拟主机、VPS等服务。
最近在&lt;a href="https://www.hostinger.com/" target="_blank" rel="noreferrer"&gt;Hostinger&lt;/a&gt;上入手了一个域名，打算把之前建的网站迁移到新的域名上。我一直在使用&lt;a href="https://github.com/acmesh-official/acme.sh" target="_blank" rel="noreferrer"&gt;acme.sh&lt;/a&gt;为我的网站生成SSL证书。但是Hostinger不提供可供acme.sh调取的API，因此无法直接用acme.sh为托管在Hostinger上的域名生成SSL证书。&lt;a href="https://cloudflare.com/" target="_blank" rel="noreferrer"&gt;Cloudflare&lt;/a&gt;是一家基于反向代理为客户提供内容分发网络的服务商，也提供域名解析服务，而且提供acme.sh可用的API，所以我就想将域名服务商从Hostinger迁移到Cloudflare。&lt;/p&gt;</description></item><item><title>合并两个Hugo主题：在hugo-theme-stack中使用almeida-cv主题的简历模板</title><link>https://blog.jinli.io/p/%E5%90%88%E5%B9%B6%E4%B8%A4%E4%B8%AAhugo%E4%B8%BB%E9%A2%98%E5%9C%A8hugo-theme-stack%E4%B8%AD%E4%BD%BF%E7%94%A8almeida-cv%E4%B8%BB%E9%A2%98%E7%9A%84%E7%AE%80%E5%8E%86%E6%A8%A1%E6%9D%BF/</link><pubDate>Sat, 02 Sep 2023 00:00:00 +0000</pubDate><guid>https://blog.jinli.io/p/%E5%90%88%E5%B9%B6%E4%B8%A4%E4%B8%AAhugo%E4%B8%BB%E9%A2%98%E5%9C%A8hugo-theme-stack%E4%B8%AD%E4%BD%BF%E7%94%A8almeida-cv%E4%B8%BB%E9%A2%98%E7%9A%84%E7%AE%80%E5%8E%86%E6%A8%A1%E6%9D%BF/</guid><description>&lt;!-- more --&gt;

&lt;h2 class="relative group"&gt;缘起
 &lt;div id="缘起" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e7%bc%98%e8%b5%b7" aria-label="锚点"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;在搭建本网站时，我使用了Hugo主题&lt;a href="https://github.com/CaiJimmy/hugo-theme-stack" target="_blank" rel="noreferrer"&gt;hugo-theme-stack&lt;/a&gt;，可以在&lt;code&gt;关于&lt;/code&gt;页面添加个人简历。但是，这个页面的样式并不是传统简历的样式，而是类似于博客文章的样式，不太符合我的要求。
我对简历模板的要求是：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;传统简历的样式，不要花里胡哨&lt;/li&gt;
&lt;li&gt;可以导出为PDF格式&lt;/li&gt;
&lt;li&gt;尺寸为A4纸的大小或letter纸的大小，以便与传统简历的打印尺寸相同&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;于是我在网上找到了一个大致符合要求的简历模板&lt;a href="https://themes.gohugo.io/themes/almeida-cv/" target="_blank" rel="noreferrer"&gt;Almeida CV&lt;/a&gt;，但是这个模板是一个完整的Hugo主题，我不想把整个主题都用上，只想用它的简历模板。
在网上查了&lt;a href="https://stackoverflow.com/questions/59208233/hugo-theme-within-another-theme" target="_blank" rel="noreferrer"&gt;一些资料&lt;/a&gt;后发现，确实是有办法在同一个网站中使用两个Hugo主题的。&lt;/p&gt;</description></item><item><title>使用GitLab和docker搭建个人代码仓库</title><link>https://blog.jinli.io/p/%E4%BD%BF%E7%94%A8gitlab%E5%92%8Cdocker%E6%90%AD%E5%BB%BA%E4%B8%AA%E4%BA%BA%E4%BB%A3%E7%A0%81%E4%BB%93%E5%BA%93/</link><pubDate>Sat, 02 Sep 2023 00:00:00 +0000</pubDate><guid>https://blog.jinli.io/p/%E4%BD%BF%E7%94%A8gitlab%E5%92%8Cdocker%E6%90%AD%E5%BB%BA%E4%B8%AA%E4%BA%BA%E4%BB%A3%E7%A0%81%E4%BB%93%E5%BA%93/</guid><description>&lt;!-- more --&gt;

&lt;h2 class="relative group"&gt;缘起
 &lt;div id="缘起" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e7%bc%98%e8%b5%b7" aria-label="锚点"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;之前的代码基本都放在GitHub上，但有些代码因为涉及到科研中的一些项目，即使放在GitHub的私有仓库可能也会有潜在的安全问题，所以就想在自己的电脑或服务器上搭建一个私有的代码仓库。&lt;/p&gt;</description></item><item><title>使用jellyfin搭建个人线上影视库</title><link>https://blog.jinli.io/p/%E4%BD%BF%E7%94%A8jellyfin%E6%90%AD%E5%BB%BA%E4%B8%AA%E4%BA%BA%E7%BA%BF%E4%B8%8A%E5%BD%B1%E8%A7%86%E5%BA%93/</link><pubDate>Sat, 26 Aug 2023 00:00:00 +0000</pubDate><guid>https://blog.jinli.io/p/%E4%BD%BF%E7%94%A8jellyfin%E6%90%AD%E5%BB%BA%E4%B8%AA%E4%BA%BA%E7%BA%BF%E4%B8%8A%E5%BD%B1%E8%A7%86%E5%BA%93/</guid><description>&lt;!-- more --&gt;

&lt;h2 class="relative group"&gt;缘起
 &lt;div id="缘起" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e7%bc%98%e8%b5%b7" aria-label="锚点"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;之前下载了不少影视资源，放在家里主机的硬盘里，但是想在其他地方或自己的其他设备上观看就不太方便了。于是想到搭建一个线上影视库，可以在任何地方通过网络观看自己的影视资源。
在网上看到了很多搭建线上影视库的方法，比如使用&lt;a href="https://www.plex.tv/" target="_blank" rel="noreferrer"&gt;plex&lt;/a&gt;、&lt;a href="https://emby.media/" target="_blank" rel="noreferrer"&gt;emby&lt;/a&gt;、&lt;a href="https://jellyfin.org/" target="_blank" rel="noreferrer"&gt;jellyfin&lt;/a&gt;等软件，这些软件都是开源的，可以在自己的电脑或服务器上搭建，然后通过网页或客户端来观看自己的影视资源。
由于&lt;a href="https://www.plex.tv/" target="_blank" rel="noreferrer"&gt;plex&lt;/a&gt;和&lt;a href="https://emby.media/" target="_blank" rel="noreferrer"&gt;emby&lt;/a&gt;的许多高级功能都需要付费版才能用，而&lt;a href="https://jellyfin.org/" target="_blank" rel="noreferrer"&gt;jellyfin&lt;/a&gt;则是所有功能都免费，这里我选择使用&lt;a href="https://jellyfin.org/" target="_blank" rel="noreferrer"&gt;jellyfin&lt;/a&gt;来搭建个人线上影视库。&lt;/p&gt;</description></item><item><title>使用calibre-web和docker自建个人数字图书馆</title><link>https://blog.jinli.io/p/%E4%BD%BF%E7%94%A8calibre-web%E5%92%8Cdocker%E8%87%AA%E5%BB%BA%E4%B8%AA%E4%BA%BA%E6%95%B0%E5%AD%97%E5%9B%BE%E4%B9%A6%E9%A6%86/</link><pubDate>Sat, 05 Aug 2023 00:00:00 +0000</pubDate><guid>https://blog.jinli.io/p/%E4%BD%BF%E7%94%A8calibre-web%E5%92%8Cdocker%E8%87%AA%E5%BB%BA%E4%B8%AA%E4%BA%BA%E6%95%B0%E5%AD%97%E5%9B%BE%E4%B9%A6%E9%A6%86/</guid><description>&lt;!-- more --&gt;

&lt;h2 class="relative group"&gt;缘起
 &lt;div id="缘起" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e7%bc%98%e8%b5%b7" aria-label="锚点"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;之前下载过一些电子书，都存在了云盘上，但是每次想在不同的设备上看都需要先下载下来（虽然在云盘上也
可以预览，但还是觉得下载下来用专用的阅读器体验更好）。而且电子书一多，放在云盘里管理起来就比较
混乱。最近偶然看到了calibre-web这个工具，可以用它自己搭建一个电子书库，感觉效果挺不错的。&lt;/p&gt;</description></item><item><title>使用mailcow和docker自建私人邮箱服务器</title><link>https://blog.jinli.io/p/%E4%BD%BF%E7%94%A8mailcow%E5%92%8Cdocker%E8%87%AA%E5%BB%BA%E7%A7%81%E4%BA%BA%E9%82%AE%E7%AE%B1%E6%9C%8D%E5%8A%A1%E5%99%A8/</link><pubDate>Sat, 17 Jun 2023 00:00:00 +0000</pubDate><guid>https://blog.jinli.io/p/%E4%BD%BF%E7%94%A8mailcow%E5%92%8Cdocker%E8%87%AA%E5%BB%BA%E7%A7%81%E4%BA%BA%E9%82%AE%E7%AE%B1%E6%9C%8D%E5%8A%A1%E5%99%A8/</guid><description>&lt;!-- more --&gt;

&lt;h2 class="relative group"&gt;缘起
 &lt;div id="缘起" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e7%bc%98%e8%b5%b7" aria-label="锚点"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;既然有了私有的域名，就可以充分利用一下，搭建一个私有的邮件服务器，这样就可以创建自己专属的邮箱，邮件的所有信息也都可以由自己完全掌控，更加安全。&lt;/p&gt;</description></item><item><title>Slurm: 无需管理员权限更改计算任务的优先级</title><link>https://blog.jinli.io/p/slurm-%E6%97%A0%E9%9C%80%E7%AE%A1%E7%90%86%E5%91%98%E6%9D%83%E9%99%90%E6%9B%B4%E6%94%B9%E8%AE%A1%E7%AE%97%E4%BB%BB%E5%8A%A1%E7%9A%84%E4%BC%98%E5%85%88%E7%BA%A7/</link><pubDate>Sat, 15 Apr 2023 00:00:00 +0000</pubDate><guid>https://blog.jinli.io/p/slurm-%E6%97%A0%E9%9C%80%E7%AE%A1%E7%90%86%E5%91%98%E6%9D%83%E9%99%90%E6%9B%B4%E6%94%B9%E8%AE%A1%E7%AE%97%E4%BB%BB%E5%8A%A1%E7%9A%84%E4%BC%98%E5%85%88%E7%BA%A7/</guid><description>&lt;!-- more --&gt;

&lt;h2 class="relative group"&gt;简介
 &lt;div id="简介" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e7%ae%80%e4%bb%8b" aria-label="锚点"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;Slurm是一个广泛使用的Linux和Unix系统的工作负载管理器和作业调度程序。它允许用户在集群环境中提交和管理作业。&lt;/p&gt;</description></item><item><title>Google Photo替代品：使用Nextcloud实现可多设备同步的个人云相册</title><link>https://blog.jinli.io/p/google-photo%E6%9B%BF%E4%BB%A3%E5%93%81%E4%BD%BF%E7%94%A8nextcloud%E5%AE%9E%E7%8E%B0%E5%8F%AF%E5%A4%9A%E8%AE%BE%E5%A4%87%E5%90%8C%E6%AD%A5%E7%9A%84%E4%B8%AA%E4%BA%BA%E4%BA%91%E7%9B%B8%E5%86%8C/</link><pubDate>Tue, 21 Feb 2023 00:00:00 +0000</pubDate><guid>https://blog.jinli.io/p/google-photo%E6%9B%BF%E4%BB%A3%E5%93%81%E4%BD%BF%E7%94%A8nextcloud%E5%AE%9E%E7%8E%B0%E5%8F%AF%E5%A4%9A%E8%AE%BE%E5%A4%87%E5%90%8C%E6%AD%A5%E7%9A%84%E4%B8%AA%E4%BA%BA%E4%BA%91%E7%9B%B8%E5%86%8C/</guid><description>&lt;!-- more --&gt;

&lt;h2 class="relative group"&gt;缘起
 &lt;div id="缘起" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e7%bc%98%e8%b5%b7" aria-label="锚点"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;之前在自己服务器上用Nextcloud搭建了一个自己的云网盘（详见&lt;a href="https://blog.jinli.io/p/%E4%BD%BF%E7%94%A8nextcloud%E5%92%8Cdocker%E8%87%AA%E5%BB%BA%E4%B8%AA%E4%BA%BA%E4%BA%91%E7%BD%91%E7%9B%98/" &gt;&amp;ldquo;使用Nextcloud和docker自建个人云网盘&amp;rdquo;&lt;/a&gt;），也把自己在各个设备上的照片都备份到了云网盘上。
然后发现Nextcloud在移动设备的App里有自动上传的选项，因此就产生了用它来替代Google Photo，自建一个人云相册的想法。&lt;/p&gt;</description></item><item><title>使用Chevereto-free搭建私人图床</title><link>https://blog.jinli.io/p/%E4%BD%BF%E7%94%A8chevereto-free%E6%90%AD%E5%BB%BA%E7%A7%81%E4%BA%BA%E5%9B%BE%E5%BA%8A/</link><pubDate>Tue, 21 Feb 2023 00:00:00 +0000</pubDate><guid>https://blog.jinli.io/p/%E4%BD%BF%E7%94%A8chevereto-free%E6%90%AD%E5%BB%BA%E7%A7%81%E4%BA%BA%E5%9B%BE%E5%BA%8A/</guid><description>&lt;!-- more --&gt;

&lt;h2 class="relative group"&gt;缘起
 &lt;div id="缘起" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e7%bc%98%e8%b5%b7" aria-label="锚点"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;在网上写博客时有可能同一篇文章要上传到不同的平台，例如有些文章既会放在本网站上，也会放在项目的GitHub仓库的README里。
这时如果文章中的图片使用本地图片的话，就需要在不同平台上各放一份，不易于统一更新和管理。因此就产生了搭建一个个人图床
来统一管理这些图片的想法。&lt;/p&gt;</description></item><item><title>全平台免费键盘鼠标共享软件Barrier/InputLeap/Deskflow的安装与使用</title><link>https://blog.jinli.io/p/%E5%85%A8%E5%B9%B3%E5%8F%B0%E5%85%8D%E8%B4%B9%E9%94%AE%E7%9B%98%E9%BC%A0%E6%A0%87%E5%85%B1%E4%BA%AB%E8%BD%AF%E4%BB%B6barrier/inputleap/deskflow%E7%9A%84%E5%AE%89%E8%A3%85%E4%B8%8E%E4%BD%BF%E7%94%A8/</link><pubDate>Mon, 23 Jan 2023 00:00:00 +0000</pubDate><guid>https://blog.jinli.io/p/%E5%85%A8%E5%B9%B3%E5%8F%B0%E5%85%8D%E8%B4%B9%E9%94%AE%E7%9B%98%E9%BC%A0%E6%A0%87%E5%85%B1%E4%BA%AB%E8%BD%AF%E4%BB%B6barrier/inputleap/deskflow%E7%9A%84%E5%AE%89%E8%A3%85%E4%B8%8E%E4%BD%BF%E7%94%A8/</guid><description>&lt;!-- more --&gt;

&lt;h2 class="relative group"&gt;缘起
 &lt;div id="缘起" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e7%bc%98%e8%b5%b7" aria-label="锚点"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;工作中经常需要用到不止一台电脑，例如办公室有一台Linux系统的台式机，另有一台macOS的笔记本电脑
用于上课或者开会。有时完成某个任务需要同时用到这两台电脑，这时用两套鼠标和键盘来回切换就会变得
非常麻烦，&lt;a href="https://github.com/debauchee/barrier" target="_blank" rel="noreferrer"&gt;&lt;em&gt;Barrier&lt;/em&gt;&lt;/a&gt;就是一款可以在多个电脑间跨系统共享鼠标键盘的免费软件。&lt;/p&gt;</description></item><item><title>使用Nextcloud和docker自建个人云网盘</title><link>https://blog.jinli.io/p/%E4%BD%BF%E7%94%A8nextcloud%E5%92%8Cdocker%E8%87%AA%E5%BB%BA%E4%B8%AA%E4%BA%BA%E4%BA%91%E7%BD%91%E7%9B%98/</link><pubDate>Fri, 23 Sep 2022 00:00:00 +0000</pubDate><guid>https://blog.jinli.io/p/%E4%BD%BF%E7%94%A8nextcloud%E5%92%8Cdocker%E8%87%AA%E5%BB%BA%E4%B8%AA%E4%BA%BA%E4%BA%91%E7%BD%91%E7%9B%98/</guid><description>&lt;!-- more --&gt;

&lt;h2 class="relative group"&gt;简介
 &lt;div id="简介" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e7%ae%80%e4%bb%8b" aria-label="锚点"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;Nextcloud是一个开源的网络硬盘工具，个人用户可以使用Nextcloud在自己的私有服务器上搭建属于自己的云网盘。&lt;/p&gt;</description></item><item><title>无需sudo权限从源码编译安装zsh</title><link>https://blog.jinli.io/p/%E6%97%A0%E9%9C%80sudo%E6%9D%83%E9%99%90%E4%BB%8E%E6%BA%90%E7%A0%81%E7%BC%96%E8%AF%91%E5%AE%89%E8%A3%85zsh/</link><pubDate>Fri, 26 Aug 2022 00:00:00 +0000</pubDate><guid>https://blog.jinli.io/p/%E6%97%A0%E9%9C%80sudo%E6%9D%83%E9%99%90%E4%BB%8E%E6%BA%90%E7%A0%81%E7%BC%96%E8%AF%91%E5%AE%89%E8%A3%85zsh/</guid><description>&lt;!-- more --&gt;

&lt;h2 class="relative group"&gt;缘起
 &lt;div id="缘起" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e7%bc%98%e8%b5%b7" aria-label="锚点"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;学校的计算集群上默认的shell是bash，而没有我常用的zsh，没了自动补全和语法高亮用着非常不习惯。而且普通的账户没有管理员权限，无法用&lt;code&gt;sudo&lt;/code&gt;直接通过包管理工具来安装zsh，因此必须从源码来编译和安装zsh。&lt;/p&gt;</description></item><item><title>Linux下使用module管理软件包和环境变量</title><link>https://blog.jinli.io/p/linux%E4%B8%8B%E4%BD%BF%E7%94%A8module%E7%AE%A1%E7%90%86%E8%BD%AF%E4%BB%B6%E5%8C%85%E5%92%8C%E7%8E%AF%E5%A2%83%E5%8F%98%E9%87%8F/</link><pubDate>Thu, 18 Aug 2022 00:00:00 +0000</pubDate><guid>https://blog.jinli.io/p/linux%E4%B8%8B%E4%BD%BF%E7%94%A8module%E7%AE%A1%E7%90%86%E8%BD%AF%E4%BB%B6%E5%8C%85%E5%92%8C%E7%8E%AF%E5%A2%83%E5%8F%98%E9%87%8F/</guid><description>&lt;!-- more --&gt;

&lt;h2 class="relative group"&gt;缘起
 &lt;div id="缘起" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e7%bc%98%e8%b5%b7" aria-label="锚点"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;在使用学校的计算集群时，可以很方便地使用&lt;code&gt;module load&lt;/code&gt;命令来加载一些如Intel编译器、Python Anaconda之类的软件包，在不需要它们时也可以直接丢掉，这样可以很方便地选用和启用某些环境变量，防止某些环境变量污染其他软件的编译环境。
在自己的电脑上，为了安装和编译各种程序有时会下载安装很多编译器和软件包，这样在编译或运行某些程序时，由于环境变量的影响，编译器或程序经常会报错，于是我打算在自己的电脑上也安装module来管理这些软件包和环境变量。&lt;/p&gt;</description></item><item><title>Linux系统入门知识简介</title><link>https://blog.jinli.io/p/linux%E7%B3%BB%E7%BB%9F%E5%85%A5%E9%97%A8%E7%9F%A5%E8%AF%86%E7%AE%80%E4%BB%8B/</link><pubDate>Mon, 08 Aug 2022 00:00:00 +0000</pubDate><guid>https://blog.jinli.io/p/linux%E7%B3%BB%E7%BB%9F%E5%85%A5%E9%97%A8%E7%9F%A5%E8%AF%86%E7%AE%80%E4%BB%8B/</guid><description>&lt;!-- more --&gt;

&lt;h2 class="relative group"&gt;Linux发行版
 &lt;div id="linux发行版" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#linux%e5%8f%91%e8%a1%8c%e7%89%88" aria-label="锚点"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;Linux系统是一个自由软件的操作系统，它的内核是Linux内核，由芬兰计算机科学家Linus Torvalds在1991年发布。Linux系统的内核是自由软件，因此任何人都可以基于Linux内核发布自己的操作系统，这些操作系统就是Linux发行版。&lt;/p&gt;</description></item><item><title>命令行用户的oh-my-zsh和Neovim配置</title><link>https://blog.jinli.io/p/%E5%91%BD%E4%BB%A4%E8%A1%8C%E7%94%A8%E6%88%B7%E7%9A%84oh-my-zsh%E5%92%8Cneovim%E9%85%8D%E7%BD%AE/</link><pubDate>Sat, 06 Aug 2022 00:00:00 +0000</pubDate><guid>https://blog.jinli.io/p/%E5%91%BD%E4%BB%A4%E8%A1%8C%E7%94%A8%E6%88%B7%E7%9A%84oh-my-zsh%E5%92%8Cneovim%E9%85%8D%E7%BD%AE/</guid><description>&lt;!-- more --&gt;

&lt;h2 class="relative group"&gt;配置shell
 &lt;div id="配置shell" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e9%85%8d%e7%bd%aeshell" aria-label="锚点"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;效果展示:&lt;/p&gt;
&lt;figure&gt;&lt;img
 class="my-0 rounded-md"
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 alt="Shell Appearence"
 src="https://img.jinli.io/images/2024/05/19/shell_appearence.md.jpg"
 &gt;&lt;/figure&gt;

&lt;h3 class="relative group"&gt;特点
 &lt;div id="特点" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e7%89%b9%e7%82%b9" aria-label="锚点"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Shell: &lt;a href="https://ohmyz.sh/" target="_blank" rel="noreferrer"&gt;oh-my-zsh&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;主题: &lt;a href="https://github.com/romkatv/powerlevel10k" target="_blank" rel="noreferrer"&gt;powerlevel10k&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;插件: 命令自动补全建议&lt;a href="https://github.com/zsh-users/zsh-autosuggestions" target="_blank" rel="noreferrer"&gt;zsh-autosuggestions&lt;/a&gt;, 命令语法高亮&lt;a href="https://github.com/zsh-users/zsh-syntax-highlighting" target="_blank" rel="noreferrer"&gt;zsh-syntax-highlighting&lt;/a&gt;, 命令修正建议&lt;a href="https://github.com/nvbn/thefuck" target="_blank" rel="noreferrer"&gt;thefuck&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 class="relative group"&gt;注意
 &lt;div id="注意" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e6%b3%a8%e6%84%8f" aria-label="锚点"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;p&gt;这里使用的powerlevel10k主题从2024年5月开始将不再维护，当然这应该不影响使用。主题作者romkatv的说法是powerlevel10k已经非常成熟，功能也已经齐全。目前的issue主要是一些个性化的需求，或者涉及到底层的改变，作者romkatv认为这些issue对于99%的用户而言都是不必要的。如果你不在这99%的用户之内，就意味着你需要有能力自己修改代码来满足你的需求。因此romkatv决定不再维护powerlevel10k主题。这里是相关的讨论：&lt;/p&gt;</description></item><item><title>《现代计算机软硬件简介——当代码遇上电路》</title><link>https://blog.jinli.io/p/%E7%8E%B0%E4%BB%A3%E8%AE%A1%E7%AE%97%E6%9C%BA%E8%BD%AF%E7%A1%AC%E4%BB%B6%E7%AE%80%E4%BB%8B%E5%BD%93%E4%BB%A3%E7%A0%81%E9%81%87%E4%B8%8A%E7%94%B5%E8%B7%AF/</link><pubDate>Fri, 22 Jul 2022 00:00:00 +0000</pubDate><guid>https://blog.jinli.io/p/%E7%8E%B0%E4%BB%A3%E8%AE%A1%E7%AE%97%E6%9C%BA%E8%BD%AF%E7%A1%AC%E4%BB%B6%E7%AE%80%E4%BB%8B%E5%BD%93%E4%BB%A3%E7%A0%81%E9%81%87%E4%B8%8A%E7%94%B5%E8%B7%AF/</guid><description>&lt;!-- more --&gt;

&lt;h2 class="relative group"&gt;封面
 &lt;div id="封面" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e5%b0%81%e9%9d%a2" aria-label="锚点"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;figure&gt;&lt;img
 class="my-0 rounded-md"
 loading="lazy"
 decoding="async"
 fetchpriority="auto"
 alt="Cover"
 width="788"
 height="1078"
 src="https://blog.jinli.io/p/%E7%8E%B0%E4%BB%A3%E8%AE%A1%E7%AE%97%E6%9C%BA%E8%BD%AF%E7%A1%AC%E4%BB%B6%E7%AE%80%E4%BB%8B%E5%BD%93%E4%BB%A3%E7%A0%81%E9%81%87%E4%B8%8A%E7%94%B5%E8%B7%AF/cover.png"
 srcset="https://blog.jinli.io/p/%E7%8E%B0%E4%BB%A3%E8%AE%A1%E7%AE%97%E6%9C%BA%E8%BD%AF%E7%A1%AC%E4%BB%B6%E7%AE%80%E4%BB%8B%E5%BD%93%E4%BB%A3%E7%A0%81%E9%81%87%E4%B8%8A%E7%94%B5%E8%B7%AF/cover.png 800w, https://blog.jinli.io/p/%E7%8E%B0%E4%BB%A3%E8%AE%A1%E7%AE%97%E6%9C%BA%E8%BD%AF%E7%A1%AC%E4%BB%B6%E7%AE%80%E4%BB%8B%E5%BD%93%E4%BB%A3%E7%A0%81%E9%81%87%E4%B8%8A%E7%94%B5%E8%B7%AF/cover.png 1280w"
 sizes="(min-width: 768px) 50vw, 65vw"
 data-zoom-src="https://blog.jinli.io/p/%E7%8E%B0%E4%BB%A3%E8%AE%A1%E7%AE%97%E6%9C%BA%E8%BD%AF%E7%A1%AC%E4%BB%B6%E7%AE%80%E4%BB%8B%E5%BD%93%E4%BB%A3%E7%A0%81%E9%81%87%E4%B8%8A%E7%94%B5%E8%B7%AF/cover.png"&gt;&lt;/figure&gt;

&lt;h2 class="relative group"&gt;内容概览
 &lt;div id="内容概览" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e5%86%85%e5%ae%b9%e6%a6%82%e8%a7%88" aria-label="锚点"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th style="text-align: center"&gt;&lt;figure&gt;&lt;img
 class="my-0 rounded-md"
 loading="lazy"
 decoding="async"
 fetchpriority="auto"
 alt="Cover"
 width="788"
 height="1078"
 src="https://blog.jinli.io/p/%E7%8E%B0%E4%BB%A3%E8%AE%A1%E7%AE%97%E6%9C%BA%E8%BD%AF%E7%A1%AC%E4%BB%B6%E7%AE%80%E4%BB%8B%E5%BD%93%E4%BB%A3%E7%A0%81%E9%81%87%E4%B8%8A%E7%94%B5%E8%B7%AF/cover.png"
 srcset="https://blog.jinli.io/p/%E7%8E%B0%E4%BB%A3%E8%AE%A1%E7%AE%97%E6%9C%BA%E8%BD%AF%E7%A1%AC%E4%BB%B6%E7%AE%80%E4%BB%8B%E5%BD%93%E4%BB%A3%E7%A0%81%E9%81%87%E4%B8%8A%E7%94%B5%E8%B7%AF/cover.png 800w, https://blog.jinli.io/p/%E7%8E%B0%E4%BB%A3%E8%AE%A1%E7%AE%97%E6%9C%BA%E8%BD%AF%E7%A1%AC%E4%BB%B6%E7%AE%80%E4%BB%8B%E5%BD%93%E4%BB%A3%E7%A0%81%E9%81%87%E4%B8%8A%E7%94%B5%E8%B7%AF/cover.png 1280w"
 sizes="(min-width: 768px) 50vw, 65vw"
 data-zoom-src="https://blog.jinli.io/p/%E7%8E%B0%E4%BB%A3%E8%AE%A1%E7%AE%97%E6%9C%BA%E8%BD%AF%E7%A1%AC%E4%BB%B6%E7%AE%80%E4%BB%8B%E5%BD%93%E4%BB%A3%E7%A0%81%E9%81%87%E4%B8%8A%E7%94%B5%E8%B7%AF/cover.png"&gt;&lt;/figure&gt;
&lt;/th&gt;
 &lt;th style="text-align: center"&gt;&lt;figure&gt;&lt;img
 class="my-0 rounded-md"
 loading="lazy"
 decoding="async"
 fetchpriority="auto"
 alt="Cover"
 width="781"
 height="1073"
 src="https://blog.jinli.io/p/%E7%8E%B0%E4%BB%A3%E8%AE%A1%E7%AE%97%E6%9C%BA%E8%BD%AF%E7%A1%AC%E4%BB%B6%E7%AE%80%E4%BB%8B%E5%BD%93%E4%BB%A3%E7%A0%81%E9%81%87%E4%B8%8A%E7%94%B5%E8%B7%AF/motivation.png"
 srcset="https://blog.jinli.io/p/%E7%8E%B0%E4%BB%A3%E8%AE%A1%E7%AE%97%E6%9C%BA%E8%BD%AF%E7%A1%AC%E4%BB%B6%E7%AE%80%E4%BB%8B%E5%BD%93%E4%BB%A3%E7%A0%81%E9%81%87%E4%B8%8A%E7%94%B5%E8%B7%AF/motivation.png 800w, https://blog.jinli.io/p/%E7%8E%B0%E4%BB%A3%E8%AE%A1%E7%AE%97%E6%9C%BA%E8%BD%AF%E7%A1%AC%E4%BB%B6%E7%AE%80%E4%BB%8B%E5%BD%93%E4%BB%A3%E7%A0%81%E9%81%87%E4%B8%8A%E7%94%B5%E8%B7%AF/motivation.png 1280w"
 sizes="(min-width: 768px) 50vw, 65vw"
 data-zoom-src="https://blog.jinli.io/p/%E7%8E%B0%E4%BB%A3%E8%AE%A1%E7%AE%97%E6%9C%BA%E8%BD%AF%E7%A1%AC%E4%BB%B6%E7%AE%80%E4%BB%8B%E5%BD%93%E4%BB%A3%E7%A0%81%E9%81%87%E4%B8%8A%E7%94%B5%E8%B7%AF/motivation.png"&gt;&lt;/figure&gt;
&lt;/th&gt;
 &lt;th style="text-align: center"&gt;&lt;figure&gt;&lt;img
 class="my-0 rounded-md"
 loading="lazy"
 decoding="async"
 fetchpriority="auto"
 alt="Cover"
 width="784"
 height="1078"
 src="https://blog.jinli.io/p/%E7%8E%B0%E4%BB%A3%E8%AE%A1%E7%AE%97%E6%9C%BA%E8%BD%AF%E7%A1%AC%E4%BB%B6%E7%AE%80%E4%BB%8B%E5%BD%93%E4%BB%A3%E7%A0%81%E9%81%87%E4%B8%8A%E7%94%B5%E8%B7%AF/content1.png"
 srcset="https://blog.jinli.io/p/%E7%8E%B0%E4%BB%A3%E8%AE%A1%E7%AE%97%E6%9C%BA%E8%BD%AF%E7%A1%AC%E4%BB%B6%E7%AE%80%E4%BB%8B%E5%BD%93%E4%BB%A3%E7%A0%81%E9%81%87%E4%B8%8A%E7%94%B5%E8%B7%AF/content1.png 800w, https://blog.jinli.io/p/%E7%8E%B0%E4%BB%A3%E8%AE%A1%E7%AE%97%E6%9C%BA%E8%BD%AF%E7%A1%AC%E4%BB%B6%E7%AE%80%E4%BB%8B%E5%BD%93%E4%BB%A3%E7%A0%81%E9%81%87%E4%B8%8A%E7%94%B5%E8%B7%AF/content1.png 1280w"
 sizes="(min-width: 768px) 50vw, 65vw"
 data-zoom-src="https://blog.jinli.io/p/%E7%8E%B0%E4%BB%A3%E8%AE%A1%E7%AE%97%E6%9C%BA%E8%BD%AF%E7%A1%AC%E4%BB%B6%E7%AE%80%E4%BB%8B%E5%BD%93%E4%BB%A3%E7%A0%81%E9%81%87%E4%B8%8A%E7%94%B5%E8%B7%AF/content1.png"&gt;&lt;/figure&gt;
&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;&lt;figure&gt;&lt;img
 class="my-0 rounded-md"
 loading="lazy"
 decoding="async"
 fetchpriority="auto"
 alt="Cover"
 width="786"
 height="1075"
 src="https://blog.jinli.io/p/%E7%8E%B0%E4%BB%A3%E8%AE%A1%E7%AE%97%E6%9C%BA%E8%BD%AF%E7%A1%AC%E4%BB%B6%E7%AE%80%E4%BB%8B%E5%BD%93%E4%BB%A3%E7%A0%81%E9%81%87%E4%B8%8A%E7%94%B5%E8%B7%AF/content2.png"
 srcset="https://blog.jinli.io/p/%E7%8E%B0%E4%BB%A3%E8%AE%A1%E7%AE%97%E6%9C%BA%E8%BD%AF%E7%A1%AC%E4%BB%B6%E7%AE%80%E4%BB%8B%E5%BD%93%E4%BB%A3%E7%A0%81%E9%81%87%E4%B8%8A%E7%94%B5%E8%B7%AF/content2.png 800w, https://blog.jinli.io/p/%E7%8E%B0%E4%BB%A3%E8%AE%A1%E7%AE%97%E6%9C%BA%E8%BD%AF%E7%A1%AC%E4%BB%B6%E7%AE%80%E4%BB%8B%E5%BD%93%E4%BB%A3%E7%A0%81%E9%81%87%E4%B8%8A%E7%94%B5%E8%B7%AF/content2.png 1280w"
 sizes="(min-width: 768px) 50vw, 65vw"
 data-zoom-src="https://blog.jinli.io/p/%E7%8E%B0%E4%BB%A3%E8%AE%A1%E7%AE%97%E6%9C%BA%E8%BD%AF%E7%A1%AC%E4%BB%B6%E7%AE%80%E4%BB%8B%E5%BD%93%E4%BB%A3%E7%A0%81%E9%81%87%E4%B8%8A%E7%94%B5%E8%B7%AF/content2.png"&gt;&lt;/figure&gt;
&lt;/td&gt;
 &lt;td style="text-align: center"&gt;&lt;figure&gt;&lt;img
 class="my-0 rounded-md"
 loading="lazy"
 decoding="async"
 fetchpriority="auto"
 alt="Cover"
 width="785"
 height="1078"
 src="https://blog.jinli.io/p/%E7%8E%B0%E4%BB%A3%E8%AE%A1%E7%AE%97%E6%9C%BA%E8%BD%AF%E7%A1%AC%E4%BB%B6%E7%AE%80%E4%BB%8B%E5%BD%93%E4%BB%A3%E7%A0%81%E9%81%87%E4%B8%8A%E7%94%B5%E8%B7%AF/content3.png"
 srcset="https://blog.jinli.io/p/%E7%8E%B0%E4%BB%A3%E8%AE%A1%E7%AE%97%E6%9C%BA%E8%BD%AF%E7%A1%AC%E4%BB%B6%E7%AE%80%E4%BB%8B%E5%BD%93%E4%BB%A3%E7%A0%81%E9%81%87%E4%B8%8A%E7%94%B5%E8%B7%AF/content3.png 800w, https://blog.jinli.io/p/%E7%8E%B0%E4%BB%A3%E8%AE%A1%E7%AE%97%E6%9C%BA%E8%BD%AF%E7%A1%AC%E4%BB%B6%E7%AE%80%E4%BB%8B%E5%BD%93%E4%BB%A3%E7%A0%81%E9%81%87%E4%B8%8A%E7%94%B5%E8%B7%AF/content3.png 1280w"
 sizes="(min-width: 768px) 50vw, 65vw"
 data-zoom-src="https://blog.jinli.io/p/%E7%8E%B0%E4%BB%A3%E8%AE%A1%E7%AE%97%E6%9C%BA%E8%BD%AF%E7%A1%AC%E4%BB%B6%E7%AE%80%E4%BB%8B%E5%BD%93%E4%BB%A3%E7%A0%81%E9%81%87%E4%B8%8A%E7%94%B5%E8%B7%AF/content3.png"&gt;&lt;/figure&gt;
&lt;/td&gt;
 &lt;td style="text-align: center"&gt;&lt;figure&gt;&lt;img
 class="my-0 rounded-md"
 loading="lazy"
 decoding="async"
 fetchpriority="auto"
 alt="Cover"
 width="785"
 height="1077"
 src="https://blog.jinli.io/p/%E7%8E%B0%E4%BB%A3%E8%AE%A1%E7%AE%97%E6%9C%BA%E8%BD%AF%E7%A1%AC%E4%BB%B6%E7%AE%80%E4%BB%8B%E5%BD%93%E4%BB%A3%E7%A0%81%E9%81%87%E4%B8%8A%E7%94%B5%E8%B7%AF/chapter3.png"
 srcset="https://blog.jinli.io/p/%E7%8E%B0%E4%BB%A3%E8%AE%A1%E7%AE%97%E6%9C%BA%E8%BD%AF%E7%A1%AC%E4%BB%B6%E7%AE%80%E4%BB%8B%E5%BD%93%E4%BB%A3%E7%A0%81%E9%81%87%E4%B8%8A%E7%94%B5%E8%B7%AF/chapter3.png 800w, https://blog.jinli.io/p/%E7%8E%B0%E4%BB%A3%E8%AE%A1%E7%AE%97%E6%9C%BA%E8%BD%AF%E7%A1%AC%E4%BB%B6%E7%AE%80%E4%BB%8B%E5%BD%93%E4%BB%A3%E7%A0%81%E9%81%87%E4%B8%8A%E7%94%B5%E8%B7%AF/chapter3.png 1280w"
 sizes="(min-width: 768px) 50vw, 65vw"
 data-zoom-src="https://blog.jinli.io/p/%E7%8E%B0%E4%BB%A3%E8%AE%A1%E7%AE%97%E6%9C%BA%E8%BD%AF%E7%A1%AC%E4%BB%B6%E7%AE%80%E4%BB%8B%E5%BD%93%E4%BB%A3%E7%A0%81%E9%81%87%E4%B8%8A%E7%94%B5%E8%B7%AF/chapter3.png"&gt;&lt;/figure&gt;
&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;&lt;figure&gt;&lt;img
 class="my-0 rounded-md"
 loading="lazy"
 decoding="async"
 fetchpriority="auto"
 alt="Cover"
 width="789"
 height="1078"
 src="https://blog.jinli.io/p/%E7%8E%B0%E4%BB%A3%E8%AE%A1%E7%AE%97%E6%9C%BA%E8%BD%AF%E7%A1%AC%E4%BB%B6%E7%AE%80%E4%BB%8B%E5%BD%93%E4%BB%A3%E7%A0%81%E9%81%87%E4%B8%8A%E7%94%B5%E8%B7%AF/exercise.png"
 srcset="https://blog.jinli.io/p/%E7%8E%B0%E4%BB%A3%E8%AE%A1%E7%AE%97%E6%9C%BA%E8%BD%AF%E7%A1%AC%E4%BB%B6%E7%AE%80%E4%BB%8B%E5%BD%93%E4%BB%A3%E7%A0%81%E9%81%87%E4%B8%8A%E7%94%B5%E8%B7%AF/exercise.png 800w, https://blog.jinli.io/p/%E7%8E%B0%E4%BB%A3%E8%AE%A1%E7%AE%97%E6%9C%BA%E8%BD%AF%E7%A1%AC%E4%BB%B6%E7%AE%80%E4%BB%8B%E5%BD%93%E4%BB%A3%E7%A0%81%E9%81%87%E4%B8%8A%E7%94%B5%E8%B7%AF/exercise.png 1280w"
 sizes="(min-width: 768px) 50vw, 65vw"
 data-zoom-src="https://blog.jinli.io/p/%E7%8E%B0%E4%BB%A3%E8%AE%A1%E7%AE%97%E6%9C%BA%E8%BD%AF%E7%A1%AC%E4%BB%B6%E7%AE%80%E4%BB%8B%E5%BD%93%E4%BB%A3%E7%A0%81%E9%81%87%E4%B8%8A%E7%94%B5%E8%B7%AF/exercise.png"&gt;&lt;/figure&gt;
&lt;/td&gt;
 &lt;td style="text-align: center"&gt;&lt;figure&gt;&lt;img
 class="my-0 rounded-md"
 loading="lazy"
 decoding="async"
 fetchpriority="auto"
 alt="Cover"
 width="786"
 height="1079"
 src="https://blog.jinli.io/p/%E7%8E%B0%E4%BB%A3%E8%AE%A1%E7%AE%97%E6%9C%BA%E8%BD%AF%E7%A1%AC%E4%BB%B6%E7%AE%80%E4%BB%8B%E5%BD%93%E4%BB%A3%E7%A0%81%E9%81%87%E4%B8%8A%E7%94%B5%E8%B7%AF/chap5sec2.png"
 srcset="https://blog.jinli.io/p/%E7%8E%B0%E4%BB%A3%E8%AE%A1%E7%AE%97%E6%9C%BA%E8%BD%AF%E7%A1%AC%E4%BB%B6%E7%AE%80%E4%BB%8B%E5%BD%93%E4%BB%A3%E7%A0%81%E9%81%87%E4%B8%8A%E7%94%B5%E8%B7%AF/chap5sec2.png 800w, https://blog.jinli.io/p/%E7%8E%B0%E4%BB%A3%E8%AE%A1%E7%AE%97%E6%9C%BA%E8%BD%AF%E7%A1%AC%E4%BB%B6%E7%AE%80%E4%BB%8B%E5%BD%93%E4%BB%A3%E7%A0%81%E9%81%87%E4%B8%8A%E7%94%B5%E8%B7%AF/chap5sec2.png 1280w"
 sizes="(min-width: 768px) 50vw, 65vw"
 data-zoom-src="https://blog.jinli.io/p/%E7%8E%B0%E4%BB%A3%E8%AE%A1%E7%AE%97%E6%9C%BA%E8%BD%AF%E7%A1%AC%E4%BB%B6%E7%AE%80%E4%BB%8B%E5%BD%93%E4%BB%A3%E7%A0%81%E9%81%87%E4%B8%8A%E7%94%B5%E8%B7%AF/chap5sec2.png"&gt;&lt;/figure&gt;
&lt;/td&gt;
 &lt;td style="text-align: center"&gt;&lt;figure&gt;&lt;img
 class="my-0 rounded-md"
 loading="lazy"
 decoding="async"
 fetchpriority="auto"
 alt="Cover"
 width="788"
 height="1079"
 src="https://blog.jinli.io/p/%E7%8E%B0%E4%BB%A3%E8%AE%A1%E7%AE%97%E6%9C%BA%E8%BD%AF%E7%A1%AC%E4%BB%B6%E7%AE%80%E4%BB%8B%E5%BD%93%E4%BB%A3%E7%A0%81%E9%81%87%E4%B8%8A%E7%94%B5%E8%B7%AF/extending.png"
 srcset="https://blog.jinli.io/p/%E7%8E%B0%E4%BB%A3%E8%AE%A1%E7%AE%97%E6%9C%BA%E8%BD%AF%E7%A1%AC%E4%BB%B6%E7%AE%80%E4%BB%8B%E5%BD%93%E4%BB%A3%E7%A0%81%E9%81%87%E4%B8%8A%E7%94%B5%E8%B7%AF/extending.png 800w, https://blog.jinli.io/p/%E7%8E%B0%E4%BB%A3%E8%AE%A1%E7%AE%97%E6%9C%BA%E8%BD%AF%E7%A1%AC%E4%BB%B6%E7%AE%80%E4%BB%8B%E5%BD%93%E4%BB%A3%E7%A0%81%E9%81%87%E4%B8%8A%E7%94%B5%E8%B7%AF/extending.png 1280w"
 sizes="(min-width: 768px) 50vw, 65vw"
 data-zoom-src="https://blog.jinli.io/p/%E7%8E%B0%E4%BB%A3%E8%AE%A1%E7%AE%97%E6%9C%BA%E8%BD%AF%E7%A1%AC%E4%BB%B6%E7%AE%80%E4%BB%8B%E5%BD%93%E4%BB%A3%E7%A0%81%E9%81%87%E4%B8%8A%E7%94%B5%E8%B7%AF/extending.png"&gt;&lt;/figure&gt;
&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;&lt;figure&gt;&lt;img
 class="my-0 rounded-md"
 loading="lazy"
 decoding="async"
 fetchpriority="auto"
 alt="Cover"
 width="788"
 height="1078"
 src="https://blog.jinli.io/p/%E7%8E%B0%E4%BB%A3%E8%AE%A1%E7%AE%97%E6%9C%BA%E8%BD%AF%E7%A1%AC%E4%BB%B6%E7%AE%80%E4%BB%8B%E5%BD%93%E4%BB%A3%E7%A0%81%E9%81%87%E4%B8%8A%E7%94%B5%E8%B7%AF/example.png"
 srcset="https://blog.jinli.io/p/%E7%8E%B0%E4%BB%A3%E8%AE%A1%E7%AE%97%E6%9C%BA%E8%BD%AF%E7%A1%AC%E4%BB%B6%E7%AE%80%E4%BB%8B%E5%BD%93%E4%BB%A3%E7%A0%81%E9%81%87%E4%B8%8A%E7%94%B5%E8%B7%AF/example.png 800w, https://blog.jinli.io/p/%E7%8E%B0%E4%BB%A3%E8%AE%A1%E7%AE%97%E6%9C%BA%E8%BD%AF%E7%A1%AC%E4%BB%B6%E7%AE%80%E4%BB%8B%E5%BD%93%E4%BB%A3%E7%A0%81%E9%81%87%E4%B8%8A%E7%94%B5%E8%B7%AF/example.png 1280w"
 sizes="(min-width: 768px) 50vw, 65vw"
 data-zoom-src="https://blog.jinli.io/p/%E7%8E%B0%E4%BB%A3%E8%AE%A1%E7%AE%97%E6%9C%BA%E8%BD%AF%E7%A1%AC%E4%BB%B6%E7%AE%80%E4%BB%8B%E5%BD%93%E4%BB%A3%E7%A0%81%E9%81%87%E4%B8%8A%E7%94%B5%E8%B7%AF/example.png"&gt;&lt;/figure&gt;
&lt;/td&gt;
 &lt;td style="text-align: center"&gt;&lt;figure&gt;&lt;img
 class="my-0 rounded-md"
 loading="lazy"
 decoding="async"
 fetchpriority="auto"
 alt="Cover"
 width="786"
 height="1081"
 src="https://blog.jinli.io/p/%E7%8E%B0%E4%BB%A3%E8%AE%A1%E7%AE%97%E6%9C%BA%E8%BD%AF%E7%A1%AC%E4%BB%B6%E7%AE%80%E4%BB%8B%E5%BD%93%E4%BB%A3%E7%A0%81%E9%81%87%E4%B8%8A%E7%94%B5%E8%B7%AF/appendixd.png"
 srcset="https://blog.jinli.io/p/%E7%8E%B0%E4%BB%A3%E8%AE%A1%E7%AE%97%E6%9C%BA%E8%BD%AF%E7%A1%AC%E4%BB%B6%E7%AE%80%E4%BB%8B%E5%BD%93%E4%BB%A3%E7%A0%81%E9%81%87%E4%B8%8A%E7%94%B5%E8%B7%AF/appendixd.png 800w, https://blog.jinli.io/p/%E7%8E%B0%E4%BB%A3%E8%AE%A1%E7%AE%97%E6%9C%BA%E8%BD%AF%E7%A1%AC%E4%BB%B6%E7%AE%80%E4%BB%8B%E5%BD%93%E4%BB%A3%E7%A0%81%E9%81%87%E4%B8%8A%E7%94%B5%E8%B7%AF/appendixd.png 1280w"
 sizes="(min-width: 768px) 50vw, 65vw"
 data-zoom-src="https://blog.jinli.io/p/%E7%8E%B0%E4%BB%A3%E8%AE%A1%E7%AE%97%E6%9C%BA%E8%BD%AF%E7%A1%AC%E4%BB%B6%E7%AE%80%E4%BB%8B%E5%BD%93%E4%BB%A3%E7%A0%81%E9%81%87%E4%B8%8A%E7%94%B5%E8%B7%AF/appendixd.png"&gt;&lt;/figure&gt;
&lt;/td&gt;
 &lt;td style="text-align: center"&gt;&lt;figure&gt;&lt;img
 class="my-0 rounded-md"
 loading="lazy"
 decoding="async"
 fetchpriority="auto"
 alt="Cover"
 width="786"
 height="1081"
 src="https://blog.jinli.io/p/%E7%8E%B0%E4%BB%A3%E8%AE%A1%E7%AE%97%E6%9C%BA%E8%BD%AF%E7%A1%AC%E4%BB%B6%E7%AE%80%E4%BB%8B%E5%BD%93%E4%BB%A3%E7%A0%81%E9%81%87%E4%B8%8A%E7%94%B5%E8%B7%AF/index1.png"
 srcset="https://blog.jinli.io/p/%E7%8E%B0%E4%BB%A3%E8%AE%A1%E7%AE%97%E6%9C%BA%E8%BD%AF%E7%A1%AC%E4%BB%B6%E7%AE%80%E4%BB%8B%E5%BD%93%E4%BB%A3%E7%A0%81%E9%81%87%E4%B8%8A%E7%94%B5%E8%B7%AF/index1.png 800w, https://blog.jinli.io/p/%E7%8E%B0%E4%BB%A3%E8%AE%A1%E7%AE%97%E6%9C%BA%E8%BD%AF%E7%A1%AC%E4%BB%B6%E7%AE%80%E4%BB%8B%E5%BD%93%E4%BB%A3%E7%A0%81%E9%81%87%E4%B8%8A%E7%94%B5%E8%B7%AF/index1.png 1280w"
 sizes="(min-width: 768px) 50vw, 65vw"
 data-zoom-src="https://blog.jinli.io/p/%E7%8E%B0%E4%BB%A3%E8%AE%A1%E7%AE%97%E6%9C%BA%E8%BD%AF%E7%A1%AC%E4%BB%B6%E7%AE%80%E4%BB%8B%E5%BD%93%E4%BB%A3%E7%A0%81%E9%81%87%E4%B8%8A%E7%94%B5%E8%B7%AF/index1.png"&gt;&lt;/figure&gt;
&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;

&lt;h2 class="relative group"&gt;目录
 &lt;div id="目录" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e7%9b%ae%e5%bd%95" aria-label="锚点"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;计算机简介&lt;/p&gt;</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://blog.jinli.io/p/%E7%8E%B0%E4%BB%A3%E8%AE%A1%E7%AE%97%E6%9C%BA%E8%BD%AF%E7%A1%AC%E4%BB%B6%E7%AE%80%E4%BB%8B%E5%BD%93%E4%BB%A3%E7%A0%81%E9%81%87%E4%B8%8A%E7%94%B5%E8%B7%AF/cover.png"/></item><item><title>MatLab自定义绘图配色方案库jlcolor</title><link>https://blog.jinli.io/p/matlab%E8%87%AA%E5%AE%9A%E4%B9%89%E7%BB%98%E5%9B%BE%E9%85%8D%E8%89%B2%E6%96%B9%E6%A1%88%E5%BA%93jlcolor/</link><pubDate>Fri, 22 Jul 2022 00:00:00 +0000</pubDate><guid>https://blog.jinli.io/p/matlab%E8%87%AA%E5%AE%9A%E4%B9%89%E7%BB%98%E5%9B%BE%E9%85%8D%E8%89%B2%E6%96%B9%E6%A1%88%E5%BA%93jlcolor/</guid><description>&lt;!-- more --&gt;

&lt;h2 class="relative group"&gt;缘起
 &lt;div id="缘起" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e7%bc%98%e8%b5%b7" aria-label="锚点"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;在使用MatLab绘图时有时会对MatLab默认的配色方案不太满意，平时遇到好看的配色方案也会想要保存下来自己用。但是之前保存的MatLab使用笔记过于凌乱，想要用某个配色时不太好找，所以就有了自制一个配色方案库的想法，以便可以随时保存好看的配色方案，在绘图时也可以很方便地预览和调用。&lt;/p&gt;</description></item><item><title>Windows下的原生Linux子系统WSL的安装与配置</title><link>https://blog.jinli.io/p/windows%E4%B8%8B%E7%9A%84%E5%8E%9F%E7%94%9Flinux%E5%AD%90%E7%B3%BB%E7%BB%9Fwsl%E7%9A%84%E5%AE%89%E8%A3%85%E4%B8%8E%E9%85%8D%E7%BD%AE/</link><pubDate>Fri, 01 Apr 2022 00:00:00 +0000</pubDate><guid>https://blog.jinli.io/p/windows%E4%B8%8B%E7%9A%84%E5%8E%9F%E7%94%9Flinux%E5%AD%90%E7%B3%BB%E7%BB%9Fwsl%E7%9A%84%E5%AE%89%E8%A3%85%E4%B8%8E%E9%85%8D%E7%BD%AE/</guid><description>&lt;!-- more --&gt;

&lt;h2 class="relative group"&gt;简介
 &lt;div id="简介" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e7%ae%80%e4%bb%8b" aria-label="锚点"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;Windows的Linux子系统（Windows Subsystem for Linux），简称WSL，是微软公司开发的一个可以在Windows 10或Windows 11上运行原生Linux二进制程序的兼容层。借助WSL，Windows用户不再需要安装Linux系统就可以使用Linux上的工具和程序，而且可以在WSL中直接使用Windows系统的文件系统，用户在两个系统间的切换也更加流畅和方便。&lt;/p&gt;</description></item><item><title>个人网站的建立过程（四）：网站的搜索引擎优化（SEO）</title><link>https://blog.jinli.io/p/%E4%B8%AA%E4%BA%BA%E7%BD%91%E7%AB%99%E7%9A%84%E5%BB%BA%E7%AB%8B%E8%BF%87%E7%A8%8B%E5%9B%9B%E7%BD%91%E7%AB%99%E7%9A%84%E6%90%9C%E7%B4%A2%E5%BC%95%E6%93%8E%E4%BC%98%E5%8C%96seo/</link><pubDate>Thu, 24 Feb 2022 00:00:00 +0000</pubDate><guid>https://blog.jinli.io/p/%E4%B8%AA%E4%BA%BA%E7%BD%91%E7%AB%99%E7%9A%84%E5%BB%BA%E7%AB%8B%E8%BF%87%E7%A8%8B%E5%9B%9B%E7%BD%91%E7%AB%99%E7%9A%84%E6%90%9C%E7%B4%A2%E5%BC%95%E6%93%8E%E4%BC%98%E5%8C%96seo/</guid><description>&lt;p&gt;本网站使用Hugo搭建，而且使用的stack主题支持自动生成基于Open Graph协议（OG协议）的标签，此处记录一下如何在Hugo搭建的网站中做搜索引擎优化（SEO）。&lt;/p&gt;</description></item><item><title>个人网站的建立过程（三）：Hugo主题stack的使用与优化</title><link>https://blog.jinli.io/p/%E4%B8%AA%E4%BA%BA%E7%BD%91%E7%AB%99%E7%9A%84%E5%BB%BA%E7%AB%8B%E8%BF%87%E7%A8%8B%E4%B8%89hugo%E4%B8%BB%E9%A2%98stack%E7%9A%84%E4%BD%BF%E7%94%A8%E4%B8%8E%E4%BC%98%E5%8C%96/</link><pubDate>Tue, 22 Feb 2022 00:00:00 +0000</pubDate><guid>https://blog.jinli.io/p/%E4%B8%AA%E4%BA%BA%E7%BD%91%E7%AB%99%E7%9A%84%E5%BB%BA%E7%AB%8B%E8%BF%87%E7%A8%8B%E4%B8%89hugo%E4%B8%BB%E9%A2%98stack%E7%9A%84%E4%BD%BF%E7%94%A8%E4%B8%8E%E4%BC%98%E5%8C%96/</guid><description>&lt;p&gt;本网站使用Hugo主题stack，此处记录一下如何使用不同的Hugo主题，stack主题的特点，以及对stack主题做的优化。&lt;/p&gt;

&lt;h2 class="relative group"&gt;缘起
 &lt;div id="缘起" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e7%bc%98%e8%b5%b7" aria-label="锚点"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;最初建立个人网站时使用了&lt;a href="https://hexo.io" target="_blank" rel="noreferrer"&gt;Hexo框架&lt;/a&gt;，也尝试了几个Hexo框架的主题，包括&lt;a href="https://github.com/litten/hexo-theme-yilia" target="_blank" rel="noreferrer"&gt;hexo-theme-yilia&lt;/a&gt;、&lt;a href="https://github.com/JoeyBling/hexo-theme-yilia-plus" target="_blank" rel="noreferrer"&gt;hexo-theme-yilia-plus&lt;/a&gt;、&lt;a href="https://github.com/theme-next/hexo-theme-next" target="_blank" rel="noreferrer"&gt;hexo-theme-next&lt;/a&gt;。也使用过一个用户名为“leirock”的GitHub用户基于hexo-theme-next创建的一个主题&lt;a href="https://leirock.github.io/blog/" target="_blank" rel="noreferrer"&gt;https://leirock.github.io/blog/&lt;/a&gt;，这个主题是我目前为止最喜欢的一个主题，其GitHub仓库地址为&lt;a href="https://github.com/leirock/blog" target="_blank" rel="noreferrer"&gt;https://github.com/leirock/blog&lt;/a&gt;，效果如下：&lt;/p&gt;</description></item><item><title>个人网站的建立过程（二）：使用Hugo框架搭建个人网站</title><link>https://blog.jinli.io/p/%E4%B8%AA%E4%BA%BA%E7%BD%91%E7%AB%99%E7%9A%84%E5%BB%BA%E7%AB%8B%E8%BF%87%E7%A8%8B%E4%BA%8C%E4%BD%BF%E7%94%A8hugo%E6%A1%86%E6%9E%B6%E6%90%AD%E5%BB%BA%E4%B8%AA%E4%BA%BA%E7%BD%91%E7%AB%99/</link><pubDate>Fri, 17 Dec 2021 00:00:00 +0000</pubDate><guid>https://blog.jinli.io/p/%E4%B8%AA%E4%BA%BA%E7%BD%91%E7%AB%99%E7%9A%84%E5%BB%BA%E7%AB%8B%E8%BF%87%E7%A8%8B%E4%BA%8C%E4%BD%BF%E7%94%A8hugo%E6%A1%86%E6%9E%B6%E6%90%AD%E5%BB%BA%E4%B8%AA%E4%BA%BA%E7%BD%91%E7%AB%99/</guid><description>&lt;p&gt;本网站运行在我的私人电脑上，此处记录一下本网站的建立过程。&lt;/p&gt;
&lt;!-- more --&gt;

&lt;h2 class="relative group"&gt;缘起
 &lt;div id="缘起" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e7%bc%98%e8%b5%b7" aria-label="锚点"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;在购买了域名之后就一直想用这个域名搭建一个个人网站。刚开始曾尝试过使用&lt;a href="https://hexo.io" target="_blank" rel="noreferrer"&gt;Hexo&lt;/a&gt;作为静态网站框架，但在使用过程中发现由于Hexo中并没有对多语种的原生支持，只能使用一些与国际化有关的插件（&lt;code&gt;i18n&lt;/code&gt;），因此在我想尝试搭建一个中英双语的网站时遇到了数不清的问题，最终决定放弃，并转投&lt;a href="https://gohugo.io" target="_blank" rel="noreferrer"&gt;Hugo&lt;/a&gt;框架。&lt;/p&gt;</description></item><item><title>个人网站的建立过程（一）：购买个人域名并配置动态域名解析</title><link>https://blog.jinli.io/p/%E4%B8%AA%E4%BA%BA%E7%BD%91%E7%AB%99%E7%9A%84%E5%BB%BA%E7%AB%8B%E8%BF%87%E7%A8%8B%E4%B8%80%E8%B4%AD%E4%B9%B0%E4%B8%AA%E4%BA%BA%E5%9F%9F%E5%90%8D%E5%B9%B6%E9%85%8D%E7%BD%AE%E5%8A%A8%E6%80%81%E5%9F%9F%E5%90%8D%E8%A7%A3%E6%9E%90/</link><pubDate>Sun, 15 Aug 2021 00:00:00 +0000</pubDate><guid>https://blog.jinli.io/p/%E4%B8%AA%E4%BA%BA%E7%BD%91%E7%AB%99%E7%9A%84%E5%BB%BA%E7%AB%8B%E8%BF%87%E7%A8%8B%E4%B8%80%E8%B4%AD%E4%B9%B0%E4%B8%AA%E4%BA%BA%E5%9F%9F%E5%90%8D%E5%B9%B6%E9%85%8D%E7%BD%AE%E5%8A%A8%E6%80%81%E5%9F%9F%E5%90%8D%E8%A7%A3%E6%9E%90/</guid><description>&lt;p&gt;本网站使用我的个人域名，此处记录一下域名的购买和配置过程，包含动态域名解析（DDNS）。&lt;/p&gt;
&lt;!-- more --&gt;

&lt;h2 class="relative group"&gt;&lt;strong&gt;缘起&lt;/strong&gt;
 &lt;div id="缘起" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e7%bc%98%e8%b5%b7" aria-label="锚点"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;由于工作原因需要经常使用&lt;code&gt;ssh&lt;/code&gt;登录家里的和办公室的个人电脑，但是这些电脑基本都没有固定的IP地址，所以当IP地址发生变动之后，往往不能及时连接到电脑上。&lt;/p&gt;</description></item></channel></rss>