<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Doracoin</title><description>Doraoins Blog</description><link>https://blog.doracoin.cc/</link><language>en</language><item><title>Codex 登录失败排查：Windows 保留端口与 os error 10013</title><link>https://blog.doracoin.cc/posts/2026/2026-09-11-codex%E7%99%BB%E5%BD%95%E5%A4%B1%E8%B4%A5%E4%B8%8Ewindows%E4%BF%9D%E7%95%99%E7%AB%AF%E5%8F%A3/</link><guid isPermaLink="true">https://blog.doracoin.cc/posts/2026/2026-09-11-codex%E7%99%BB%E5%BD%95%E5%A4%B1%E8%B4%A5%E4%B8%8Ewindows%E4%BF%9D%E7%95%99%E7%AB%AF%E5%8F%A3/</guid><description>记录一次 Codex Windows 客户端登录失败：1455 端口落入系统排除范围，临时停止 WinNAT 后完成登录。梳理排查过程，以及为什么 netstat 查不到占用也不代表端口可用。</description><pubDate>Sun, 13 Sep 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;在 Windows 上登录 Codex 客户端时，我遇到了一个看起来像账号问题、实际卡在本地端口上的故障：点击“继续登录”，客户端提示无法启动登录服务器，错误码是 &lt;code&gt;os error 10013&lt;/code&gt;。&lt;/p&gt;
&lt;p&gt;排查发现，登录需要的 &lt;code&gt;1455&lt;/code&gt; 端口落在 Windows 的排除端口范围 &lt;code&gt;1359–1458&lt;/code&gt; 内。临时停止 WinNAT 后，登录成功；随后重新启动 WinNAT，客户端仍能正常使用。&lt;/p&gt;
&lt;p&gt;这次排障最值得记住的是：&lt;strong&gt;没有进程监听某个端口，并不意味着应用就能绑定它。&lt;/strong&gt;&lt;/p&gt;
&lt;h2&gt;问题现象：登录服务器还没启动就失败了&lt;/h2&gt;
&lt;p&gt;当时的完整报错是：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;登录失败：failed to start login server: 以一种访问权限不允许的方式做了一个访问套接字的尝试。 (os error 10013)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;报错中有两条线索：&lt;code&gt;failed to start login server&lt;/code&gt; 指向本地登录服务启动失败，&lt;code&gt;10013&lt;/code&gt; 则是 Windows Winsock 的 &lt;code&gt;WSAEACCES&lt;/code&gt;，表示套接字访问被拒绝。&lt;/p&gt;
&lt;p&gt;排查重点因此落在本地网络绑定环节。仅凭这条报错，还不能判断账号或远端服务是否存在其他问题。&lt;/p&gt;
&lt;p&gt;本次涉及的本地地址是：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;127.0.0.1:1455
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;浏览器登录需要把认证结果交回本地客户端，因此客户端会先启动一个回调服务。OpenAI 的认证文档也说明，Codex CLI 的浏览器登录使用本地回调，默认地址为 &lt;code&gt;localhost:1455&lt;/code&gt;。这能解释此类流程对本地端口的依赖；其他客户端或版本应以实际日志为准。&lt;a href=&quot;https://learn.chatgpt.com/docs/auth#fallback-forward-the-localhost-callback-over-ssh&quot;&gt;OpenAI 认证文档&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;本文记录的是这次 Codex Windows 客户端的故障，不把它泛化为所有 ChatGPT 客户端的登录机制。&lt;/p&gt;
&lt;h2&gt;排查过程：从监听进程查到系统排除范围&lt;/h2&gt;
&lt;h3&gt;先检查端口是否被占用&lt;/h3&gt;
&lt;p&gt;最直接的检查方式是：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;netstat -ano | findstr :1455
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;需要留意输出中的本地地址、状态和 PID：文本匹配到 &lt;code&gt;1455&lt;/code&gt;，不一定代表本地 &lt;code&gt;1455&lt;/code&gt; 正在监听。PowerShell 也可以直接筛选监听状态：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Get-NetTCPConnection -LocalPort 1455 -State Listen -ErrorAction SilentlyContinue
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;如果查到监听进程，可以通过实际 PID 确认程序身份，再决定如何处理：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# 将 12345 替换为查询到的实际 PID
Get-Process -Id 12345
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;本次没有查到监听 &lt;code&gt;1455&lt;/code&gt; 的进程，但客户端依然无法启动登录服务。这说明，检查不能停在“哪个程序占用了端口”这一层。&lt;/p&gt;
&lt;h3&gt;再检查 Windows 排除端口范围&lt;/h3&gt;
&lt;p&gt;在管理员 PowerShell 中查看 IPv4 TCP 排除范围：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;netsh interface ipv4 show excludedportrange protocol=tcp
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;本次输出中包含：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;开始端口    结束端口
----------  ----------
1359        1458
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;code&gt;1455&lt;/code&gt; 位于这个区间内。这是比“机器上装过虚拟化软件”更直接的线索：目标端口确实处于系统排除范围。&lt;/p&gt;
&lt;p&gt;如果应用监听 IPv6 地址，还需要检查对应范围；IPv4 和 IPv6 的结果不能相互替代：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;netsh interface ipv6 show excludedportrange protocol=tcp
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;code&gt;netstat&lt;/code&gt; 展示连接和监听状态，而排除范围属于另一类系统网络状态。因此，“没有监听进程”和“端口受系统限制”可以同时成立。&lt;/p&gt;
&lt;h3&gt;错误码是线索，不能单独定因&lt;/h3&gt;
&lt;p&gt;这两个错误码需要区分：&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;错误码&lt;/th&gt;
&lt;th&gt;名称&lt;/th&gt;
&lt;th&gt;排查含义&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;10048&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;WSAEADDRINUSE&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;地址已在使用，优先检查绑定冲突&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;10013&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;WSAEACCES&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;访问被拒绝，需要结合权限、绑定方式和系统端口状态判断&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;不能把它们机械理解成“10048 就是进程占用，10013 就是系统保留”。微软文档指出，其他应用、服务或内核驱动独占绑定同一地址，也可能触发 &lt;code&gt;10013&lt;/code&gt;。&lt;a href=&quot;https://learn.microsoft.com/en-us/windows/win32/winsock/windows-sockets-error-codes-2&quot;&gt;Microsoft Winsock 错误码说明&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;本次判断依赖的是一组证据：没有发现监听进程、目标端口落入排除范围，以及后续停止 WinNAT 后登录恢复。&lt;/p&gt;
&lt;h2&gt;本次处理：暂时停止 WinNAT，完成登录后恢复&lt;/h2&gt;
&lt;p&gt;WinNAT 与 Windows 的 NAT 网络功能有关。停止它可能影响依赖相关网络的虚拟机、容器或其他任务，因此操作前应先确认这些任务可以暂时中断。&lt;/p&gt;
&lt;p&gt;以下步骤在本次排障中有效，不是所有 &lt;code&gt;10013&lt;/code&gt; 错误的通用修复方法。&lt;/p&gt;
&lt;h3&gt;1. 停止 WinNAT&lt;/h3&gt;
&lt;p&gt;在管理员 PowerShell 中执行：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;net stop winnat
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;确认服务成功停止后，再尝试登录。如果停止失败，不应假设端口限制已经解除。&lt;/p&gt;
&lt;h3&gt;2. 重新发起客户端登录&lt;/h3&gt;
&lt;p&gt;重新打开客户端的登录流程，点击“继续登录”，随后在浏览器中完成认证。&lt;/p&gt;
&lt;p&gt;本次操作后，本地登录服务器成功启动，客户端也成功获得登录状态。&lt;/p&gt;
&lt;h3&gt;3. 恢复 WinNAT&lt;/h3&gt;
&lt;p&gt;登录完成后执行：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;net start winnat
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;如果前面成功停止了服务，即使登录没有成功，也应恢复服务。恢复后可以检查状态，并确认原先使用的虚拟机或容器网络正常：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Get-Service -Name winnat
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;本次恢复 WinNAT 后，Codex 仍然能够正常使用。&lt;/p&gt;
&lt;h2&gt;为什么有效，以及这个结论的边界&lt;/h2&gt;
&lt;p&gt;本次观察支持的解释是：WinNAT 相关的网络状态影响了目标端口的可绑定性；停止服务后，这个阻碍暂时消失，使本地登录回调服务能够启动。&lt;/p&gt;
&lt;p&gt;不过，现有记录没有追踪该排除范围究竟由哪个组件创建，也没有记录停止前后的完整端口范围变化。因此，不宜断言一定是 HNS、WSL2、Docker 或 Podman 中的某一个组件造成了故障。&lt;/p&gt;
&lt;p&gt;简化后的登录过程是：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;客户端启动本地回调服务
        ↓
浏览器完成账号认证
        ↓
认证结果回到本地客户端
        ↓
客户端保存并使用登录状态
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;本地回调服务承担登录阶段的工作。OpenAI 文档说明，Codex 会缓存认证信息并在使用期间刷新令牌，这解释了为什么恢复网络服务后，已经建立的登录状态仍可继续使用。&lt;a href=&quot;https://learn.chatgpt.com/docs/auth#login-caching&quot;&gt;OpenAI 登录缓存说明&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;这次处理只验证了“完成当前登录”的效果。如果以后退出账号、凭据失效或需要重新认证，且端口冲突仍然存在，问题可能再次出现。这是临时绕过，不能据此宣称已经永久修复。&lt;/p&gt;
&lt;h2&gt;下次遇到类似问题，如何少走弯路&lt;/h2&gt;
&lt;p&gt;可以按下面的顺序缩小范围：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;确认失败环节和端口。&lt;/strong&gt; 从报错或日志中确认是否是本地服务绑定失败，不要预设所有客户端都使用 &lt;code&gt;1455&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;检查监听进程。&lt;/strong&gt; 如果有结果，确认本地地址、状态和进程身份。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;检查对应协议的排除范围。&lt;/strong&gt; 无监听结果时，也要考虑系统对端口使用的限制。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;根据证据选择验证动作。&lt;/strong&gt; 只有在相关证据指向 WinNAT、且能接受网络中断时，才考虑本文的临时处理。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;恢复服务并复查。&lt;/strong&gt; 同时验证客户端登录结果和原有网络任务，保留操作前后的记录。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;如果需要继续调查系统端口策略，可以先做只读检查：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;netsh int ipv4 show dynamicport tcp
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;动态端口范围与排除端口范围不是同一个概念，不能看到端口冲突就直接重设动态端口策略。本次没有通过修改全局端口范围解决问题，也没有验证这类修改的长期效果。&lt;/p&gt;
&lt;p&gt;另外，如果实际使用的是 Codex CLI，官方文档提供了设备码登录方式，用于本地回调受阻等场景；能否使用取决于账号或工作区设置。这不是本次执行的步骤，也不代表桌面客户端一定提供相同入口。&lt;a href=&quot;https://learn.chatgpt.com/docs/auth#preferred-device-code-authentication-beta&quot;&gt;OpenAI 设备码登录说明&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;留下的经验：把端口可用性拆成两层检查&lt;/h2&gt;
&lt;p&gt;这次故障暴露了一个容易忽略的区别：&lt;strong&gt;进程有没有使用端口，与系统是否允许应用使用端口，是两个问题。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;在带有虚拟网络的 Windows 开发环境中，仅查看监听进程往往不足以解释所有绑定失败。把错误码、监听状态、排除范围和实际操作结果放在一起，才能建立比较可靠的判断。&lt;/p&gt;
&lt;p&gt;对这次案例而言，最有复用价值的是在 &lt;code&gt;netstat&lt;/code&gt; 没有结果时，知道下一步该检查什么。&lt;/p&gt;
</content:encoded></item><item><title>从 Hexo 迁移到 Astro</title><link>https://blog.doracoin.cc/posts/2026/2026-08-25-%E4%BB%8Ehexo%E8%BF%81%E7%A7%BB%E5%88%B0-astro/</link><guid isPermaLink="true">https://blog.doracoin.cc/posts/2026/2026-08-25-%E4%BB%8Ehexo%E8%BF%81%E7%A7%BB%E5%88%B0-astro/</guid><pubDate>Tue, 25 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;心心念念 Astro 好久了，它的渲染性能非常出色。&lt;/p&gt;
&lt;p&gt;&amp;lt;!--more--&amp;gt;&lt;/p&gt;
&lt;p&gt;其实也不全是为了加载性能，主要还是因为我自己爱折腾。&lt;/p&gt;
&lt;h2&gt;1. Astro&lt;/h2&gt;
&lt;p&gt;Astro 这个框架，我最开始关注它的时候是无意间看到了逛到一个博主用了它，还配了个美美的主题，页面响应超快的，后来去了解了一下，才发现它的策略是减少JavaScript的输出，但该有的组件化也有，性能好功能又够用。&lt;/p&gt;
&lt;p&gt;然后它就成为我想折腾玩的待选了。&lt;/p&gt;
&lt;h2&gt;2. 挑选主题&lt;/h2&gt;
&lt;p&gt;官方网站有&lt;a href=&quot;https://astro.build/themes/1/?search=&amp;amp;categories%5B%5D=blog&quot;&gt;主题筛选&lt;/a&gt;页面，但我的主要筛选方式是逛&lt;a href=&quot;https://github.com/topics/astro-theme&quot;&gt;GithubTopic&lt;/a&gt;，按Star数排序。&lt;/p&gt;
&lt;p&gt;前前后后在官网和Github看了不少 Astro 博客主题，最后发现最喜欢的还是&lt;a href=&quot;https://github.com/saicaca/fuwari&quot;&gt;saicaca/fuwari&lt;/a&gt;，理由也不复杂：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;风格设计现代化，布局整洁不花哨；&lt;/li&gt;
&lt;li&gt;页面结构清楚，后面改起来不算麻烦；&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;3. fuwari 主题的创建和使用方式&lt;/h2&gt;
&lt;p&gt;fuwari 的用法其实不复杂，基本就是一个标准的 Astro 项目流程。&lt;/p&gt;
&lt;p&gt;大概就是这几步：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;克隆项目；&lt;/li&gt;
&lt;li&gt;安装依赖；&lt;/li&gt;
&lt;li&gt;启动本地预览；&lt;/li&gt;
&lt;li&gt;按自己的需要改站点配置 &lt;code&gt;src/config.ts&lt;/code&gt;；&lt;/li&gt;
&lt;li&gt;直接往 &lt;code&gt;src/content/posts&lt;/code&gt; 里放文章。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;如果只看实际使用体验，它更像是一个“拿来就能改”的博客模板，不太像那种需要先研究半天架构的项目，起码改配置的过程比我当年折腾Hexo的时候快多了。&lt;/p&gt;
&lt;h2&gt;4. Hexo 内容迁移到 Astro 要做什么&lt;/h2&gt;
&lt;p&gt;这部分其实最简单，没有用到什么复杂的转换脚本，做法很直接：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;先把 Hexo 里 &lt;code&gt;_posts&lt;/code&gt; 文件夹的文章，直接复制到新项目的 &lt;code&gt;src/content/posts&lt;/code&gt; 下面；&lt;/li&gt;
&lt;li&gt;然后按 fuwari 的标准整理了一下 frontmatter，以前的字段有一部分不符合新主题的设定；&lt;/li&gt;
&lt;li&gt;检查一下图片路径有没有失效&lt;/li&gt;
&lt;li&gt;再根据 Astro 这边的格式稍微调一调，基本就能正常用了。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;我这次做得比较简洁，没有大改旧文章内容，先把站点迁过去，让内容能正常显示，以后再慢慢整理。&lt;/p&gt;
&lt;p&gt;迁移完之后，最明显的感觉就是：新玩具就是好玩！&lt;/p&gt;
&lt;p&gt;这次迁移对我来说，更像是把博客重新整理了一遍，至少以后，写点东西这件事，会比以前更有乐趣。&lt;/p&gt;
</content:encoded></item><item><title>MinIO“最后可用版本”下载链接</title><link>https://blog.doracoin.cc/posts/2026/2026-03-03-minio%E6%9C%80%E5%90%8E%E5%8F%AF%E7%94%A8%E7%89%88%E6%9C%AC%E4%B8%8B%E8%BD%BD%E9%93%BE%E6%8E%A5/</link><guid isPermaLink="true">https://blog.doracoin.cc/posts/2026/2026-03-03-minio%E6%9C%80%E5%90%8E%E5%8F%AF%E7%94%A8%E7%89%88%E6%9C%AC%E4%B8%8B%E8%BD%BD%E9%93%BE%E6%8E%A5/</guid><pubDate>Tue, 03 Mar 2026 10:59:40 GMT</pubDate><content:encoded>&lt;p&gt;“最后可用版本”还是有不少使用场景的
&amp;lt;!--more--&amp;gt;&lt;/p&gt;
&lt;p&gt;先给出官网下载链接：https://dl.min.io/server/minio/release/&lt;/p&gt;
&lt;h2&gt;1. 哪些架构值得备份？&lt;/h2&gt;
&lt;p&gt;官网的归档页面提供了不同系统架构的版本，来整理一下哪些系统架构值得备份&lt;/p&gt;
&lt;h4&gt;✅ &lt;strong&gt;强烈推荐备份（主流、常用）&lt;/strong&gt;&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;linux-amd64&lt;/strong&gt;：几乎所有的 Linux 服务器（云主机、VPS、物理机）都使用此架构。必须备份。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;windows-amd64&lt;/strong&gt;：如果你有 Windows 服务器或开发环境，Windows 版非常必要。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;darwin-amd64&lt;/strong&gt; 与 &lt;strong&gt;darwin-arm64&lt;/strong&gt;：如果你使用 macOS 进行开发或测试，建议两者都保留（覆盖 Intel 和 Apple Silicon Mac）。如果只能选一个，现在新 Mac 都是 ARM，但很多旧 Mac 仍是 Intel，因此有条件可都存。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;linux-arm64&lt;/strong&gt;：随着 ARM 服务器和树莓派的普及，此架构越来越重要，值得备份。&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;⚠️ &lt;strong&gt;按需备份（特定硬件）&lt;/strong&gt;&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;linux-ppc64le&lt;/strong&gt;：仅当你拥有 IBM Power 服务器时才需要。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;linux-s390x&lt;/strong&gt;：仅当你使用 IBM Z 大型机时才需要。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;linux-mips64&lt;/strong&gt;：仅当你维护基于 MIPS 的老旧设备时才需要。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;linux-arm&lt;/strong&gt;：仅当你仍在使用 32 位 ARM 设备（如旧版树莓派）时才需要。现代 64 位 ARM 设备可运行 arm64 版本，兼容性更好。&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;🗑 &lt;strong&gt;可以不备份（除非明确有需求）&lt;/strong&gt;&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;如果你没有上述特定硬件，则 &lt;strong&gt;linux-ppc64le&lt;/strong&gt;、&lt;strong&gt;linux-s390x&lt;/strong&gt;、&lt;strong&gt;linux-mips64&lt;/strong&gt; 完全不需要备份。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;linux-arm&lt;/strong&gt;（32位）也逐渐被淘汰，除非你有明确的使用场景。&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;h2&gt;官网下载页面&lt;/h2&gt;
&lt;h3&gt;Windows&lt;/h3&gt;
&lt;p&gt;https://dl.min.io/server/minio/release/windows-amd64/archive/&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;a href=&quot;https://dl.min.io/server/minio/release/windows-amd64/archive/minio.RELEASE.2025-04-22T22-12-26Z.sha256sum&quot;&gt;minio.RELEASE.2025-04-22T22-12-26Z.sha256sum&lt;/a&gt; &lt;a href=&quot;https://dl.doracoin.cc/minio/server/minio/release/windows-amd64/archive/minio.RELEASE.2025-04-22T22-12-26Z.sha256sum&quot;&gt;Mirror&lt;/a&gt;&lt;/th&gt;
&lt;th&gt;100 B&lt;/th&gt;
&lt;th&gt;2025-04-22 22:20&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;https://dl.min.io/server/minio/release/windows-amd64/archive/minio.RELEASE.2025-04-22T22-12-26Z.shasum&quot;&gt;minio.RELEASE.2025-04-22T22-12-26Z.shasum&lt;/a&gt; &lt;a href=&quot;https://dl.doracoin.cc/minio/server/minio/release/windows-amd64/archive/minio.RELEASE.2025-04-22T22-12-26Z.shasum&quot;&gt;Mirror&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;76 B&lt;/td&gt;
&lt;td&gt;2025-04-22 22:20&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;https://dl.min.io/server/minio/release/windows-amd64/archive/minio.RELEASE.2025-04-22T22-12-26Z.minisig&quot;&gt;minio.RELEASE.2025-04-22T22-12-26Z.minisig&lt;/a&gt; &lt;a href=&quot;https://dl.doracoin.cc/minio/server/minio/release/windows-amd64/archive/minio.RELEASE.2025-04-22T22-12-26Z.minisig&quot;&gt;Mirror&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;326 B&lt;/td&gt;
&lt;td&gt;2025-04-22 22:20&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;https://dl.min.io/server/minio/release/windows-amd64/archive/minio.RELEASE.2025-04-22T22-12-26Z.asc&quot;&gt;minio.RELEASE.2025-04-22T22-12-26Z.asc&lt;/a&gt; &lt;a href=&quot;https://dl.doracoin.cc/minio/server/minio/release/windows-amd64/archive/minio.RELEASE.2025-04-22T22-12-26Z.asc&quot;&gt;Mirror&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;833 B&lt;/td&gt;
&lt;td&gt;2025-04-22 22:20&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;https://dl.min.io/server/minio/release/windows-amd64/archive/minio.RELEASE.2025-04-22T22-12-26Z&quot;&gt;minio.RELEASE.2025-04-22T22-12-26Z&lt;/a&gt; &lt;a href=&quot;https://dl.doracoin.cc/minio/server/minio/release/windows-amd64/archive/minio.RELEASE.2025-04-22T22-12-26Z&quot;&gt;Mirror&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;115 MiB&lt;/td&gt;
&lt;td&gt;2025-04-22 22:20&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;最后一个是exe文件，下载后需手动更改扩展名为exe&lt;/p&gt;
&lt;hr /&gt;
&lt;h3&gt;Linux&lt;/h3&gt;
&lt;h4&gt;Linux arm64&lt;/h4&gt;
&lt;p&gt;https://dl.min.io/server/minio/release/linux-arm64/archive/&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;a href=&quot;https://dl.min.io/server/minio/release/linux-arm64/archive/minio_20250422221226.0.0_aarch64.apk.sha256sum&quot;&gt;minio_20250422221226.0.0_aarch64.apk.sha256sum&lt;/a&gt; &lt;a href=&quot;https://dl.doracoin.cc/minio/server/minio/release/linux-arm64/archive/minio_20250422221226.0.0_aarch64.apk.sha256sum&quot;&gt;Mirror&lt;/a&gt;&lt;/th&gt;
&lt;th&gt;102 B&lt;/th&gt;
&lt;th&gt;2025-04-22 22:23&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;https://dl.min.io/server/minio/release/linux-arm64/archive/minio_20250422221226.0.0_aarch64.apk&quot;&gt;minio_20250422221226.0.0_aarch64.apk&lt;/a&gt; &lt;a href=&quot;https://dl.doracoin.cc/minio/server/minio/release/linux-arm64/archive/minio_20250422221226.0.0_aarch64.apk&quot;&gt;Mirror&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;38 MiB&lt;/td&gt;
&lt;td&gt;2025-04-22 22:23&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;https://dl.min.io/server/minio/release/linux-arm64/archive/minio-20250422221226.0.0-1.aarch64.rpm&quot;&gt;minio-20250422221226.0.0-1.aarch64.rpm&lt;/a&gt; &lt;a href=&quot;https://dl.doracoin.cc/minio/server/minio/release/linux-arm64/archive/minio-20250422221226.0.0-1.aarch64.rpm&quot;&gt;Mirror&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;38 MiB&lt;/td&gt;
&lt;td&gt;2025-04-22 22:23&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;https://dl.min.io/server/minio/release/linux-arm64/archive/minio-20250422221226.0.0-1.aarch64.rpm.sha256sum&quot;&gt;minio-20250422221226.0.0-1.aarch64.rpm.sha256sum&lt;/a&gt; &lt;a href=&quot;https://dl.doracoin.cc/minio/server/minio/release/linux-arm64/archive/minio-20250422221226.0.0-1.aarch64.rpm.sha256sum&quot;&gt;Mirror&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;104 B&lt;/td&gt;
&lt;td&gt;2025-04-22 22:23&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;https://dl.min.io/server/minio/release/linux-arm64/archive/minio_20250422221226.0.0_arm64.deb.sha256sum&quot;&gt;minio_20250422221226.0.0_arm64.deb.sha256sum&lt;/a&gt; &lt;a href=&quot;https://dl.doracoin.cc/minio/server/minio/release/linux-arm64/archive/minio_20250422221226.0.0_arm64.deb.sha256sum&quot;&gt;Mirror&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;100 B&lt;/td&gt;
&lt;td&gt;2025-04-22 22:23&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;https://dl.min.io/server/minio/release/linux-arm64/archive/minio_20250422221226.0.0_arm64.deb&quot;&gt;minio_20250422221226.0.0_arm64.deb&lt;/a&gt; &lt;a href=&quot;https://dl.doracoin.cc/minio/server/minio/release/linux-arm64/archive/minio_20250422221226.0.0_arm64.deb&quot;&gt;Mirror&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;37 MiB&lt;/td&gt;
&lt;td&gt;2025-04-22 22:23&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;https://dl.min.io/server/minio/release/linux-arm64/archive/minio.RELEASE.2025-04-22T22-12-26Z.sha256sum&quot;&gt;minio.RELEASE.2025-04-22T22-12-26Z.sha256sum&lt;/a&gt; &lt;a href=&quot;https://dl.doracoin.cc/minio/server/minio/release/linux-arm64/archive/minio.RELEASE.2025-04-22T22-12-26Z.sha256sum&quot;&gt;Mirror&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;100 B&lt;/td&gt;
&lt;td&gt;2025-04-22 22:23&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;https://dl.min.io/server/minio/release/linux-arm64/archive/minio.RELEASE.2025-04-22T22-12-26Z.minisig&quot;&gt;minio.RELEASE.2025-04-22T22-12-26Z.minisig&lt;/a&gt; &lt;a href=&quot;https://dl.doracoin.cc/minio/server/minio/release/linux-arm64/archive/minio.RELEASE.2025-04-22T22-12-26Z.minisig&quot;&gt;Mirror&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;326 B&lt;/td&gt;
&lt;td&gt;2025-04-22 22:23&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;https://dl.min.io/server/minio/release/linux-arm64/archive/minio.RELEASE.2025-04-22T22-12-26Z.shasum&quot;&gt;minio.RELEASE.2025-04-22T22-12-26Z.shasum&lt;/a&gt; &lt;a href=&quot;https://dl.doracoin.cc/minio/server/minio/release/linux-arm64/archive/minio.RELEASE.2025-04-22T22-12-26Z.shasum&quot;&gt;Mirror&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;76 B&lt;/td&gt;
&lt;td&gt;2025-04-22 22:23&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;https://dl.min.io/server/minio/release/linux-arm64/archive/minio.RELEASE.2025-04-22T22-12-26Z.asc&quot;&gt;minio.RELEASE.2025-04-22T22-12-26Z.asc&lt;/a&gt; &lt;a href=&quot;https://dl.doracoin.cc/minio/server/minio/release/linux-arm64/archive/minio.RELEASE.2025-04-22T22-12-26Z.asc&quot;&gt;Mirror&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;833 B&lt;/td&gt;
&lt;td&gt;2025-04-22 22:23&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;https://dl.min.io/server/minio/release/linux-arm64/archive/minio.RELEASE.2025-04-22T22-12-26Z&quot;&gt;minio.RELEASE.2025-04-22T22-12-26Z&lt;/a&gt; &lt;a href=&quot;https://dl.doracoin.cc/minio/server/minio/release/linux-arm64/archive/minio.RELEASE.2025-04-22T22-12-26Z&quot;&gt;Mirror&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;108 MiB&lt;/td&gt;
&lt;td&gt;2025-04-22 22:23&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr /&gt;
&lt;h4&gt;Linux amd64&lt;/h4&gt;
&lt;p&gt;https://dl.min.io/server/minio/release/linux-amd64/archive/&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;a href=&quot;https://dl.min.io/server/minio/release/linux-amd64/archive/minio_20250422221226.0.0_x86_64.apk&quot;&gt;minio_20250422221226.0.0_x86_64.apk&lt;/a&gt; &lt;a href=&quot;https://dl.doracoin.cc/minio/server/minio/release/linux-amd64/archive/minio_20250422221226.0.0_x86_64.apk&quot;&gt;Mirror&lt;/a&gt;&lt;/th&gt;
&lt;th&gt;41 MiB&lt;/th&gt;
&lt;th&gt;2025-04-22 22:23&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;https://dl.min.io/server/minio/release/linux-amd64/archive/minio_20250422221226.0.0_x86_64.apk.sha256sum&quot;&gt;minio_20250422221226.0.0_x86_64.apk.sha256sum&lt;/a&gt; &lt;a href=&quot;https://dl.doracoin.cc/minio/server/minio/release/linux-amd64/archive/minio_20250422221226.0.0_x86_64.apk.sha256sum&quot;&gt;Mirror&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;101 B&lt;/td&gt;
&lt;td&gt;2025-04-22 22:23&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;https://dl.min.io/server/minio/release/linux-amd64/archive/minio-20250422221226.0.0-1.x86_64.rpm&quot;&gt;minio-20250422221226.0.0-1.x86_64.rpm&lt;/a&gt; &lt;a href=&quot;https://dl.doracoin.cc/minio/server/minio/release/linux-amd64/archive/minio-20250422221226.0.0-1.x86_64.rpm&quot;&gt;Mirror&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;41 MiB&lt;/td&gt;
&lt;td&gt;2025-04-22 22:23&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;https://dl.min.io/server/minio/release/linux-amd64/archive/minio-20250422221226.0.0-1.x86_64.rpm.sha256sum&quot;&gt;minio-20250422221226.0.0-1.x86_64.rpm.sha256sum&lt;/a&gt; &lt;a href=&quot;https://dl.doracoin.cc/minio/server/minio/release/linux-amd64/archive/minio-20250422221226.0.0-1.x86_64.rpm.sha256sum&quot;&gt;Mirror&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;103 B&lt;/td&gt;
&lt;td&gt;2025-04-22 22:23&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;https://dl.min.io/server/minio/release/linux-amd64/archive/minio_20250422221226.0.0_amd64.deb&quot;&gt;minio_20250422221226.0.0_amd64.deb&lt;/a&gt; &lt;a href=&quot;https://dl.doracoin.cc/minio/server/minio/release/linux-amd64/archive/minio_20250422221226.0.0_amd64.deb&quot;&gt;Mirror&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;39 MiB&lt;/td&gt;
&lt;td&gt;2025-04-22 22:23&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;https://dl.min.io/server/minio/release/linux-amd64/archive/minio_20250422221226.0.0_amd64.deb.sha256sum&quot;&gt;minio_20250422221226.0.0_amd64.deb.sha256sum&lt;/a&gt; &lt;a href=&quot;https://dl.doracoin.cc/minio/server/minio/release/linux-amd64/archive/minio_20250422221226.0.0_amd64.deb.sha256sum&quot;&gt;Mirror&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;100 B&lt;/td&gt;
&lt;td&gt;2025-04-22 22:23&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;https://dl.min.io/server/minio/release/linux-amd64/archive/minio.RELEASE.2025-04-22T22-12-26Z.sha256sum&quot;&gt;minio.RELEASE.2025-04-22T22-12-26Z.sha256sum&lt;/a&gt; &lt;a href=&quot;https://dl.doracoin.cc/minio/server/minio/release/linux-amd64/archive/minio.RELEASE.2025-04-22T22-12-26Z.sha256sum&quot;&gt;Mirror&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;100 B&lt;/td&gt;
&lt;td&gt;2025-04-22 22:18&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;https://dl.min.io/server/minio/release/linux-amd64/archive/minio.RELEASE.2025-04-22T22-12-26Z.shasum&quot;&gt;minio.RELEASE.2025-04-22T22-12-26Z.shasum&lt;/a&gt; &lt;a href=&quot;https://dl.doracoin.cc/minio/server/minio/release/linux-amd64/archive/minio.RELEASE.2025-04-22T22-12-26Z.shasum&quot;&gt;Mirror&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;76 B&lt;/td&gt;
&lt;td&gt;2025-04-22 22:18&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;https://dl.min.io/server/minio/release/linux-amd64/archive/minio.RELEASE.2025-04-22T22-12-26Z.minisig&quot;&gt;minio.RELEASE.2025-04-22T22-12-26Z.minisig&lt;/a&gt; &lt;a href=&quot;https://dl.doracoin.cc/minio/server/minio/release/linux-amd64/archive/minio.RELEASE.2025-04-22T22-12-26Z.minisig&quot;&gt;Mirror&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;326 B&lt;/td&gt;
&lt;td&gt;2025-04-22 22:18&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;https://dl.min.io/server/minio/release/linux-amd64/archive/minio.RELEASE.2025-04-22T22-12-26Z.asc&quot;&gt;minio.RELEASE.2025-04-22T22-12-26Z.asc&lt;/a&gt; &lt;a href=&quot;https://dl.doracoin.cc/minio/server/minio/release/linux-amd64/archive/minio.RELEASE.2025-04-22T22-12-26Z.asc&quot;&gt;Mirror&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;833 B&lt;/td&gt;
&lt;td&gt;2025-04-22 22:18&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;https://dl.min.io/server/minio/release/linux-amd64/archive/minio.RELEASE.2025-04-22T22-12-26Z&quot;&gt;minio.RELEASE.2025-04-22T22-12-26Z&lt;/a&gt; &lt;a href=&quot;https://dl.doracoin.cc/minio/server/minio/release/linux-amd64/archive/minio.RELEASE.2025-04-22T22-12-26Z&quot;&gt;Mirror&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;113 MiB&lt;/td&gt;
&lt;td&gt;2025-04-22 22:18&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr /&gt;
&lt;h3&gt;Darwin&lt;/h3&gt;
&lt;h4&gt;Darwin arm64&lt;/h4&gt;
&lt;p&gt;https://dl.min.io/server/minio/release/darwin-arm64/archive/&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;a href=&quot;https://dl.min.io/server/minio/release/darwin-arm64/archive/minio.RELEASE.2025-04-22T22-12-26Z.shasum&quot;&gt;minio.RELEASE.2025-04-22T22-12-26Z.shasum&lt;/a&gt; &lt;a href=&quot;https://dl.doracoin.cc/minio/server/minio/release/darwin-arm64/archive/minio.RELEASE.2025-04-22T22-12-26Z.shasum&quot;&gt;Mirror&lt;/a&gt;&lt;/th&gt;
&lt;th&gt;76 B&lt;/th&gt;
&lt;th&gt;2025-04-22 22:22&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;https://dl.min.io/server/minio/release/darwin-arm64/archive/minio.RELEASE.2025-04-22T22-12-26Z.sha256sum&quot;&gt;minio.RELEASE.2025-04-22T22-12-26Z.sha256sum&lt;/a&gt; &lt;a href=&quot;https://dl.doracoin.cc/minio/server/minio/release/darwin-arm64/archive/minio.RELEASE.2025-04-22T22-12-26Z.sha256sum&quot;&gt;Mirror&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;100 B&lt;/td&gt;
&lt;td&gt;2025-04-22 22:22&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;https://dl.min.io/server/minio/release/darwin-arm64/archive/minio.RELEASE.2025-04-22T22-12-26Z.minisig&quot;&gt;minio.RELEASE.2025-04-22T22-12-26Z.minisig&lt;/a&gt; &lt;a href=&quot;https://dl.doracoin.cc/minio/server/minio/release/darwin-arm64/archive/minio.RELEASE.2025-04-22T22-12-26Z.minisig&quot;&gt;Mirror&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;326 B&lt;/td&gt;
&lt;td&gt;2025-04-22 22:22&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;https://dl.min.io/server/minio/release/darwin-arm64/archive/minio.RELEASE.2025-04-22T22-12-26Z.asc&quot;&gt;minio.RELEASE.2025-04-22T22-12-26Z.asc&lt;/a&gt; &lt;a href=&quot;https://dl.doracoin.cc/minio/server/minio/release/darwin-arm64/archive/minio.RELEASE.2025-04-22T22-12-26Z.asc&quot;&gt;Mirror&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;833 B&lt;/td&gt;
&lt;td&gt;2025-04-22 22:22&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;https://dl.min.io/server/minio/release/darwin-arm64/archive/minio.RELEASE.2025-04-22T22-12-26Z&quot;&gt;minio.RELEASE.2025-04-22T22-12-26Z&lt;/a&gt; &lt;a href=&quot;https://dl.doracoin.cc/minio/server/minio/release/darwin-arm64/archive/minio.RELEASE.2025-04-22T22-12-26Z&quot;&gt;Mirror&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;111 MiB&lt;/td&gt;
&lt;td&gt;2025-04-22 22:22&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr /&gt;
&lt;h4&gt;Darwin amd64&lt;/h4&gt;
&lt;p&gt;https://dl.min.io/server/minio/release/darwin-amd64/archive/&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;a href=&quot;https://dl.min.io/server/minio/release/darwin-amd64/archive/minio.RELEASE.2025-04-22T22-12-26Z.sha256sum&quot;&gt;minio.RELEASE.2025-04-22T22-12-26Z.sha256sum&lt;/a&gt; &lt;a href=&quot;https://dl.doracoin.cc/minio/server/minio/release/darwin-amd64/archive/minio.RELEASE.2025-04-22T22-12-26Z.sha256sum&quot;&gt;Mirror&lt;/a&gt;&lt;/th&gt;
&lt;th&gt;100 B&lt;/th&gt;
&lt;th&gt;2025-04-22 22:21&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;https://dl.min.io/server/minio/release/darwin-amd64/archive/minio.RELEASE.2025-04-22T22-12-26Z.minisig&quot;&gt;minio.RELEASE.2025-04-22T22-12-26Z.minisig&lt;/a&gt; &lt;a href=&quot;https://dl.doracoin.cc/minio/server/minio/release/darwin-amd64/archive/minio.RELEASE.2025-04-22T22-12-26Z.minisig&quot;&gt;Mirror&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;326 B&lt;/td&gt;
&lt;td&gt;2025-04-22 22:21&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;https://dl.min.io/server/minio/release/darwin-amd64/archive/minio.RELEASE.2025-04-22T22-12-26Z.shasum&quot;&gt;minio.RELEASE.2025-04-22T22-12-26Z.shasum&lt;/a&gt; &lt;a href=&quot;https://dl.doracoin.cc/minio/server/minio/release/darwin-amd64/archive/minio.RELEASE.2025-04-22T22-12-26Z.shasum&quot;&gt;Mirror&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;76 B&lt;/td&gt;
&lt;td&gt;2025-04-22 22:21&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;https://dl.min.io/server/minio/release/darwin-amd64/archive/minio.RELEASE.2025-04-22T22-12-26Z.asc&quot;&gt;minio.RELEASE.2025-04-22T22-12-26Z.asc&lt;/a&gt; &lt;a href=&quot;https://dl.doracoin.cc/minio/server/minio/release/darwin-amd64/archive/minio.RELEASE.2025-04-22T22-12-26Z.asc&quot;&gt;Mirror&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;833 B&lt;/td&gt;
&lt;td&gt;2025-04-22 22:21&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;https://dl.min.io/server/minio/release/darwin-amd64/archive/minio.RELEASE.2025-04-22T22-12-26Z&quot;&gt;minio.RELEASE.2025-04-22T22-12-26Z&lt;/a&gt; &lt;a href=&quot;https://dl.doracoin.cc/minio/server/minio/release/darwin-amd64/archive/minio.RELEASE.2025-04-22T22-12-26Z&quot;&gt;Mirror&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;116 MiB&lt;/td&gt;
&lt;td&gt;2025-04-22 22:21&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;::EOF&lt;/p&gt;
</content:encoded></item><item><title>2025年Android开发技术选型</title><link>https://blog.doracoin.cc/posts/2025/2025-09-16-2025%E5%B9%B4android%E5%BC%80%E5%8F%91%E6%8A%80%E6%9C%AF%E9%80%89%E5%9E%8B/</link><guid isPermaLink="true">https://blog.doracoin.cc/posts/2025/2025-09-16-2025%E5%B9%B4android%E5%BC%80%E5%8F%91%E6%8A%80%E6%9C%AF%E9%80%89%E5%9E%8B/</guid><pubDate>Tue, 16 Sep 2025 15:02:40 GMT</pubDate><content:encoded>&lt;p&gt;Android开发的碎片化可能是没救了。
&amp;lt;!--more--&amp;gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;./2025-09-16-2025%E5%B9%B4Android%E5%BC%80%E5%8F%91%E6%8A%80%E6%9C%AF%E9%80%89%E5%9E%8B/cover.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;时代变了，我开始习惯于求助AI了，这篇文章完全为AI生成，记录下来分享一下。&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;看得出来你对2025年Android开发的技术选型有些困惑。这是一个很重要的问题，因为选择合适的技术栈会直接影响你的开发效率、应用性能和职业发展。&lt;/p&gt;
&lt;p&gt;下面我帮你分析一下当前的主流选择，并用一个表格来快速了解它们的特点：&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;技术栈组合&lt;/th&gt;
&lt;th&gt;推荐度&lt;/th&gt;
&lt;th&gt;学习成本&lt;/th&gt;
&lt;th&gt;性能表现&lt;/th&gt;
&lt;th&gt;未来趋势&lt;/th&gt;
&lt;th&gt;适用场景&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Kotlin + Jetpack Compose&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;⭐⭐⭐⭐⭐&lt;/td&gt;
&lt;td&gt;中到高&lt;/td&gt;
&lt;td&gt;⭐⭐⭐⭐⭐&lt;/td&gt;
&lt;td&gt;⭐⭐⭐⭐⭐&lt;/td&gt;
&lt;td&gt;新项目、追求现代化开发的团队&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Kotlin + DataBinding&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;⭐⭐⭐⭐&lt;/td&gt;
&lt;td&gt;中&lt;/td&gt;
&lt;td&gt;⭐⭐⭐⭐&lt;/td&gt;
&lt;td&gt;⭐⭐⭐&lt;/td&gt;
&lt;td&gt;现有大型项目、已有DataBinding基础&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Kotlin (View系统)&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;⭐⭐⭐&lt;/td&gt;
&lt;td&gt;低&lt;/td&gt;
&lt;td&gt;⭐⭐⭐⭐&lt;/td&gt;
&lt;td&gt;⭐⭐&lt;/td&gt;
&lt;td&gt;遗留项目维护、初学者&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Java + DataBinding&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;⭐⭐&lt;/td&gt;
&lt;td&gt;中&lt;/td&gt;
&lt;td&gt;⭐⭐⭐⭐&lt;/td&gt;
&lt;td&gt;⭐&lt;/td&gt;
&lt;td&gt;历史项目维护、团队Java背景深厚&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Java (View系统)&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;⭐&lt;/td&gt;
&lt;td&gt;低&lt;/td&gt;
&lt;td&gt;⭐⭐⭐⭐&lt;/td&gt;
&lt;td&gt;⭐&lt;/td&gt;
&lt;td&gt;陈旧项目维护、不推荐新项目使用&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;🧩 从表格可以看出，&lt;strong&gt;Kotlin + Jetpack Compose&lt;/strong&gt; 是目前和未来Android开发的主流选择，而纯粹的Java开发模式已经逐渐退出主流舞台。&lt;/p&gt;
&lt;h3&gt;👉 首要推荐：Kotlin + Jetpack Compose&lt;/h3&gt;
&lt;p&gt;对于&lt;strong&gt;新项目&lt;/strong&gt;和&lt;strong&gt;愿意拥抱趋势的团队&lt;/strong&gt;来说，这是当前最理想的选择。Jetpack Compose 是 Android 现代化的原生 UI 工具包，已被众多开发者采用。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;优势&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;声明式UI&lt;/strong&gt;：用更少的代码、更直观的方式构建UI。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;高性能&lt;/strong&gt;：例如在折叠屏设备上，&lt;code&gt;LazyColumn&lt;/code&gt; 的滑动帧率能稳定在60fps，而传统的 &lt;code&gt;RecyclerView&lt;/code&gt; 可能会下降至45fps。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;强大的动画能力&lt;/strong&gt;：Compose提供了完善的动画API，可以轻松实现复杂的交互效果。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;更好的状态管理&lt;/strong&gt;：与Kotlin和ViewModel等架构组件能更自然地结合。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;未来趋势&lt;/strong&gt;：Google的大力支持和推广，Compose的应用场景也在不断扩大（如车载系统）。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;需要注意的&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;学习曲线&lt;/strong&gt;：需要理解声明式思维、重组等新概念。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;库的稳定性&lt;/strong&gt;：虽然已成熟，但部分API可能在稳定版中仍有变动。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;🔄 过渡选择：Kotlin + DataBinding&lt;/h3&gt;
&lt;p&gt;如果你的&lt;strong&gt;现有大型项目&lt;/strong&gt;已经使用了DataBinding，或者团队对DataBinding有很深的积累，这仍然是一个可行的选项。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;优势&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;减少模板代码&lt;/strong&gt;：告别 &lt;code&gt;findViewById&lt;/code&gt;，实现数据驱动UI更新。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;类型安全&lt;/strong&gt;：在编译时就能发现许多视图绑定的错误。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;双向绑定&lt;/strong&gt;：简化表单输入等场景的数据处理。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;需要注意的&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;编译速度&lt;/strong&gt;：DataBinding会增加项目的编译时间。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;调试难度&lt;/strong&gt;：布局中的表达式错误有时难以调试。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;趋势&lt;/strong&gt;：Google的发展重心明显在Compose上，DataBinding的未来新增功能可能有限。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;🎯 其他组合的考量&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Just Kotlin (with View System)&lt;/strong&gt;：如果你还在使用传统的View系统，但已经切换到了Kotlin，这本身没有问题。Kotlin是Android开发的官方首选语言，其空安全、扩展函数等特性都能极大提升开发效率和代码质量。你可以在此基础上，逐步尝试引入Compose。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Java + Any UI方案&lt;/strong&gt;：&lt;strong&gt;强烈不推荐用于新项目&lt;/strong&gt;。Java在Android生态中的重要性正在逐渐降低（GitHub上Java代码提交量年下降12%），官方的新特性也首先为Kotlin设计。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;💡 如何选择&lt;/h3&gt;
&lt;p&gt;技术选型没有绝对的正确与否，关键看是否适合你和你的项目：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;对于新项目或初创团队&lt;/strong&gt;：强烈建议直接上 &lt;strong&gt;Kotlin + Jetpack Compose&lt;/strong&gt;。这是面向未来的投资，能保证项目在技术上的先进性和可维护性。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;对于已有大型项目&lt;/strong&gt;：
&lt;ul&gt;
&lt;li&gt;如果已是 &lt;strong&gt;Kotlin + DataBinding&lt;/strong&gt;，可以继续维护，并在新功能或重构模块中尝试引入Compose，逐步过渡。&lt;/li&gt;
&lt;li&gt;如果仍是 &lt;strong&gt;Java + View&lt;/strong&gt;，建议先逐步将Java代码迁移到Kotlin，享受现代语言带来的便利，然后再评估是否需要引入Compose或维持现有架构。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;个人学习者&lt;/strong&gt;：毫无疑问，应该将&lt;strong&gt;Kotlin&lt;/strong&gt;和&lt;strong&gt;Jetpack Compose&lt;/strong&gt;作为学习和深耕的核心。这是未来Android开发的必备技能。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;📚 学习建议与资源&lt;/h3&gt;
&lt;p&gt;掌握好Kotlin和Jetpack Compose，能让你在2025年的Android开发领域更具竞争力。你可以通过以下方式深入学习：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;官方文档&lt;/strong&gt;：始终是最好的起点。&lt;a href=&quot;https://developer.android.com/jetpack/compose&quot;&gt;Jetpack Compose 官方文档&lt;/a&gt;、&lt;a href=&quot;https://kotlinlang.org/docs/home.html&quot;&gt;Kotlin 语言官方文档&lt;/a&gt;。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;实践项目&lt;/strong&gt;：理论学习后，一定要动手做一两个小项目，这是巩固知识的最佳方式。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;社区与案例&lt;/strong&gt;：关注Google I/O大会、Android Developers Blog，以及一些优秀的技术博客和开源项目，了解最新的实践和最佳方案。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;💎 总结&lt;/h3&gt;
&lt;p&gt;2025年的Android开发，&lt;strong&gt;Kotlin&lt;/strong&gt; 是基石，&lt;strong&gt;Jetpack Compose&lt;/strong&gt; 是未来UI开发的主流方向。&lt;/p&gt;
&lt;p&gt;对于大多数开发者而言，将学习和工作的重心放在 &lt;strong&gt;Kotlin + Jetpack Compose&lt;/strong&gt; 这条技术路线上，是顺应趋势、保持竞争力的明智之举。当然，如果你需要维护现有项目，根据实际情况选择过渡方案也是合理的。&lt;/p&gt;
&lt;p&gt;希望这些信息能帮助你做出更好的技术决策。&lt;/p&gt;
</content:encoded></item><item><title>写给自己看的软件开发准则</title><link>https://blog.doracoin.cc/posts/2025/2025-09-11-%E5%86%99%E7%BB%99%E8%87%AA%E5%B7%B1%E7%9C%8B%E7%9A%84%E8%BD%AF%E4%BB%B6%E5%BC%80%E5%8F%91%E5%87%86%E5%88%99/</link><guid isPermaLink="true">https://blog.doracoin.cc/posts/2025/2025-09-11-%E5%86%99%E7%BB%99%E8%87%AA%E5%B7%B1%E7%9C%8B%E7%9A%84%E8%BD%AF%E4%BB%B6%E5%BC%80%E5%8F%91%E5%87%86%E5%88%99/</guid><pubDate>Thu, 11 Sep 2025 09:36:02 GMT</pubDate><content:encoded>&lt;p&gt;放下执念，能用就行。&lt;/p&gt;
&lt;p&gt;&amp;lt;!--more--&amp;gt;&lt;/p&gt;
&lt;p&gt;不能较那些没用的真儿&lt;/p&gt;
&lt;p&gt;整理自 Flomo 标签：#Development/软件开发习惯&lt;/p&gt;
&lt;h2&gt;1. 总则篇：&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;不要尽善尽美&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;做界面、做接口时，优先考虑正常使用情况和场景，保证基本功能实现。&lt;/p&gt;
&lt;p&gt;关于在写代码的思维活跃过程中，灵光一现想出来的要针对非正常情况、异常情况的处理，应在软件基本功能完成之后，根据实际情况是否会发生、影响范围以及影响程度来评估是否需要进行相应的优化处理。&lt;/p&gt;
&lt;hr /&gt;
&lt;h2&gt;2. 技术篇：&lt;/h2&gt;
&lt;p&gt;接口开发尽量或者全部用 POST 请求，GET 请求容易在链接中暴露参数，很不安全。&lt;/p&gt;
&lt;p&gt;起因是有些服务在运营阶段，是会有第三方责任/监管单位进行漏洞扫描的，经目前的经历总结来看，被扫出来的漏洞，多数都发生在 GET 请求上。&lt;/p&gt;
&lt;p&gt;虽然现在 https 是标配了，但在部分测试场景下，还是不排除会有疏漏导致 http 接口暴露在互联网。&lt;/p&gt;
&lt;hr /&gt;
&lt;h2&gt;3. Web前端优化篇：&lt;/h2&gt;
&lt;p&gt;1 数据显示：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;手机号、身份证号等隐私字段，需结合实际场景判断是否需要脱敏显示&lt;/li&gt;
&lt;li&gt;页面上显示当前登录账号的昵称，例如：欢迎您使用XX系统，XX先生。&lt;/li&gt;
&lt;li&gt;页面欢迎语显示当前时间&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;p&gt;2 表格类页面：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;表格表头：关注度较高的字段信息排在前面&lt;/li&gt;
&lt;li&gt;横向滚动：表头过多的情况下，支持横向滚动&lt;/li&gt;
&lt;li&gt;搜索条件：搜索字段与表格表头的内容和顺序 一 一对应&lt;/li&gt;
&lt;li&gt;表格单元格：&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;2.1 表格单元格：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;状态类字段最好以 tag 的形式显示，并加以颜色区分；&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;可点击文字以 link 的形式显示；&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;数量、金额等字段类型加上单位显示，其中金额能加上千分符最好&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;p&gt;3 弹窗：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;标题尽可能显示当前弹窗预览的主题，不要只显示诸如 “详情” “预览” 等简要字样&lt;/li&gt;
&lt;li&gt;如果弹窗所显示的业务实体可能会在多个页面多次预览，那么请将弹窗进行组件化封装&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;p&gt;4 表单类页面：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;a&lt;/li&gt;
&lt;li&gt;b&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;p&gt;5 大屏类&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;动态时间显示&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;p&gt;逐步记录......&lt;/p&gt;
</content:encoded></item><item><title>而立之年的健身规划</title><link>https://blog.doracoin.cc/posts/2025/2025-09-10-%E8%80%8C%E7%AB%8B%E4%B9%8B%E5%B9%B4%E7%9A%84%E5%81%A5%E8%BA%AB%E8%A7%84%E5%88%92/</link><guid isPermaLink="true">https://blog.doracoin.cc/posts/2025/2025-09-10-%E8%80%8C%E7%AB%8B%E4%B9%8B%E5%B9%B4%E7%9A%84%E5%81%A5%E8%BA%AB%E8%A7%84%E5%88%92/</guid><pubDate>Wed, 10 Sep 2025 16:41:52 GMT</pubDate><content:encoded>&lt;p&gt;岁数一大，CPU开始降频，内存还不够用，不健身真要蓝屏了。
&amp;lt;!--more--&amp;gt;&lt;/p&gt;
&lt;p&gt;这个计划采用每周训练3次的频率，让肌肉有充分恢复时间的同时保证训练效果。每次训练围绕一个主要主题进行，兼顾力量和形态发展。&lt;/p&gt;
&lt;h2&gt;训练频率安排&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;每周一、三、五训练（或其他隔天安排）&lt;/li&gt;
&lt;li&gt;每次训练时间约45-60分钟&lt;/li&gt;
&lt;li&gt;训练前热身5分钟（开合跳 / 跑步机快走），训练后拉伸5-10分钟&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;🏋️ 上半身训练一周示范表&lt;/h2&gt;
&lt;h3&gt;方案 A：胸+三头 / 背+二头（经典高效）&lt;/h3&gt;
&lt;p&gt;📅 训练频率：每周 3-4 次&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;周一：胸+三头&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;杠铃卧推 4×8-10&lt;/li&gt;
&lt;li&gt;哑铃飞鸟 3×10-12&lt;/li&gt;
&lt;li&gt;窄握杠铃卧推 3×10-12&lt;/li&gt;
&lt;li&gt;哑铃颈后臂屈伸 3×12&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;周三：背+二头&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;杠铃俯身划船 4×8-10&lt;/li&gt;
&lt;li&gt;单臂哑铃划船 3×10-12&lt;/li&gt;
&lt;li&gt;杠铃弯举 3×10-12&lt;/li&gt;
&lt;li&gt;哑铃锤式弯举 3×12&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;周五：胸/背混合 + 肩&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;上斜杠铃卧推 3×8-10&lt;/li&gt;
&lt;li&gt;杠铃划船 3×8-10&lt;/li&gt;
&lt;li&gt;哑铃侧平举 3×12-15&lt;/li&gt;
&lt;li&gt;杠铃推举 3×8-10&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;（可选 &lt;strong&gt;周日：核心+拉伸&lt;/strong&gt;）&lt;/p&gt;
&lt;hr /&gt;
&lt;h3&gt;方案 B：推/拉分化（系统进阶）&lt;/h3&gt;
&lt;p&gt;📅 训练频率：每周 4 次&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;周一：推（胸+肩+三头）&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;杠铃卧推 4×8&lt;/li&gt;
&lt;li&gt;上斜哑铃卧推 3×8-10&lt;/li&gt;
&lt;li&gt;哑铃侧平举 3×12&lt;/li&gt;
&lt;li&gt;杠铃推举 3×8-10&lt;/li&gt;
&lt;li&gt;窄握杠铃卧推 3×10-12&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;周二：拉（背+二头）&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;杠铃俯身划船 4×8-10&lt;/li&gt;
&lt;li&gt;单臂哑铃划船 3×10-12&lt;/li&gt;
&lt;li&gt;杠铃弯举 3×10-12&lt;/li&gt;
&lt;li&gt;哑铃锤式弯举 3×12&lt;/li&gt;
&lt;li&gt;反向飞鸟 3×12&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;周四：推（变换角度）&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;上斜杠铃卧推 4×8-10&lt;/li&gt;
&lt;li&gt;哑铃飞鸟 3×12&lt;/li&gt;
&lt;li&gt;哑铃阿诺德推举 3×10&lt;/li&gt;
&lt;li&gt;哑铃侧平举 3×15&lt;/li&gt;
&lt;li&gt;哑铃臂屈伸 3×12&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;周五：拉（背+二头）&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;硬拉 4×6（中等重量）&lt;/li&gt;
&lt;li&gt;杠铃划船 4×8&lt;/li&gt;
&lt;li&gt;哑铃耸肩 3×12-15&lt;/li&gt;
&lt;li&gt;杠铃弯举 3×12&lt;/li&gt;
&lt;li&gt;哑铃集中弯举 3×12&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;h3&gt;方案 C：胸/背为主 + 手臂单独日（手臂重点）&lt;/h3&gt;
&lt;p&gt;📅 训练频率：每周 3-4 次&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;周一：胸+肩&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;杠铃卧推 4×8&lt;/li&gt;
&lt;li&gt;上斜哑铃卧推 3×10&lt;/li&gt;
&lt;li&gt;哑铃飞鸟 3×12&lt;/li&gt;
&lt;li&gt;杠铃推举 3×8-10&lt;/li&gt;
&lt;li&gt;哑铃侧平举 3×12-15&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;周三：背&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;杠铃俯身划船 4×8-10&lt;/li&gt;
&lt;li&gt;单臂哑铃划船 3×12&lt;/li&gt;
&lt;li&gt;硬拉 4×6（中等重量）&lt;/li&gt;
&lt;li&gt;哑铃耸肩 3×12-15&lt;/li&gt;
&lt;li&gt;反向飞鸟 3×12&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;周五：手臂&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;杠铃弯举 4×8-10&lt;/li&gt;
&lt;li&gt;哑铃锤式弯举 3×12&lt;/li&gt;
&lt;li&gt;哑铃集中弯举 3×12&lt;/li&gt;
&lt;li&gt;窄握杠铃卧推 3×10-12&lt;/li&gt;
&lt;li&gt;哑铃颈后臂屈伸 3×12&lt;/li&gt;
&lt;li&gt;双手哑铃臂后伸 3×12&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;（可选周日：核心+拉伸）&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;h2&gt;📌 总结&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;方案 A&lt;/strong&gt; → 简单高效，不容易出错&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;方案 B&lt;/strong&gt; → 系统性最强，适合循序渐进&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;方案 C&lt;/strong&gt; → 手臂重点，线条党首选&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
</content:encoded></item><item><title>IntelliJ IDEA 已创建的Spring项目再次打开Spring依赖项管理窗口</title><link>https://blog.doracoin.cc/posts/2025/2025-08-11-intellij-idea-%E5%B7%B2%E5%88%9B%E5%BB%BA%E7%9A%84spring%E9%A1%B9%E7%9B%AE%E5%86%8D%E6%AC%A1%E6%89%93%E5%BC%80spring%E4%BE%9D%E8%B5%96%E9%A1%B9%E7%AE%A1%E7%90%86%E7%AA%97%E5%8F%A3/</link><guid isPermaLink="true">https://blog.doracoin.cc/posts/2025/2025-08-11-intellij-idea-%E5%B7%B2%E5%88%9B%E5%BB%BA%E7%9A%84spring%E9%A1%B9%E7%9B%AE%E5%86%8D%E6%AC%A1%E6%89%93%E5%BC%80spring%E4%BE%9D%E8%B5%96%E9%A1%B9%E7%AE%A1%E7%90%86%E7%AA%97%E5%8F%A3/</guid><pubDate>Sun, 10 Aug 2025 15:18:36 GMT</pubDate><content:encoded>&lt;p&gt;这个功能隐藏的比较深，我认为放到Project Structure里面比较适合。
&amp;lt;!--more--&amp;gt;&lt;/p&gt;
&lt;p&gt;这个功能具体从哪个版本开始在这里我的不清楚，只能贴出我使用的IDEA版本号：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;IntelliJ IDEA 2025.1.3 (Ultimate Edition)
Build #IU-251.26927.53, built on June 23, 2025
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;首先打开 pom.xml 文件，在文件窗口的内部打开鼠标右键菜单，选择 Generate 选项：&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://img.doracoin.cc/images/2025/08/11/78f7ad43076697ae7b4edb1815b43816.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;在新弹出的菜单中，选择 Add Starters 选项&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://img.doracoin.cc/images/2025/08/11/fab136e61c7e2939cfd2f2d4cc378958.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;然后即可打开 Spring 依赖项选择窗口。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://img.doracoin.cc/images/2025/08/11/4b2f54602f2dbaa7c988f349f3fa2dcf.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
</content:encoded></item><item><title>五款Redis数据库桌面工具</title><link>https://blog.doracoin.cc/posts/2025/2025-05-13-%E4%BA%94%E6%AC%BEredis%E6%95%B0%E6%8D%AE%E5%BA%93%E6%A1%8C%E9%9D%A2%E5%B7%A5%E5%85%B7/</link><guid isPermaLink="true">https://blog.doracoin.cc/posts/2025/2025-05-13-%E4%BA%94%E6%AC%BEredis%E6%95%B0%E6%8D%AE%E5%BA%93%E6%A1%8C%E9%9D%A2%E5%B7%A5%E5%85%B7/</guid><pubDate>Tue, 13 May 2025 09:18:23 GMT</pubDate><content:encoded>&lt;p&gt;平时查到了就记一下，以备不时之需
&amp;lt;!--more--&amp;gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;免得听别人天天问天天问&lt;/p&gt;
&lt;/blockquote&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;工具名称&lt;/th&gt;
&lt;th&gt;官网 / 首页&lt;/th&gt;
&lt;th&gt;GitHub 地址&lt;/th&gt;
&lt;th&gt;官方文档地址&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;TinyRDM&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;https://redis.tinycraft.cc/&lt;/td&gt;
&lt;td&gt;https://github.com/tiny-craft/tiny-rdm&lt;/td&gt;
&lt;td&gt;通常包含在GitHub仓库中&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Another Redis Desktop Manager&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;td&gt;https://github.com/qishibo/AnotherRedisDesktopManager&lt;/td&gt;
&lt;td&gt;通常包含在GitHub仓库中&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;RedisInsight&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;https://redis.com/redis-enterprise/redis-insight/&lt;/td&gt;
&lt;td&gt;https://github.com/redisinsight/redisinsight&lt;/td&gt;
&lt;td&gt;https://docs.redis.com/latest/ri/&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;DataGrip&lt;/strong&gt; (JetBrains IDE)&lt;/td&gt;
&lt;td&gt;https://www.jetbrains.com/datagrip/&lt;/td&gt;
&lt;td&gt;非开源，无GitHub地址&lt;/td&gt;
&lt;td&gt;https://www.jetbrains.com/help/datagrip/&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;DBeaver Pro&lt;/strong&gt; (企业版)&lt;/td&gt;
&lt;td&gt;https://dbeaver.com/&lt;/td&gt;
&lt;td&gt;社区版开源：https://github.com/dbeaver/dbeaver&lt;/td&gt;
&lt;td&gt;https://dbeaver.com/docs/&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;下面是各工具的详细介绍，包括其核心特点和适用场景。&lt;/p&gt;
&lt;h3&gt;🧩 各工具特点详解&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;TinyRDM&lt;/strong&gt;
这是一款&lt;strong&gt;免费开源&lt;/strong&gt;、&lt;strong&gt;极致轻量&lt;/strong&gt;且&lt;strong&gt;界面现代化&lt;/strong&gt;的Redis桌面客户端。它基于Webview2开发，安装包仅约10MB，资源占用低。功能全面，支持可视化操作各种数据结构、SSH/SSL连接、实时监控、数据导入导出等。非常适合追求&lt;strong&gt;轻量、快速和美观体验&lt;/strong&gt;的个人开发者或团队使用。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Another Redis Desktop Manager&lt;/strong&gt;
这是一款在开发者社区中口碑很好的&lt;strong&gt;免费开源&lt;/strong&gt;国产工具，标榜“更快、更好、更稳定”。基于Electron开发，支持跨平台，界面友好。其亮点在于对&lt;strong&gt;海量Key的支持&lt;/strong&gt;（可处理亿万级别）以及实用的&lt;strong&gt;内存分析&lt;/strong&gt;、&lt;strong&gt;慢查询日志&lt;/strong&gt;查看功能，对于排查BigKey和性能问题非常有帮助。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;RedisInsight&lt;/strong&gt;
这是由&lt;strong&gt;Redis官方出品&lt;/strong&gt;的可视化管理工具。作为“亲生”工具，它提供了&lt;strong&gt;最深入的Redis功能支持&lt;/strong&gt;，例如对Redis模块、Redis Stack（JSON、搜索等）的完整支持。它提供了强大的&lt;strong&gt;监控、内存分析和性能优化建议&lt;/strong&gt;，是&lt;strong&gt;企业级用户&lt;/strong&gt;或需要深度使用Redis高级功能的开发者的首选。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;DataGrip&lt;/strong&gt;
这是JetBrains公司推出的&lt;strong&gt;专业数据库集成开发环境（IDE）&lt;/strong&gt;。它&lt;strong&gt;并非专门的Redis工具&lt;/strong&gt;，但可以通过插件支持Redis。主要优势在于，如果已经是JetBrains IDE（如IDEA）的用户，可以在同一界面内&lt;strong&gt;无缝操作多种数据库&lt;/strong&gt;（包括Redis），享受其智能代码补全、版本控制集成等强大功能。适合&lt;strong&gt;重度依赖JetBrains生态&lt;/strong&gt;、需要统一管理多种数据库的开发人员。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;DBeaver Pro&lt;/strong&gt;
DBeaver是一个&lt;strong&gt;通用的数据库管理工具&lt;/strong&gt;，其社区版免费开源，企业版（Pro）提供更多高级功能。它通过驱动程序支持包括Redis在内的数十种数据库。其优势在于&lt;strong&gt;统一的管理界面&lt;/strong&gt;，如果需要同时管理Redis、MySQL、PostgreSQL等多种数据库，DBeaver可以避免在多个工具间切换。对于&lt;strong&gt;专职DBA或需要管理异构数据环境的运维人员&lt;/strong&gt;来说，是一个高效的“一站式”选择。&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;💡 如何选择？&lt;/h3&gt;
&lt;p&gt;可以根据以下场景快速决策：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;追求轻量、免费和现代体验&lt;/strong&gt;：首选 &lt;strong&gt;TinyRDM&lt;/strong&gt;。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;需处理海量数据或分析性能&lt;/strong&gt;：&lt;strong&gt;Another Redis Desktop Manager&lt;/strong&gt; 的实用工具很出色。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;使用Redis企业版或需要官方深度支持&lt;/strong&gt;：&lt;strong&gt;RedisInsight&lt;/strong&gt; 是不二之选。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;JetBrains全家桶用户，想在一个工具里搞定多种数据库&lt;/strong&gt;：用 &lt;strong&gt;DataGrip&lt;/strong&gt; 的插件。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;需统一管理多种不同类型数据库&lt;/strong&gt;：&lt;strong&gt;DBeaver Pro&lt;/strong&gt; 则更适合。&lt;/li&gt;
&lt;/ul&gt;
</content:encoded></item><item><title>口袋妖怪漆黑的魅影大师球金手指</title><link>https://blog.doracoin.cc/posts/2024/2024-12-23-%E5%8F%A3%E8%A2%8B%E5%A6%96%E6%80%AA%E6%BC%86%E9%BB%91%E7%9A%84%E9%AD%85%E5%BD%B1%E5%A4%A7%E5%B8%88%E7%90%83%E9%87%91%E6%89%8B%E6%8C%87/</link><guid isPermaLink="true">https://blog.doracoin.cc/posts/2024/2024-12-23-%E5%8F%A3%E8%A2%8B%E5%A6%96%E6%80%AA%E6%BC%86%E9%BB%91%E7%9A%84%E9%AD%85%E5%BD%B1%E5%A4%A7%E5%B8%88%E7%90%83%E9%87%91%E6%89%8B%E6%8C%87/</guid><pubDate>Mon, 23 Dec 2024 14:50:09 GMT</pubDate><content:encoded>&lt;p&gt;改版游戏欢乐多，游戏道德莫要说。
&amp;lt;!--more--&amp;gt;&lt;/p&gt;
&lt;p&gt;严格来说并没有无限金币的代码，但是大家可以用过金手指购买金珠或者大师球，然后卖掉就可以获得金币了，如此反复，就会有用不完的金钱了。&lt;/p&gt;
&lt;p&gt;金手指功能在使用过程中需注意：&lt;strong&gt;即用即开，用完就关&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;金手指代码需要注意冒号和空格，有冒号的填入“代码” (对应&lt;code&gt;.cht&lt;/code&gt; 文件中的 &lt;code&gt;direct_v1&lt;/code&gt;)，没有冒号的填入“Gameshark” (对应 &lt;code&gt;.cht&lt;/code&gt; 文件中的 &lt;code&gt;gameshark_v1&lt;/code&gt;)。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://img.doracoin.cc/images/2024/12/23/afca1e8cba661a235998ed3711e105c7.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://img.doracoin.cc/images/2024/12/23/5132dbe2b43150f3be5df45da2f3ba28.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;大师球代码(direct)：&lt;code&gt;03005E12:0001&lt;/code&gt;
金珠代码(direct)：&lt;code&gt;03005E12:006e&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;大师球的作弊码(Gameshark)是：&lt;code&gt;51F8A91D B6CC23CE&lt;/code&gt;（注意中间有空格）&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://img.doracoin.cc/images/2024/12/23/8b3f11d8daf06658f0921c3a028c03c7.png&quot; alt=&quot;img&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;具体步骤：&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;先去&lt;strong&gt;古辰镇&lt;/strong&gt;的商店(购买地点必须是&lt;strong&gt;古辰镇&lt;/strong&gt;，在别的城市的商店使用该金手指不生效)，随便选择一个物品，选好购买的数量。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src=&quot;https://img.doracoin.cc/images/2024/12/23/5b3ad77369612e055433bc040e1a746f.png&quot; alt=&quot;img&quot; /&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;点击模拟器上方的金手指-金手指列表，点击代码的方框，输入作弊码。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src=&quot;https://img.doracoin.cc/images/2024/12/23/d7aebaa1bca73e061def2aeac9ad7cc9.png&quot; alt=&quot;img&quot; /&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;输入完成后点确定，回到游戏选择购买，这时候提示的商品名称已经变成了大师球。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src=&quot;https://img.doracoin.cc/images/2024/12/23/5f5c90c1cbe82d93a3d68336c0d217b0.png&quot; alt=&quot;img&quot; /&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;买完之后记得要删掉金手指，不然会死机的&lt;/strong&gt;，然后打开背包就可以里面有我们所需的东西了。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src=&quot;https://img.doracoin.cc/images/2024/12/23/3b86b5bccd8936610b3b3a42fcf3cf48.png&quot; alt=&quot;img&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;参考步骤2&lt;/h3&gt;
&lt;p&gt;如果上面的方法不生效，看看这个方法：&lt;/p&gt;
&lt;p&gt;同样是在古辰镇的商店，大师球代码：&lt;code&gt;03005E12:0001&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;先启用金手指后，进去商店买什么都会变成 &quot;大师球&quot;。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;首先找到游戏框上分的金手指选项，打开金手指弹窗。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;接着点开，点击左下方箭头指示的 汉字 代码。&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src=&quot;https://img.doracoin.cc/images/2024/12/23/c427304a1ffc1f4a9ae0dfc43646cb86.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;接着输入代码，代码为：&lt;code&gt;03005E12:0001&lt;/code&gt;。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src=&quot;https://img.doracoin.cc/images/2024/12/23/e500f49d0bff6c9550315dfea9e1cc93.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;然后就是确定代码的 开关 状态，可以自由选择开关。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src=&quot;https://img.doracoin.cc/images/2024/12/23/6e9a77bacc4dc30b6b8b392aadb97ce4.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;紧接着到古辰镇的商店。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src=&quot;https://img.doracoin.cc/images/2024/12/23/e9fa3c228fcf72c174fe22c1751f7581.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;进去任意购买物品，以买最便宜的 &quot;消毒药&quot; 为例：&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src=&quot;https://img.doracoin.cc/images/2024/12/23/0b5ea3605295366cb0d789ffb8a220c9.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;购买确认时，就会发现自己所买的物品变成了大师球！&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src=&quot;https://img.doracoin.cc/images/2024/12/23/a26488fa7f2d72042458167c106fdf57.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;购买结束后，到背包确认即可。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src=&quot;https://img.doracoin.cc/images/2024/12/23/9fd6e6c221cfeb66b4bb89aac5f135ee.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;附录：&lt;/h3&gt;
&lt;h4&gt;模拟器 .cht 文件示例：&lt;/h4&gt;
&lt;pre&gt;&lt;code&gt;direct_v1 LevelUp
020241F0 2710

direct_v1 MasterBall
03005E12 0001

direct_v1 GoldBead
03005E12 006e

gameshark_v1 NoWall
C518E259 5ADBAF5B

gameshark_v1 MasterBall
51F8A91D B6CC23CE

gameshark_v1 MagicCandy
9CFE9008 05447104

gameshark_v1 CityKaNaZi
74F475FE B25DF9B7

gameshark_v1 CityChengHua
3135E168 C0FBFC09

gameshark_v1 CityGuChen
38F706C5 70A2CA3D
&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote&gt;
&lt;p&gt;参考文章：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;https://www.3dmgame.com/gl/3706414.html&lt;/li&gt;
&lt;li&gt;https://zhidao.baidu.com/question/1436357927509740299/answer/2860544224.html&lt;/li&gt;
&lt;li&gt;https://jingyan.baidu.com/article/9f7e7ec06552182f29155464.html&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
</content:encoded></item><item><title>Golang热门开源框架收集</title><link>https://blog.doracoin.cc/posts/2024/2024-10-23-golang%E7%83%AD%E9%97%A8%E5%BC%80%E6%BA%90%E6%A1%86%E6%9E%B6%E6%94%B6%E9%9B%86/</link><guid isPermaLink="true">https://blog.doracoin.cc/posts/2024/2024-10-23-golang%E7%83%AD%E9%97%A8%E5%BC%80%E6%BA%90%E6%A1%86%E6%9E%B6%E6%94%B6%E9%9B%86/</guid><pubDate>Wed, 23 Oct 2024 10:59:58 GMT</pubDate><content:encoded>&lt;p&gt;从热门框架入手来学习一款开发语言是个不错的主意&lt;/p&gt;
&lt;p&gt;&amp;lt;!--more--&amp;gt;&lt;/p&gt;
&lt;p&gt;搜索列表：&lt;a href=&quot;https://github.com/search?q=language%3AGo+framework+in%3Adescription&amp;amp;type=repositories&amp;amp;s=stars&amp;amp;o=desc&quot;&gt;Repositories search in Go&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;关于Github的高级搜索功能请参考：&lt;a href=&quot;https://docs.github.com/en/search-github/searching-on-github/searching-for-repositories&quot;&gt;Searching for repositories&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;本篇整理的框架仅限于Web服务开发方向的，其他热门框架可浏览另一个开源项目：&amp;lt;embed type=&quot;image/svg+xml&quot; src=&quot;https://img.shields.io/github/stars/avelino/awesome-go.svg?label=awesome-go&amp;amp;style=social&quot;&amp;gt;&amp;lt;/embed&amp;gt;&lt;/p&gt;
&lt;h3&gt;Gin&lt;/h3&gt;
&lt;p&gt;Gin is a HTTP web framework written in Go (Golang). It features a Martini-like API with much better performance -- up to 40 times faster. If you need smashing performance, get yourself some Gin.&lt;/p&gt;
&lt;p&gt;&amp;lt;embed type=&quot;image/svg+xml&quot; src=&quot;https://img.shields.io/github/stars/gin-gonic/gin.svg?label=gin&amp;amp;style=social&quot;&amp;gt;&amp;lt;/embed&amp;gt;&lt;/p&gt;
&lt;h3&gt;Fiber&lt;/h3&gt;
&lt;p&gt;Express inspired web framework written in Go.&lt;/p&gt;
&lt;p&gt;&amp;lt;embed type=&quot;image/svg+xml&quot; src=&quot;https://img.shields.io/github/stars/gofiber/fiber.svg?label=fiber&amp;amp;style=social&quot;&amp;gt;&amp;lt;/embed&amp;gt;&lt;/p&gt;
&lt;h3&gt;Beego&lt;/h3&gt;
&lt;p&gt;beego is an open-source, high-performance web framework for the Go programming language.&lt;/p&gt;
&lt;p&gt;&amp;lt;embed type=&quot;image/svg+xml&quot; src=&quot;https://img.shields.io/github/stars/beego/beego.svg?label=beego&amp;amp;style=social&quot;&amp;gt;&amp;lt;/embed&amp;gt;&lt;/p&gt;
&lt;h3&gt;Echo&lt;/h3&gt;
&lt;p&gt;High performance, minimalist Go web framework.&lt;/p&gt;
&lt;p&gt;&amp;lt;embed type=&quot;image/svg+xml&quot; src=&quot;https://img.shields.io/github/stars/labstack/echo.svg?label=echo&amp;amp;style=social&quot;&amp;gt;&amp;lt;/embed&amp;gt;&lt;/p&gt;
&lt;h3&gt;Go-Zero&lt;/h3&gt;
&lt;p&gt;A cloud-native Go microservices framework with cli tool for productivity.&lt;/p&gt;
&lt;p&gt;&amp;lt;embed type=&quot;image/svg+xml&quot; src=&quot;https://img.shields.io/github/stars/zeromicro/go-zero.svg?label=go-zero&amp;amp;style=social&quot;&amp;gt;&amp;lt;/embed&amp;gt;&lt;/p&gt;
&lt;h3&gt;Iris&lt;/h3&gt;
&lt;p&gt;The fastest HTTP/2 Go Web Framework. New, modern and easy to learn. Fast development with Code you control. Unbeatable cost-performance ratio.&lt;/p&gt;
&lt;p&gt;&amp;lt;embed type=&quot;image/svg+xml&quot; src=&quot;https://img.shields.io/github/stars/kataras/iris.svg?label=iris&amp;amp;style=social&quot;&amp;gt;&amp;lt;/embed&amp;gt;&lt;/p&gt;
&lt;h3&gt;Kratos&lt;/h3&gt;
&lt;p&gt;Your ultimate Go microservices framework for the cloud-native era.&lt;/p&gt;
&lt;p&gt;&amp;lt;embed type=&quot;image/svg+xml&quot; src=&quot;https://img.shields.io/github/stars/go-kratos/kratos.svg?label=kratos&amp;amp;style=social&quot;&amp;gt;&amp;lt;/embed&amp;gt;&lt;/p&gt;
&lt;h3&gt;Go-Micro&lt;/h3&gt;
&lt;p&gt;A Go microservices framework.&lt;/p&gt;
&lt;p&gt;&amp;lt;embed type=&quot;image/svg+xml&quot; src=&quot;https://img.shields.io/github/stars/micro/go-micro.svg?label=go-micro&amp;amp;style=social&quot;&amp;gt;&amp;lt;/embed&amp;gt;&lt;/p&gt;
&lt;h3&gt;Revel&lt;/h3&gt;
&lt;p&gt;A high productivity, full-stack web framework for the Go language.&lt;/p&gt;
&lt;p&gt;&amp;lt;embed type=&quot;image/svg+xml&quot; src=&quot;https://img.shields.io/github/stars/revel/revel.svg?label=revel&amp;amp;style=social&quot;&amp;gt;&amp;lt;/embed&amp;gt;&lt;/p&gt;
&lt;h3&gt;Martini&lt;/h3&gt;
&lt;p&gt;Classy web framework for Go.&lt;/p&gt;
&lt;p&gt;&amp;lt;embed type=&quot;image/svg+xml&quot; src=&quot;https://img.shields.io/github/stars/go-martini/martini.svg?label=martini&amp;amp;style=social&quot;&amp;gt;&amp;lt;/embed&amp;gt;&lt;/p&gt;
&lt;h3&gt;GoFrame&lt;/h3&gt;
&lt;p&gt;GoFrame is a modular, powerful, high-performance and enterprise-class application development framework of Golang.&lt;/p&gt;
&lt;p&gt;&amp;lt;embed type=&quot;image/svg+xml&quot; src=&quot;https://img.shields.io/github/stars/gogf/gf.svg?label=gf&amp;amp;style=social&quot;&amp;gt;&amp;lt;/embed&amp;gt;&lt;/p&gt;
</content:encoded></item><item><title>Github上的Awesome系列</title><link>https://blog.doracoin.cc/posts/2024/2024-09-27-github%E4%B8%8A%E7%9A%84awesome%E7%B3%BB%E5%88%97/</link><guid isPermaLink="true">https://blog.doracoin.cc/posts/2024/2024-09-27-github%E4%B8%8A%E7%9A%84awesome%E7%B3%BB%E5%88%97/</guid><pubDate>Fri, 27 Sep 2024 10:18:14 GMT</pubDate><content:encoded>&lt;p&gt;太多了，实在是太多了
&amp;lt;!--more--&amp;gt;&lt;/p&gt;
&lt;h3&gt;1. Awesome&lt;/h3&gt;
&lt;p&gt;https://github.com/sindresorhus/awesome&lt;/p&gt;
&lt;p&gt;😎 Awesome lists about all kinds of interesting topics&lt;br /&gt;
😎 关于各类有趣主题的精选资源列表&lt;/p&gt;
&lt;p&gt;&amp;lt;embed type=&quot;image/svg+xml&quot; src=&quot;https://img.shields.io/github/stars/sindresorhus/awesome.svg?label=awesome&amp;amp;style=social&quot;&amp;gt;&amp;lt;/embed&amp;gt;&lt;/p&gt;
&lt;h3&gt;2. Awesome Python&lt;/h3&gt;
&lt;p&gt;https://github.com/vinta/awesome-python&lt;/p&gt;
&lt;p&gt;An opinionated list of awesome Python frameworks, libraries, software and resources.&lt;br /&gt;
精选推荐的Python框架、库、软件及相关资源列表&lt;/p&gt;
&lt;p&gt;&amp;lt;embed type=&quot;image/svg+xml&quot; src=&quot;https://img.shields.io/github/stars/vinta/awesome-python.svg?label=awesome-python&amp;amp;style=social&quot;&amp;gt;&amp;lt;/embed&amp;gt;&lt;/p&gt;
&lt;h3&gt;3. Awesome-Selfhosted&lt;/h3&gt;
&lt;p&gt;https://github.com/awesome-selfhosted/awesome-selfhosted&lt;/p&gt;
&lt;p&gt;A list of Free Software network services and web applications which can be hosted on your own servers&lt;br /&gt;
可在自有服务器上部署的免费软件网络服务和Web应用列表&lt;/p&gt;
&lt;p&gt;&amp;lt;embed type=&quot;image/svg+xml&quot; src=&quot;https://img.shields.io/github/stars/awesome-selfhosted/awesome-selfhosted.svg?label=awesome-selfhosted&amp;amp;style=social&quot;&amp;gt;&amp;lt;/embed&amp;gt;&lt;/p&gt;
&lt;h3&gt;4. the-book-of-secret-knowledge&lt;/h3&gt;
&lt;p&gt;https://github.com/trimstray/the-book-of-secret-knowledge&lt;/p&gt;
&lt;p&gt;A collection of inspiring lists, manuals, cheatsheets, blogs, hacks, one-liners, cli/web tools, and more.&lt;br /&gt;
一系列鼓舞人心的列表、手册、备忘单、博客、黑客技巧、单行命令、CLI/Web工具等&lt;/p&gt;
&lt;p&gt;This repository is a collection of various materials and tools that I use every day in my work. It contains a lot of useful information gathered in one piece. It is an invaluable source of knowledge for me that I often look back on.&lt;br /&gt;
本仓库是我日常工作中使用的各种材料和工具的集合，汇集了大量有用信息，是我经常回顾的宝贵知识源&lt;/p&gt;
&lt;p&gt;&amp;lt;embed type=&quot;image/svg+xml&quot; src=&quot;https://img.shields.io/github/stars/trimstray/the-book-of-secret-knowledge.svg?label=the-book-of-secret-knowledge&amp;amp;style=social&quot;&amp;gt;&amp;lt;/embed&amp;gt;&lt;/p&gt;
&lt;h3&gt;5. Awesome Go&lt;/h3&gt;
&lt;p&gt;https://github.com/avelino/awesome-go&lt;/p&gt;
&lt;p&gt;A curated list of awesome Go frameworks, libraries and software&lt;br /&gt;
Go语言框架、库和软件的精选列表&lt;/p&gt;
&lt;p&gt;&amp;lt;embed type=&quot;image/svg+xml&quot; src=&quot;https://img.shields.io/github/stars/avelino/awesome-go.svg?label=awesome-go&amp;amp;style=social&quot;&amp;gt;&amp;lt;/embed&amp;gt;&lt;/p&gt;
&lt;h3&gt;6. Awesome ChatGPT Prompts&lt;/h3&gt;
&lt;p&gt;https://github.com/f/awesome-chatgpt-prompts&lt;/p&gt;
&lt;p&gt;This repo includes ChatGPT prompt curation to use ChatGPT better.&lt;br /&gt;
包含优化使用ChatGPT的提示词精选合集&lt;/p&gt;
&lt;p&gt;&amp;lt;embed type=&quot;image/svg+xml&quot; src=&quot;https://img.shields.io/github/stars/f/awesome-chatgpt-prompts.svg?label=awesome-chatgpt-prompts&amp;amp;style=social&quot;&amp;gt;&amp;lt;/embed&amp;gt;&lt;/p&gt;
&lt;h3&gt;7. HelloGitHub&lt;/h3&gt;
&lt;p&gt;https://github.com/521xueweihan/HelloGitHub&lt;/p&gt;
&lt;p&gt;分享 GitHub 上有趣、入门级的开源项目。Share interesting, entry-level open source projects on GitHub.&lt;/p&gt;
&lt;p&gt;&amp;lt;embed type=&quot;image/svg+xml&quot; src=&quot;https://img.shields.io/github/stars/521xueweihan/HelloGitHub.svg?label=HelloGitHub&amp;amp;style=social&quot;&amp;gt;&amp;lt;/embed&amp;gt;&lt;/p&gt;
&lt;h3&gt;8. Awesome Hacking&lt;/h3&gt;
&lt;p&gt;https://github.com/Hack-with-Github/Awesome-Hacking&lt;/p&gt;
&lt;p&gt;A collection of various awesome lists for hackers, pentesters and security researchers&lt;br /&gt;
为黑客、渗透测试人员和安全研究人员准备的各类精选资源列表&lt;/p&gt;
&lt;p&gt;&amp;lt;embed type=&quot;image/svg+xml&quot; src=&quot;https://img.shields.io/github/stars/Hack-with-Github/Awesome-Hacking.svg?label=Awesome-Hacking&amp;amp;style=social&quot;&amp;gt;&amp;lt;/embed&amp;gt;&lt;/p&gt;
&lt;h3&gt;9. Awesome Mac&lt;/h3&gt;
&lt;p&gt;https://github.com/jaywcjlove/awesome-mac&lt;/p&gt;
&lt;p&gt;Now we have become very big, Different from the original idea. Collect premium software in various categories.&lt;br /&gt;
现已发展壮大，不同于最初设想。收集各类优质Mac软件&lt;/p&gt;
&lt;p&gt;&amp;lt;embed type=&quot;image/svg+xml&quot; src=&quot;https://img.shields.io/github/stars/jaywcjlove/awesome-mac.svg?label=awesome-mac&amp;amp;style=social&quot;&amp;gt;&amp;lt;/embed&amp;gt;&lt;/p&gt;
&lt;h3&gt;10. Awesome-Font&lt;/h3&gt;
&lt;p&gt;https://github.com/FortAwesome/Font-Awesome&lt;/p&gt;
&lt;p&gt;Font Awesome is the Internet&apos;s icon library and toolkit, used by millions of designers, developers, and content creators.&lt;br /&gt;
互联网图标库和工具包，被数百万设计师、开发者和内容创作者使用&lt;/p&gt;
&lt;p&gt;&amp;lt;embed type=&quot;image/svg+xml&quot; src=&quot;https://img.shields.io/github/stars/FortAwesome/Font-Awesome.svg?label=Font-Awesome&amp;amp;style=social&quot;&amp;gt;&amp;lt;/embed&amp;gt;&lt;/p&gt;
&lt;h3&gt;11. Awesome Vue.js&lt;/h3&gt;
&lt;p&gt;https://github.com/vuejs/awesome-vue&lt;/p&gt;
&lt;p&gt;A curated list of awesome things related to Vue.js&lt;br /&gt;
Vue.js相关资源的精选列表&lt;/p&gt;
&lt;p&gt;&amp;lt;embed type=&quot;image/svg+xml&quot; src=&quot;https://img.shields.io/github/stars/vuejs/awesome-vue.svg?label=awesome-vue&amp;amp;style=social&quot;&amp;gt;&amp;lt;/embed&amp;gt;&lt;/p&gt;
&lt;h3&gt;12. Awesome-nodejs&lt;/h3&gt;
&lt;p&gt;https://github.com/sindresorhus/awesome-nodejs&lt;/p&gt;
&lt;p&gt;Delightful Node.js packages and resources. 有趣的Node.js包和资源&lt;/p&gt;
&lt;p&gt;&amp;lt;embed type=&quot;image/svg+xml&quot; src=&quot;https://img.shields.io/github/stars/sindresorhus/awesome-nodejs.svg?label=awesome-nodejs&amp;amp;style=social&quot;&amp;gt;&amp;lt;/embed&amp;gt;&lt;/p&gt;
&lt;h3&gt;13. Awesome-flutter&lt;/h3&gt;
&lt;p&gt;https://github.com/Solido/awesome-flutter&lt;/p&gt;
&lt;p&gt;An awesome list that curates the best Flutter libraries, tools, tutorials, articles and more.&lt;br /&gt;
精选最佳Flutter库、工具、教程、文章等的资源列表&lt;/p&gt;
&lt;p&gt;&amp;lt;embed type=&quot;image/svg+xml&quot; src=&quot;https://img.shields.io/github/stars/Solido/awesome-flutter.svg?label=awesome-flutter&amp;amp;style=social&quot;&amp;gt;&amp;lt;/embed&amp;gt;&lt;/p&gt;
&lt;h3&gt;14. Awesome-chatgpt-prompts-zh&lt;/h3&gt;
&lt;p&gt;https://github.com/PlexPt/awesome-chatgpt-prompts-zh&lt;/p&gt;
&lt;p&gt;ChatGPT 中文调教指南。各种场景使用指南。学习怎么让它听你的话。&lt;/p&gt;
&lt;p&gt;&amp;lt;embed type=&quot;image/svg+xml&quot; src=&quot;https://img.shields.io/github/stars/PlexPt/awesome-chatgpt-prompts-zh.svg?label=awesome-chatgpt-prompts-zh&amp;amp;style=social&quot;&amp;gt;&amp;lt;/embed&amp;gt;&lt;/p&gt;
&lt;h3&gt;15. Awesome-android-ui&lt;/h3&gt;
&lt;p&gt;https://github.com/wasabeef/awesome-android-ui&lt;/p&gt;
&lt;p&gt;A curated list of awesome Android UI/UX libraries&lt;br /&gt;
精选Android UI/UX库列表&lt;/p&gt;
&lt;p&gt;&amp;lt;embed type=&quot;image/svg+xml&quot; src=&quot;https://img.shields.io/github/stars/wasabeef/awesome-android-ui.svg?label=awesome-android-ui&amp;amp;style=social&quot;&amp;gt;&amp;lt;/embed&amp;gt;&lt;/p&gt;
&lt;h3&gt;16. Awesome Java&lt;/h3&gt;
&lt;p&gt;https://github.com/akullpp/awesome-java&lt;/p&gt;
&lt;p&gt;A curated list of awesome frameworks, libraries and software for the Java programming language.&lt;br /&gt;
Java编程语言的精选框架、库和软件列表&lt;/p&gt;
&lt;p&gt;&amp;lt;embed type=&quot;image/svg+xml&quot; src=&quot;https://img.shields.io/github/stars/akullpp/awesome-java.svg?label=awesome-java&amp;amp;style=social&quot;&amp;gt;&amp;lt;/embed&amp;gt;&lt;/p&gt;
&lt;h3&gt;17. Awesome Compose&lt;/h3&gt;
&lt;p&gt;https://github.com/docker/awesome-compose&lt;/p&gt;
&lt;p&gt;Awesome Docker Compose samples&lt;br /&gt;
优秀的Docker Compose示例集合&lt;/p&gt;
&lt;p&gt;&amp;lt;embed type=&quot;image/svg+xml&quot; src=&quot;https://img.shields.io/github/stars/docker/awesome-compose.svg?label=awesome-compose&amp;amp;style=social&quot;&amp;gt;&amp;lt;/embed&amp;gt;&lt;/p&gt;
&lt;h3&gt;18. Awesome JavaScript&lt;/h3&gt;
&lt;p&gt;https://github.com/sorrycc/awesome-javascript&lt;/p&gt;
&lt;p&gt;A collection of awesome browser-side JavaScript libraries, resources and shiny things.&lt;br /&gt;
浏览器端JavaScript库、资源和炫酷功能的精选集合&lt;/p&gt;
&lt;p&gt;&amp;lt;embed type=&quot;image/svg+xml&quot; src=&quot;https://img.shields.io/github/stars/sorrycc/awesome-javascript.svg?label=awesome-javascript&amp;amp;style=social&quot;&amp;gt;&amp;lt;/embed&amp;gt;&lt;/p&gt;
&lt;h3&gt;19. Awesome Design Tools&lt;/h3&gt;
&lt;p&gt;https://github.com/goabstract/Awesome-Design-Tools&lt;/p&gt;
&lt;p&gt;The best design tools and plugins for everything&lt;br /&gt;
适用于各种场景的最佳设计工具和插件&lt;/p&gt;
&lt;p&gt;&amp;lt;embed type=&quot;image/svg+xml&quot; src=&quot;https://img.shields.io/github/stars/goabstract/Awesome-Design-Tools.svg?label=Awesome-Design-Tools&amp;amp;style=social&quot;&amp;gt;&amp;lt;/embed&amp;gt;&lt;/p&gt;
&lt;h3&gt;20. Awesome Awesomeness&lt;/h3&gt;
&lt;p&gt;https://github.com/bayandin/awesome-awesomeness&lt;/p&gt;
&lt;p&gt;A curated list of awesome awesomeness. 一份精心策划的令人敬畏的清单&lt;/p&gt;
&lt;p&gt;Awesome项目的名单收集项目，和这篇文章做了一样的事情，名单很全面，但描述不够详细&lt;/p&gt;
&lt;p&gt;&amp;lt;embed type=&quot;image/svg+xml&quot; src=&quot;https://img.shields.io/github/stars/bayandin/awesome-awesomeness.svg?label=awesome-awesomeness&amp;amp;style=social&quot;&amp;gt;&amp;lt;/embed&amp;gt;&lt;/p&gt;
&lt;h3&gt;21. Awesome-spider&lt;/h3&gt;
&lt;p&gt;&lt;s&gt;https://github.com/facert/awesome-spider&lt;/s&gt;&lt;/p&gt;
&lt;p&gt;爬虫集合（作者作死在Readme发梯子广告，目前整个库已经删除）&lt;/p&gt;
&lt;p&gt;这里有一份快照存档：https://web.archive.org/web/20240928001646/https://github.com/facert/awesome-spider&lt;/p&gt;
&lt;p&gt;&amp;lt;embed type=&quot;image/svg+xml&quot; src=&quot;https://img.shields.io/github/stars/facert/awesome-spider.svg?label=awesome-spider&amp;amp;style=social&quot;&amp;gt;&amp;lt;/embed&amp;gt;&lt;/p&gt;
</content:encoded></item><item><title>Vue3学习笔记</title><link>https://blog.doracoin.cc/posts/2024/2024-09-06-vue3%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/</link><guid isPermaLink="true">https://blog.doracoin.cc/posts/2024/2024-09-06-vue3%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/</guid><pubDate>Fri, 06 Sep 2024 21:22:58 GMT</pubDate><content:encoded>&lt;p&gt;仅仅只是笔记
&amp;lt;!--more--&amp;gt;&lt;/p&gt;
&lt;h2&gt;Vue3&lt;/h2&gt;
&lt;p&gt;其实Vue3在工作中已经用了很久了，只不过之前都是根据需要按需学习，很碎片化，知识在脑海中不成体系。&lt;/p&gt;
&lt;p&gt;如今从网络上获取知识已不成问题，官方文档加上各个平台网友们记录的各自踩坑记录足以系统化学习和实际应用，因此个人再尝试系统化的整理一些文档明显有些多此一举。&lt;/p&gt;
&lt;p&gt;就如标题，做个学习笔记，记录一下日常踩坑经验用于备忘或是给后来的网友作为参考倒是比较适合的。&lt;/p&gt;
&lt;p&gt;既然日常开发和实际应用已经不成问题，那么个人认为关于社区发展信息的获取就比较重要了，以往学习都是用什么学什么，关于社区环境一点不了解，偶尔在需要技术选型的时候摸不着头脑。&lt;/p&gt;
&lt;p&gt;虽然多数场景无脑选择热门方案即可，但时下Vue3正处于蓬勃发展的高峰，还是更想跟着时代的浪潮走一走，多看一看。&lt;/p&gt;
&lt;p&gt;下面则是查阅并了解了一些基于Vue3的UI组件框架。&lt;/p&gt;
&lt;h2&gt;Vue3 UI组件框架&lt;/h2&gt;
&lt;p&gt;下面的名单按Star数排序了一下，没想到居然 Ant Design 是Star最多的&lt;/p&gt;
&lt;h3&gt;Ant Design&lt;/h3&gt;
&lt;p&gt;&amp;lt;embed type=&quot;image/svg+xml&quot; src=&quot;https://img.shields.io/github/stars/ant-design/ant-design.svg?label=ant-design&amp;amp;style=social&quot;&amp;gt;&amp;lt;/embed&amp;gt;&lt;/p&gt;
&lt;p&gt;Github：https://github.com/ant-design/ant-design
文档手册：https://ant-design.antgroup.com/components/overview-cn/&lt;/p&gt;
&lt;h3&gt;Vuetify&lt;/h3&gt;
&lt;p&gt;&amp;lt;embed type=&quot;image/svg+xml&quot; src=&quot;https://img.shields.io/github/stars/vuetifyjs/vuetify.svg?label=vuetify&amp;amp;style=social&quot;&amp;gt;&amp;lt;/embed&amp;gt;&lt;/p&gt;
&lt;p&gt;Github：https://github.com/vuetifyjs/vuetify
文档手册：https://vuetifyjs.com/zh-Hans/components/all/&lt;/p&gt;
&lt;p&gt;Vuetify的文档手册，用火狐浏览器访问会报错，导致不能正常浏览，换用Chrome即可&lt;/p&gt;
&lt;h3&gt;Quasar&lt;/h3&gt;
&lt;p&gt;&amp;lt;embed type=&quot;image/svg+xml&quot; src=&quot;https://img.shields.io/github/stars/quasarframework/quasar.svg?label=quasar&amp;amp;style=social&quot;&amp;gt;&amp;lt;/embed&amp;gt;&lt;/p&gt;
&lt;p&gt;Github：https://github.com/quasarframework/quasar
文档手册：https://quasar.dev/components&lt;/p&gt;
&lt;h3&gt;Element Plus&lt;/h3&gt;
&lt;p&gt;&amp;lt;embed type=&quot;image/svg+xml&quot; src=&quot;https://img.shields.io/github/stars/element-plus/element-plus.svg?label=element-plus&amp;amp;style=social&quot;&amp;gt;&amp;lt;/embed&amp;gt;&lt;/p&gt;
&lt;p&gt;Github：https://github.com/element-plus/element-plus
文档手册：https://element-plus.org/zh-CN/component/overview.html&lt;/p&gt;
&lt;h3&gt;Vant&lt;/h3&gt;
&lt;p&gt;&amp;lt;embed type=&quot;image/svg+xml&quot; src=&quot;https://img.shields.io/github/stars/youzan/vant.svg?label=vant&amp;amp;style=social&quot;&amp;gt;&amp;lt;/embed&amp;gt;&lt;/p&gt;
&lt;p&gt;Github：https://github.com/youzan/vant
文档手册：https://vant.pro/vant/&lt;/p&gt;
&lt;h3&gt;Naive UI&lt;/h3&gt;
&lt;p&gt;&amp;lt;embed type=&quot;image/svg+xml&quot; src=&quot;https://img.shields.io/github/stars/tusen-ai/naive-ui.svg?label=naive-ui&amp;amp;style=social&quot;&amp;gt;&amp;lt;/embed&amp;gt;&lt;/p&gt;
&lt;p&gt;Github：https://github.com/tusen-ai/naive-ui
文档手册：https://www.naiveui.com/zh-CN/os-theme/components/avatar&lt;/p&gt;
&lt;h3&gt;PrimeVue&lt;/h3&gt;
&lt;p&gt;&amp;lt;embed type=&quot;image/svg+xml&quot; src=&quot;https://img.shields.io/github/stars/primefaces/primevue.svg?label=primevue&amp;amp;style=social&quot;&amp;gt;&amp;lt;/embed&amp;gt;&lt;/p&gt;
&lt;p&gt;Github：https://github.com/primefaces/primevue
文档手册：https://primevue.org/vite&lt;/p&gt;
&lt;h3&gt;Arco Design Vue&lt;/h3&gt;
&lt;p&gt;&amp;lt;embed type=&quot;image/svg+xml&quot; src=&quot;https://img.shields.io/github/stars/arco-design/arco-design-vue.svg?label=arco-design-vue&amp;amp;style=social&quot;&amp;gt;&amp;lt;/embed&amp;gt;&lt;/p&gt;
&lt;p&gt;Github：https://github.com/arco-design/arco-design-vue
文档手册：https://arco.design/docs/spec/link&lt;/p&gt;
&lt;h3&gt;Tiny Vue&lt;/h3&gt;
&lt;p&gt;&amp;lt;embed type=&quot;image/svg+xml&quot; src=&quot;https://img.shields.io/github/stars/opentiny/tiny-vue.svg?label=tiny-vue&amp;amp;style=social&quot;&amp;gt;&amp;lt;/embed&amp;gt;&lt;/p&gt;
&lt;p&gt;Github：https://github.com/opentiny/tiny-vue
文档手册：https://opentiny.design/tiny-vue/zh-CN/smb-theme/overview&lt;/p&gt;
</content:encoded></item><item><title>Podman学习笔记</title><link>https://blog.doracoin.cc/posts/2024/2024-04-20-podman%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/</link><guid isPermaLink="true">https://blog.doracoin.cc/posts/2024/2024-04-20-podman%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/</guid><pubDate>Sat, 20 Apr 2024 13:22:29 GMT</pubDate><content:encoded>&lt;p&gt;又开始折腾了，真的是忍不住
&amp;lt;!--more--&amp;gt;&lt;/p&gt;
&lt;h2&gt;介绍&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;官网：https://podman.io/&lt;/li&gt;
&lt;li&gt;Github：&amp;lt;object type=&quot;image/svg+xml&quot; data=&quot;https://img.shields.io/github/stars/containers/podman.svg?label=podman&amp;amp;style=social&quot;&amp;gt;&amp;lt;/object&amp;gt;&lt;/li&gt;
&lt;li&gt;Podman Compose: &amp;lt;object type=&quot;image/svg+xml&quot; data=&quot;https://img.shields.io/github/stars/containers/podman-compose.svg?label=podman-compose&amp;amp;style=social&quot;&amp;gt;&amp;lt;/object&amp;gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;安装&lt;/h2&gt;
&lt;h3&gt;先决条件&lt;/h3&gt;
&lt;p&gt;由于 Podman 使用 WSL，因此需要最新版本的 Windows 10 或 Windows 11。在 x64 上，WSL 需要内部版本 18362 或更高版本，以及 19041 或 ARM64 系统需要 later。在内部，WSL 使用 虚拟化，因此您的系统必须支持并具有硬件 已启用虚拟化。如果在 VM 上运行 Windows，则必须 具有支持嵌套虚拟化的 VM。&lt;/p&gt;
&lt;p&gt;WSL 版本需要 &lt;code&gt;&amp;gt;= 1.2.5&lt;/code&gt;，执行 &lt;code&gt;wsl --version&lt;/code&gt; 查看当前版本号，如果版本过低，请先升级 WSL。&lt;/p&gt;
&lt;p&gt;我的电脑在执行 &lt;code&gt;wsl --version&lt;/code&gt; 命令后，提示如下信息：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;wsl --version
命令行选项无效: --version
版权所有(c) Microsoft Corporation。保留所有权利。
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;说明我电脑上的wsl版本太旧了，直接进行更新即可&lt;/p&gt;
&lt;pre&gt;&lt;code&gt; Desktop  wsl --update
正在安装: 适用于 Linux 的 Windows 子系统
已安装 适用于 Linux 的 Windows 子系统。
 Desktop  wsl --version
WSL 版本： 2.1.5.0
内核版本： 5.15.146.1-2
WSLg 版本： 1.0.60
MSRDC 版本： 1.2.5105
Direct3D 版本： 1.611.1-81528511
DXCore 版本： 10.0.25131.1002-220531-1700.rs-onecore-base2-hyp
Windows 版本： 10.0.22631.3447
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;还建议安装现代的“Windows Terminal”， 它为标准 PowerShell 提供了卓越的用户体验，并且 CMD 提示以及 WSL 提示（如果需要）。&lt;/p&gt;
&lt;p&gt;您可以通过搜索 Windows 应用商店或运行 winget 命令：&lt;/p&gt;
&lt;p&gt;&lt;code&gt;winget install Microsoft.WindowsTerminal&lt;/code&gt;&lt;/p&gt;
&lt;h3&gt;安装 Podman&lt;/h3&gt;
&lt;p&gt;安装 Windows Podman 客户端首先要下载 Podman Windows 安装程序。Windows 安装程序是与每个 Podman 一起构建的 版本，可以从官方 GitHub 版本下载 页面 。请务必下载 4.1 或更高版本的 本指南中讨论的功能。&lt;/p&gt;
&lt;h3&gt;安装 Podman Compose&lt;/h3&gt;
&lt;p&gt;&lt;a href=&quot;https://podman-desktop.io/docs/compose/setting-up-compose&quot;&gt;官方手册&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;进入桌面端： &lt;code&gt;Settings &amp;gt; Resources&lt;/code&gt;.
在 Compose 标题, 点击 &lt;code&gt;Setup&lt;/code&gt;, 这时Podman就会去下载 Podman Compose 安装程序，这个过程持续时长视网络情况而定，安装成功后界面会提示进行下一步，然后跟着提示操作即可.&lt;/p&gt;
&lt;h3&gt;配置镜像&lt;/h3&gt;
&lt;p&gt;https://podman-desktop.io/docs/containers/registries#setting-up-a-registry-with-an-insecure-certificate&lt;/p&gt;
&lt;p&gt;默认配置文件在 podman machine 内部，执行命令：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;podman machine ssh --username root
vi /etc/containers/registries.conf

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;贴出示例文件，说明都在注释里面，看不懂的翻译一下即可&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# For more information on this configuration file, see containers-registries.conf(5).
#
# NOTE: RISK OF USING UNQUALIFIED IMAGE NAMES
# We recommend always using fully qualified image names including the registry
# server (full dns name), namespace, image name, and tag
# (e.g., registry.redhat.io/ubi8/ubi:latest). Pulling by digest (i.e.,
# quay.io/repository/name@digest) further eliminates the ambiguity of tags.
# When using short names, there is always an inherent risk that the image being
# pulled could be spoofed. For example, a user wants to pull an image named
# `foobar` from a registry and expects it to come from myregistry.com. If
# myregistry.com is not first in the search list, an attacker could place a
# different `foobar` image at a registry earlier in the search list. The user
# would accidentally pull and run the attacker&apos;s image and code rather than the
# intended content. We recommend only adding registries which are completely
# trusted (i.e., registries which don&apos;t allow unknown or anonymous users to
# create accounts with arbitrary names). This will prevent an image from being
# spoofed, squatted or otherwise made insecure.  If it is necessary to use one
# of these registries, it should be added at the end of the list.
#
# # An array of host[:port] registries to try when pulling an unqualified image, in order.
unqualified-search-registries = [&quot;registry.fedoraproject.org&quot;, &quot;registry.access.redhat.com&quot;, &quot;docker.io&quot;, &quot;quay.io&quot;]
#
[[registry]]
# # The &quot;prefix&quot; field is used to choose the relevant [[registry]] TOML table;
# # (only) the TOML table with the longest match for the input image name
# # (taking into account namespace/repo/tag/digest separators) is used.
# #
# # The prefix can also be of the form: *.example.com for wildcard subdomain
# # matching.
# #
# # If the prefix field is missing, it defaults to be the same as the &quot;location&quot; field.
# prefix = &quot;example.com/foo&quot;
prefix = &quot;*.ustc.edu.cn&quot;
#
# # If true, unencrypted HTTP as well as TLS connections with untrusted
# # certificates are allowed.
# insecure = false
#
# # If true, pulling images with matching names is forbidden.
# blocked = false
#
# # The physical location of the &quot;prefix&quot;-rooted namespace.
# #
# # By default, this is equal to &quot;prefix&quot; (in which case &quot;prefix&quot; can be omitted
# # and the [[registry]] TOML table can only specify &quot;location&quot;).
# #
# # Example: Given
# #   prefix = &quot;example.com/foo&quot;
# #   location = &quot;internal-registry-for-example.com/bar&quot;
# # requests for the image example.com/foo/myimage:latest will actually work with the
# # internal-registry-for-example.com/bar/myimage:latest image.
#
# # The location can be empty if prefix is in a
# # wildcarded format: &quot;*.example.com&quot;. In this case, the input reference will
# # be used as-is without any rewrite.
# location = internal-registry-for-example.com/bar&quot;
#
# # (Possibly-partial) mirrors for the &quot;prefix&quot;-rooted namespace.
# #
# # The mirrors are attempted in the specified order; the first one that can be
# # contacted and contains the image will be used (and if none of the mirrors contains the image,
# # the primary location specified by the &quot;registry.location&quot; field, or using the unmodified
# # user-specified reference, is tried last).
# #
# # Each TOML table in the &quot;mirror&quot; array can contain the following fields, with the same semantics
# # as if specified in the [[registry]] TOML table directly:
# # - location
# # - insecure

[[registry.mirror]]
location = &quot;docker.mirrors.ustc.edu.cn&quot;

# location = &quot;example-mirror-0.local/mirror-for-foo&quot;
# [[registry.mirror]]
# location = &quot;example-mirror-1.local/mirrors/foo&quot;
# insecure = true
# # Given the above, a pull of example.com/foo/image:latest will try:
# # 1. example-mirror-0.local/mirror-for-foo/image:latest
# # 2. example-mirror-1.local/mirrors/foo/image:latest
# # 3. internal-registry-for-example.com/bar/image:latest
# # in order, and use the first one that exists.

short-name-mode=&quot;enforcing&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;其他相关工具&lt;/h2&gt;
&lt;h3&gt;Kind&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;官网：https://kind.sigs.k8s.io/&lt;/li&gt;
&lt;li&gt;Github：&amp;lt;object type=&quot;image/svg+xml&quot; data=&quot;https://img.shields.io/github/stars/kubernetes-sigs/kind.svg?label=kind&amp;amp;style=social&quot;&amp;gt;&amp;lt;/object&amp;gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;kind 是使用 Docker 容器“节点”运行本地 Kubernetes 集群的工具。&lt;/p&gt;
&lt;p&gt;kind 主要用于测试 Kubernetes 本身，但也可用于本地开发或 CI。&lt;/p&gt;
&lt;p&gt;如果您已经 安装了 go 1.16+ 和 docker 、 podman 或 nerdctl go install sigs.k8s.io/kind@v0.22.0 &amp;amp;&amp;amp; kind create cluster 就是你所需要的！&lt;/p&gt;
&lt;h3&gt;K3s&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;官网：https://k3s.io/&lt;/li&gt;
&lt;li&gt;Github：&amp;lt;object type=&quot;image/svg+xml&quot; data=&quot;https://img.shields.io/github/stars/k3s-io/k3s.svg?label=k3s&amp;amp;style=social&quot;&amp;gt;&amp;lt;/object&amp;gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;K3s 是轻量级的 Kubernetes。K3s 易于安装，仅需要 Kubernetes 内存的一半，所有组件都在一个小于 100 MB 的二进制文件中。&lt;/p&gt;
&lt;p&gt;它适用于：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Edge&lt;/li&gt;
&lt;li&gt;IoT&lt;/li&gt;
&lt;li&gt;CI&lt;/li&gt;
&lt;li&gt;Development&lt;/li&gt;
&lt;li&gt;ARM&lt;/li&gt;
&lt;li&gt;嵌入 K8s&lt;/li&gt;
&lt;li&gt;不去学习那么多的 Kubernetes 高深知识也能上手使用&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;K3d&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;官网：https://k3d.io/&lt;/li&gt;
&lt;li&gt;Github：&amp;lt;object type=&quot;image/svg+xml&quot; data=&quot;https://img.shields.io/github/stars/rancher/k3d.svg?label=k3d&amp;amp;style=social&quot;&amp;gt;&amp;lt;/object&amp;gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;k3d 是一个轻量级的包装器，用于 在 docker 中运行 k3s （Rancher Lab 的最小 Kubernetes 发行版）。&lt;/p&gt;
&lt;p&gt;k3d 使得在 docker 中创建单节点和多节点 k3s 集群变得非常容易，例如用于 Kubernetes 上的本地开发。&lt;/p&gt;
&lt;p&gt;注意： k3d 是一个 社区驱动的项目 ，但它不是 Rancher （SUSE） 的官方产品。 赞助 ：为了花费大量时间改进 k3d，我们依靠赞助&lt;/p&gt;
</content:encoded></item><item><title>开源网盘Alist安装</title><link>https://blog.doracoin.cc/posts/2024/2024-04-09-%E5%BC%80%E6%BA%90%E7%BD%91%E7%9B%98alist%E5%AE%89%E8%A3%85/</link><guid isPermaLink="true">https://blog.doracoin.cc/posts/2024/2024-04-09-%E5%BC%80%E6%BA%90%E7%BD%91%E7%9B%98alist%E5%AE%89%E8%A3%85/</guid><pubDate>Tue, 09 Apr 2024 14:42:22 GMT</pubDate><content:encoded>&lt;p&gt;用过不少开源类网盘的开源程序了，就个人体验来讲，这款算是使用最顺手的了
&amp;lt;!--more--&amp;gt;&lt;/p&gt;
&lt;h2&gt;安装&lt;/h2&gt;
&lt;p&gt;Github：&amp;lt;object type=&quot;image/svg+xml&quot; data=&quot;https://img.shields.io/github/stars/alist-org/alist.svg?label=alist&amp;amp;style=social&quot;&amp;gt;&amp;lt;/object&amp;gt;
官方手册：https://alist.nn.ci/zh/&lt;/p&gt;
&lt;p&gt;人生苦短，我用docker，何况是官方提供的docker&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;compose.yml&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code&gt;version: &apos;3.3&apos;
services:
  alist:
    image: xhofe/alist:v3.33.0-ffmpeg
    container_name: alist
    environment:
      - TZ=Asia/Shanghai
      - PUID=0
      - PGID=0
      - UMASK=022
    volumes:
      - ./alistdata:/opt/alist/data
    expose:
      - 5244
    ports:
      - 5244:5244
    restart: unless-stopped
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;控制命令：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;docker compose up -d
docker compose down
docker compose restart
&lt;/code&gt;&lt;/pre&gt;
</content:encoded></item><item><title>VirualBox虚拟机启动时报错VERR_CPUM_INCOMPATIBLE_XSAVE_COMP_MASK</title><link>https://blog.doracoin.cc/posts/2024/2024-04-08-virualbox%E8%99%9A%E6%8B%9F%E6%9C%BA%E5%90%AF%E5%8A%A8%E6%97%B6%E6%8A%A5%E9%94%99verr-cpum-incompatible-xsave-comp-mask/</link><guid isPermaLink="true">https://blog.doracoin.cc/posts/2024/2024-04-08-virualbox%E8%99%9A%E6%8B%9F%E6%9C%BA%E5%90%AF%E5%8A%A8%E6%97%B6%E6%8A%A5%E9%94%99verr-cpum-incompatible-xsave-comp-mask/</guid><pubDate>Mon, 08 Apr 2024 21:24:32 GMT</pubDate><content:encoded>&lt;p&gt;虚拟机也是个吃灰的玩具
&amp;lt;!--more--&amp;gt;&lt;/p&gt;
&lt;p&gt;好久之前使用的VirualBox虚拟机，今天启动时出现以下错误：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;VERR_CPUM_INCOMPATIBLE_XSAVE_COMP_MASK
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;网上查了下，该问题的根本原因是因为上次在关闭虚拟机的时候选择了保存状态&lt;/p&gt;
&lt;p&gt;而在此之后，我又对VirtualBox进行了升级，导致了此次的错误&lt;/p&gt;
&lt;p&gt;解决方法：&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;右键单击管理器中的 VM，然后点击 &quot;放弃保存的状态&quot;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;参考链接：https://forums.virtualbox.org/viewtopic.php?t=99508&lt;/p&gt;
</content:encoded></item><item><title>关于开源项目的Git仓库管理</title><link>https://blog.doracoin.cc/posts/2024/2024-03-21-%E5%85%B3%E4%BA%8E%E5%BC%80%E6%BA%90%E9%A1%B9%E7%9B%AE%E7%9A%84git%E4%BB%93%E5%BA%93%E7%AE%A1%E7%90%86/</link><guid isPermaLink="true">https://blog.doracoin.cc/posts/2024/2024-03-21-%E5%85%B3%E4%BA%8E%E5%BC%80%E6%BA%90%E9%A1%B9%E7%9B%AE%E7%9A%84git%E4%BB%93%E5%BA%93%E7%AE%A1%E7%90%86/</guid><pubDate>Thu, 21 Mar 2024 15:19:54 GMT</pubDate><content:encoded>&lt;p&gt;其实管理方式有很多，这篇文章仅适用于我个人的使用场景，一些愚见
&amp;lt;!--more--&amp;gt;&lt;/p&gt;
&lt;h2&gt;简介&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&amp;lt;mark&amp;gt;仓库：Repository&amp;lt;/mark&amp;gt;&lt;/li&gt;
&lt;li&gt;&amp;lt;mark&amp;gt;分支：Branch&amp;lt;/mark&amp;gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;开源框架的使用，需要在上游原仓库代码的基础上进行自己业务的开发。&lt;/p&gt;
&lt;p&gt;由于框架的版本迭代，框架的代码结构及业务可能会发生改变，这就会导致我们之前写的代码，在框架升级后无法正常运行。&lt;/p&gt;
&lt;p&gt;为了保证Git提交记录可以一直在上游的分支上，所以我们需要进行多仓库管理。&lt;/p&gt;
&lt;p&gt;目前推荐的做法为：&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;上游原仓&lt;/th&gt;
&lt;th&gt;⇄&lt;/th&gt;
&lt;th&gt;同步仓&lt;/th&gt;
&lt;th&gt;⇄&lt;/th&gt;
&lt;th&gt;业务仓&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;仓库说明&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;跟进最新改动&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;以上游仓为基础，我们需要进行一些自定义修改，统一化处理等功能&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;以同步仓为基础进行业务场景开发的仓库&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;分支说明&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;一般情况下我们只同步master分支&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;我们需要同步上游的master分支，然后将该master分支，再合并到我们自定义处理的分支上&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;我们需要同步仓自定义后的分支，在同步仓的基础上，再开自己的业务分支&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&amp;lt;tag blue&amp;gt;master&amp;lt;/tag&amp;gt;&lt;/td&gt;
&lt;td&gt;⇄&lt;/td&gt;
&lt;td&gt;&amp;lt;tag blue&amp;gt;master&amp;lt;/tag&amp;gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;⇅ git merge&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&amp;lt;tag green&amp;gt;my-master&amp;lt;/tag&amp;gt;&lt;/td&gt;
&lt;td&gt;⇄&lt;/td&gt;
&lt;td&gt;&amp;lt;tag green&amp;gt;my-master&amp;lt;/tag&amp;gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;⇅ git merge&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&amp;lt;tag yellow&amp;gt;my-dev&amp;lt;/tag&amp;gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;pre&gt;&lt;code&gt;sequenceDiagram
participant 上游仓库
participant 同步仓库
participant 业务仓库
loop 同步分支
同步仓库--&amp;gt;&amp;gt;上游仓库: master
上游仓库--&amp;gt;&amp;gt;同步仓库: 
end
opt 检出 my-master
alt
同步仓库-&amp;gt;&amp;gt;同步仓库: `master` merge into my-master
end
end
loop 同步分支
同步仓库--&amp;gt;&amp;gt;业务仓库: my-master
业务仓库--&amp;gt;&amp;gt;同步仓库: 
end
opt 检出 my-dev
alt
业务仓库-&amp;gt;&amp;gt;业务仓库: `my-master` merge into my-dev
end
end

&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;操作过程：&lt;/h2&gt;
&lt;p&gt;Git 仓库是支持多远端功能的&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;先 &lt;code&gt;git clone&lt;/code&gt; 一份上游仓库到本地&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;然后到Git服务(如Gitee/Github/Gitlab)上创建一个空仓库，拿到仓库的链接，例:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;https://gitee.com/yourname/yourrepository.git&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;将该仓库的链接添加到本地仓库中，一般情况下，origin 代表默认仓库，我们可以执行如下语句添加第二个仓库：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;git remote add MySync https://gitee.com/yourname/yourrepository.git
&lt;/code&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;然后将代码信息推送到刚刚添加的仓库上：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;git push MySync master:master
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;这样我们的同步仓就拥有了完整的上游仓库信息&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;然后我们检出一个自己的主分支，用于做自定义处理等业务，如：去开源标识、第三方链接、初始化数据、强密码登录、全屏水印等功能&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;git branch checkout my-master
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;然后这个分支就一直保留下去，当作我们使用开源项目进行自己业务开发的 &apos;模板&apos; 代码&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;当我们有了新的业务开发，同样到Git服务上创建一个新的空仓库，拿到仓库链接，例：&lt;/p&gt;
&lt;p&gt;&lt;code&gt;https://gitee.com/yourname/your-custom.git&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;然后将该链接添加到同步仓的远端中：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;git remote add MyCustom https://gitee.com/yourname/your-custom.git
&lt;/code&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;然后将 &lt;code&gt;my-master&lt;/code&gt; 分支推送到我们的业务仓中：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;git push MyCustom my-master:my-master
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;这样我们的业务仓，就与 &apos;模板&apos; 仓保持了一致的版本信息&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;为了避免误操作导致仓库信息错乱，我们应该 &lt;code&gt;clone&lt;/code&gt; 业务仓到一个新的文件夹中，并且在 &lt;code&gt;my-master&lt;/code&gt; 分支的基础上新开一个分支，例如：&lt;code&gt;my-dev&lt;/code&gt;，以后所有的业务开发，都在 &lt;code&gt;my-dev&lt;/code&gt; 上进行。&lt;/p&gt;
&lt;p&gt;当模板仓(同步仓)与上游代码合并，或者自定义处理、统一性功能等进行了更新时，就用模板仓推送 &lt;code&gt;my-master&lt;/code&gt; 到业务仓，然后业务仓再将 &lt;code&gt;my-master&lt;/code&gt; 与 &lt;code&gt;my-dev&lt;/code&gt; 合并即可&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
</content:encoded></item><item><title>Firefox浏览器忽略过期证书、无效证书</title><link>https://blog.doracoin.cc/posts/2023/2023-12-13-firefox%E6%B5%8F%E8%A7%88%E5%99%A8%E5%BF%BD%E7%95%A5%E8%BF%87%E6%9C%9F%E8%AF%81%E4%B9%A6%E6%97%A0%E6%95%88%E8%AF%81%E4%B9%A6/</link><guid isPermaLink="true">https://blog.doracoin.cc/posts/2023/2023-12-13-firefox%E6%B5%8F%E8%A7%88%E5%99%A8%E5%BF%BD%E7%95%A5%E8%BF%87%E6%9C%9F%E8%AF%81%E4%B9%A6%E6%97%A0%E6%95%88%E8%AF%81%E4%B9%A6/</guid><pubDate>Wed, 13 Dec 2023 14:32:33 GMT</pubDate><content:encoded>&lt;p&gt;经常搜到有好多人的网站证书过期了想不起续期，但是又需要看到该网站的内容
&amp;lt;!--more--&amp;gt;
现在的浏览器为了安全，在站点开启HSTS的情况下，过期证书是不可以通过点击 &quot;详情&quot; -&amp;gt; &quot;继续浏览该网站(不安全)&quot; 这种方式继续访问的&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://img.doracoin.cc/images/2023/12/13/0162313db2ca875bb71454512c1f2cc1.png&quot; alt=&quot;Chrome提示&quot; /&gt;
&lt;img src=&quot;https://img.doracoin.cc/images/2023/12/13/20d84e85626765a9c2fcd5b3b97f7095.png&quot; alt=&quot;Firefox提示&quot; /&gt;&lt;/p&gt;
&lt;p&gt;火狐浏览器可以在设置中“添加例外”&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://img.doracoin.cc/images/2023/12/13/b3fb94593701939bdf441561097f8fbc.png&quot; alt=&quot;b3fb94593701939bdf441561097f8fbc.png&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://img.doracoin.cc/images/2023/12/13/193fda702821a0840578770ae1ecfc1e.png&quot; alt=&quot;193fda702821a0840578770ae1ecfc1e.png&quot; /&gt;&lt;/p&gt;
</content:encoded></item><item><title>开源远程管理工具集合</title><link>https://blog.doracoin.cc/posts/2023/2023-12-05-%E5%BC%80%E6%BA%90%E8%BF%9C%E7%A8%8B%E7%AE%A1%E7%90%86%E5%B7%A5%E5%85%B7%E9%9B%86%E5%90%88/</link><guid isPermaLink="true">https://blog.doracoin.cc/posts/2023/2023-12-05-%E5%BC%80%E6%BA%90%E8%BF%9C%E7%A8%8B%E7%AE%A1%E7%90%86%E5%B7%A5%E5%85%B7%E9%9B%86%E5%90%88/</guid><pubDate>Tue, 05 Dec 2023 15:45:29 GMT</pubDate><content:encoded>&lt;p&gt;继续折腾
&amp;lt;!--more--&amp;gt;&lt;/p&gt;
&lt;h2&gt;Self-Host&lt;/h2&gt;
&lt;h3&gt;next-terminal&lt;/h3&gt;
&lt;p&gt;官网: https://next-terminal.typesafe.cn/
Github: &amp;lt;object type=&quot;image/svg+xml&quot; data=&quot;https://img.shields.io/github/stars/dushixiang/next-terminal.svg?label=next-terminal&amp;amp;style=social&quot;&amp;gt;&amp;lt;/object&amp;gt;
Demo: https://next.typesafe.cn/#/asset&lt;/p&gt;
&lt;h3&gt;1Remote&lt;/h3&gt;
&lt;p&gt;官网: https://1remote.org/zh-cn/
Github: &amp;lt;object type=&quot;image/svg+xml&quot; data=&quot;https://img.shields.io/github/stars/1Remote/1Remote.svg?label=1Remote&amp;amp;style=social&quot;&amp;gt;&amp;lt;/object&amp;gt;&lt;/p&gt;
&lt;h3&gt;natpass&lt;/h3&gt;
&lt;p&gt;先说结论：还不成熟，并不很好用，shell链接不支持诸如:top、htop、gotop之类动态刷新控制台界面的命令；vnc连接局域网测试都卡成PPT，code-server倒是没有测试，不过看来也没必要测试了。&lt;/p&gt;
&lt;p&gt;官网: https://lwch.gitbook.io/natpass/introduce/startup
Github: &amp;lt;object type=&quot;image/svg+xml&quot; data=&quot;https://img.shields.io/github/stars/lwch/natpass.svg?label=natpass&amp;amp;style=social&quot;&amp;gt;&amp;lt;/object&amp;gt;&lt;/p&gt;
</content:encoded></item><item><title>笔记软件产品收录</title><link>https://blog.doracoin.cc/posts/2023/2023-11-23-%E7%AC%94%E8%AE%B0%E8%BD%AF%E4%BB%B6%E4%BA%A7%E5%93%81%E6%94%B6%E5%BD%95/</link><guid isPermaLink="true">https://blog.doracoin.cc/posts/2023/2023-11-23-%E7%AC%94%E8%AE%B0%E8%BD%AF%E4%BB%B6%E4%BA%A7%E5%93%81%E6%94%B6%E5%BD%95/</guid><pubDate>Thu, 23 Nov 2023 13:47:41 GMT</pubDate><content:encoded>&lt;p&gt;笔记软件圈子怎么这么卷啊&amp;lt;!--more--&amp;gt;&lt;/p&gt;
&lt;h2&gt;开源&lt;/h2&gt;
&lt;h2&gt;Focalboard&lt;/h2&gt;
&lt;p&gt;简介: 偏重项目管理和任务管理。
官网: https://www.focalboard.com/
Github: https://github.com/mattermost/focalboard
相关文章: https://zhuanlan.zhihu.com/p/552965032&lt;/p&gt;
&lt;h2&gt;Anytype&lt;/h2&gt;
&lt;p&gt;简介: 高度重视隐私，采用了 IPFS 等安全机制。与 Notion 设计思想有区别，一切以 Object 为基石。具体见参考文献。
官网: https://anytype.io/
Github: https://github.com/anyproto/anytype-ts
相关文章:&lt;/p&gt;
&lt;h2&gt;AppFlowy&lt;/h2&gt;
&lt;p&gt;简介: 1.重视数据隐私第一；2.原生开发；3.社区驱动
官网: https://appflowy.io/
Github: https://github.com/AppFlowy-IO/AppFlowy
相关文章:&lt;/p&gt;
&lt;h2&gt;AFFiNE&lt;/h2&gt;
&lt;p&gt;&amp;lt;tag blue bookmark&amp;gt;开源&amp;lt;/tag&amp;gt;&lt;/p&gt;
&lt;p&gt;简介: 不止步于 Notion、Miro。Affine 是下一代知识库，集计划、分类、创造于一体。隐私至上、开源、可定制化，开箱即用。
官网: https://affine.pro/
Github: https://github.com/toeverything/AFFiNE
相关文章:&lt;/p&gt;
&lt;h2&gt;Obsidian&lt;/h2&gt;
&lt;p&gt;简介:
官网: https://obsidian.md/
Github: 非开源
相关文章: https://zhuanlan.zhihu.com/p/554333805&lt;/p&gt;
&lt;h2&gt;Logseq&lt;/h2&gt;
&lt;p&gt;简介:
官网: https://logseq.com/
Github: https://github.com/logseq/logseq
相关文章: https://sspai.com/post/69503&lt;/p&gt;
&lt;h2&gt;Standard Notes&lt;/h2&gt;
&lt;p&gt;简介: Standard Notes is an end-to-end encrypted note-taking app for digitalists and professionals. Capture your notes, files, and life’s work all in one secure place.
官网: https://standardnotes.com/demo
Github: https://github.com/standardnotes/app
相关文章:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;https://www.appinn.com/standard-notes/&lt;/li&gt;
&lt;li&gt;https://niu.sspai.com/prime/story/vol04-standard-notes&lt;/li&gt;
&lt;/ul&gt;
</content:encoded></item><item><title>记一次AndroidStudio构建项目失败问题</title><link>https://blog.doracoin.cc/posts/2023/2023-11-16-%E8%AE%B0%E4%B8%80%E6%AC%A1androidstudio%E6%9E%84%E5%BB%BA%E9%A1%B9%E7%9B%AE%E5%A4%B1%E8%B4%A5%E9%97%AE%E9%A2%98/</link><guid isPermaLink="true">https://blog.doracoin.cc/posts/2023/2023-11-16-%E8%AE%B0%E4%B8%80%E6%AC%A1androidstudio%E6%9E%84%E5%BB%BA%E9%A1%B9%E7%9B%AE%E5%A4%B1%E8%B4%A5%E9%97%AE%E9%A2%98/</guid><pubDate>Thu, 16 Nov 2023 10:09:18 GMT</pubDate><content:encoded>&lt;p&gt;Android开发绕不开的版本兼容问题，只不过这次问题出在构建工具的版本上
&amp;lt;!--more--&amp;gt;&lt;/p&gt;
&lt;h2&gt;前因&lt;/h2&gt;
&lt;p&gt;最近在构建一个老项目的时候遇到了构建报错问题，该项目开发时所使用的JDK版本是1.8、Gradle版本是6.5&lt;/p&gt;
&lt;p&gt;然而如今，AndroidStudio经过多年更新，内置JDK(EmbeddedJDK)版本都从1.8过渡到11又过渡到17了，Gradle也升级到8.x了，这些版本中，JDK版本的更新与Gradle的更新又是不同步的，几个JDK的LTS版本涵盖了Gradle的更新过程，所以导致此次构建失败的原因，基本上就是项目构建时所选用的这两项版本没有对应。&lt;/p&gt;
&lt;h2&gt;解决过程&lt;/h2&gt;
&lt;p&gt;过程很简单，根据报错信息进行索引，如果真的是因为版本之间的兼容问题——这里指的是JDK和Gradle版本之间，那么总会在网络上搜寻到各个版本之间对应关系，最后进行项目配置的切换即可解决问题。&lt;/p&gt;
&lt;p&gt;这中间，可能还会掺杂着Kotlin版本的兼容问题……不过这种情况就要看个人遇到的实际场景进行排查了，比如我这次就遇到了该问题。&lt;/p&gt;
&lt;h2&gt;后果&lt;/h2&gt;
&lt;p&gt;此次事件最终通过使用JDK11和Gradle7.1.1得到解决。&lt;/p&gt;
&lt;h2&gt;事后&lt;/h2&gt;
&lt;p&gt;我打算抽空查一查各个JDK、Gradle版本发布的时间，并做个时间轴，以后再遇到类似场景的时候可以有目的性的排查，总好过网上大海捞针找线索。&lt;/p&gt;
</content:encoded></item><item><title>Fluid主题使用Aplayer</title><link>https://blog.doracoin.cc/posts/2023/2023-09-13-fluid%E4%B8%BB%E9%A2%98%E4%BD%BF%E7%94%A8aplayer/</link><guid isPermaLink="true">https://blog.doracoin.cc/posts/2023/2023-09-13-fluid%E4%B8%BB%E9%A2%98%E4%BD%BF%E7%94%A8aplayer/</guid><pubDate>Wed, 13 Sep 2023 15:50:16 GMT</pubDate><content:encoded>&lt;p&gt;直接使用 hexo-tag-aplayer 会导致 Fluid 主题的自定义脚本在生成静态站点时出现错误&lt;/p&gt;
&lt;p&gt;&amp;lt;!--more--&amp;gt;&lt;/p&gt;
&lt;p&gt;然而我并不知道怎么通过修改代码来解决这个问题，所以找到了官方文档进行解决&lt;/p&gt;
&lt;p&gt;示例：&lt;/p&gt;
&lt;p&gt;&amp;lt;meting-js
autoplay=&quot;true&quot;
server=&quot;netease&quot;
type=&quot;song&quot;
id=&quot;1488990167&quot;&amp;gt;
&amp;lt;/meting-js&amp;gt;&lt;/p&gt;
&lt;h2&gt;说明&lt;/h2&gt;
&lt;p&gt;按照 &lt;a href=&quot;%5BHexo%E6%B3%A8%E5%85%A5%E5%99%A8%5D(https://hexo.fluid-dev.com/posts/hexo-injector/#%E5%AE%9E%E9%99%85%E6%A1%88%E4%BE%8B)&quot;&gt;Fluid 主题官方文档说明&lt;/a&gt;，使用 Hexo 注入器来加载 Aplayer 播放器，详细用法为：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;在 Fluid 主题的 script 文件夹中，新建一个 js 脚本或者在原有的脚本中使用 Hexo 注入器，这里使用 &lt;code&gt;default-injects.js&lt;/code&gt; 文件来举例：&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;&lt;code&gt;console.log(&quot;注入aplayer&quot;);
hexo.extend.injector.register(&quot;body_end&quot;,`
  &amp;lt;div id=&quot;aplayer&quot;&amp;gt;&amp;lt;/div&amp;gt;
  &amp;lt;link defer rel=&quot;stylesheet&quot; href=&quot;https://cdn.staticfile.org/aplayer/1.10.1/APlayer.min.css&quot; /&amp;gt;
  &amp;lt;script src=&quot;https://cdn.staticfile.org/aplayer/1.10.1/APlayer.min.js&quot;&amp;gt;&amp;lt;/script&amp;gt;
  &amp;lt;script defer src=&quot;/js/aplayer.js&quot;&amp;gt;&amp;lt;/script&amp;gt;
  `
);
&lt;/code&gt;&lt;/pre&gt;
&lt;ol&gt;
&lt;li&gt;然后在博客的&lt;code&gt;source/js/&lt;/code&gt;文件夹中新建一个 js 脚本，在 Web 前端加载 Aplayer，例如新建 &lt;code&gt;source/js/aplayer.js&lt;/code&gt;，详细参数参考&lt;a href=&quot;%5BAplayer%E9%A6%96%E9%A1%B5%5D(https://aplayer.js.org/#/zh-Hans/?id=%E5%8F%82%E6%95%B0)&quot;&gt;官网&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;&lt;code&gt;!(function () {
  console.log(&quot;aplayer加载中&quot;);
  var oldLoadAp = window.onload;
  window.onload = function () {
    oldLoadAp &amp;amp;&amp;amp; oldLoadAp();

    var ele = document.getElementById(&quot;aplayer&quot;);
    if (ele != undefined || ele != null) {
      new APlayer({
        container: document.getElementById(&quot;aplayer&quot;),
        fixed: true,
        autoplay: false,
        loop: &quot;all&quot;,
        order: &quot;random&quot;,
        theme: &quot;#b7daff&quot;,
        preload: &quot;none&quot;,
        audio: [
          {
            name: &quot;song1&quot;,
            artist: &quot;artist1&quot;,
            url: &quot;music.mp3&quot;,
            cover: &quot;cover.jpg&quot;,
          },
        ],
      });
    }
  };
})();
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;配置完成后，Aplayer 脚本会在当前网页中寻找 id 为&lt;code&gt;aplayer&lt;/code&gt;的布局进行初始化，然后在网页的左下角将出现一个小小的音乐播放器。&lt;/p&gt;
&lt;p&gt;这是 Aplayer 最原始的用法，并不支持音乐 API，使用 API 需要注入 Meting，在上面的代码基础上稍作修改：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;console.log(&quot;注入aplayer&quot;);
hexo.extend.injector.register(&quot;body_end&quot;,`
  &amp;lt;div id=&quot;aplayer&quot;&amp;gt;&amp;lt;/div&amp;gt;
  &amp;lt;link defer rel=&quot;stylesheet&quot; href=&quot;https://cdn.staticfile.org/aplayer/1.10.1/APlayer.min.css&quot; /&amp;gt;
  &amp;lt;script src=&quot;https://cdn.staticfile.org/aplayer/1.10.1/APlayer.min.js&quot;&amp;gt;&amp;lt;/script&amp;gt;
  &amp;lt;script src=&quot;https://cdn.jsdelivr.net/npm/meting@2/dist/Meting.min.js&quot;&amp;gt;&amp;lt;/script&amp;gt;
  &amp;lt;script defer src=&quot;/js/aplayer.js&quot;&amp;gt;&amp;lt;/script&amp;gt;
  `
);
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;只需要在 APlayer 加载之后加载 Meting 即可，然后在想要插入音乐的文档中加入如下内容即可，详细参数参考&lt;a href=&quot;%5BMetingJSQuickStart%5D(https://github.com/metowolf/MetingJS#quick-start)&quot;&gt;官网&lt;/a&gt;：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;meting-js
  autoplay=&quot;true&quot;
  server=&quot;netease&quot;
  type=&quot;song&quot;
  id=&quot;2059757870&quot;&amp;gt;
&amp;lt;/meting-js&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;由于 Markdown 语法是支持 Markdown+Html 混合解析的，理论上这段代码插入在哪里都可以使用，这篇文章最开始的音乐就是这样插入的。&lt;/p&gt;
&lt;p&gt;如上示例的参数，播放器将会和文章内容嵌入在一起，加上&lt;code&gt;fixed=&quot;true&quot;&lt;/code&gt; 播放器将会自动播放音乐，但可能会被浏览器栏截。&lt;/p&gt;
</content:encoded></item><item><title>Shields.io图像辅助生成工具</title><link>https://blog.doracoin.cc/posts/2023/2023-08-07-shields-io-%E8%BE%85%E5%8A%A9%E5%B7%A5%E5%85%B7/</link><guid isPermaLink="true">https://blog.doracoin.cc/posts/2023/2023-08-07-shields-io-%E8%BE%85%E5%8A%A9%E5%B7%A5%E5%85%B7/</guid><pubDate>Mon, 07 Aug 2023 14:37:00 GMT</pubDate><content:encoded>&lt;p&gt;输入 Github 链接快速生成可用于插入 Markdown 文档的 HTML 代码&lt;/p&gt;
&lt;p&gt;&amp;lt;!--more--&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;div&amp;gt;
&amp;lt;div style=&quot;flex-direction: column;text-align:center;&quot;&amp;gt;
&amp;lt;div&amp;gt;
&amp;lt;b&amp;gt;Github链接：&amp;lt;/b&amp;gt;
&amp;lt;br&amp;gt;&amp;lt;input id=&quot;githubInput&quot; style=&quot;width: 520px;&quot; placeholder=&quot;这里输入Github链接&quot; /&amp;gt;
&amp;lt;/div&amp;gt;
↓↓↓
&amp;lt;hr&amp;gt;
&amp;lt;/div&amp;gt;
&amp;lt;div style=&quot;border: solid #e7f5f8 1px; border-radius: 5px;padding: 10px;text-align:center;&quot;&amp;gt;
&amp;lt;b&amp;gt;&amp;lt;object&amp;gt;标签：&amp;lt;/b&amp;gt;
&amp;lt;br&amp;gt;&amp;lt;textarea id=&quot;result1&quot; rows=&quot;3&quot; cols=&quot;60&quot; placeholder=&quot;这里显示插入代码&quot;&amp;gt;&amp;lt;/textarea&amp;gt;
&amp;lt;br&amp;gt;&amp;lt;b&amp;gt;预览：&amp;lt;/b&amp;gt;
&amp;lt;div id=&quot;preview1&quot; style=&quot;margin-top:10px&quot;&amp;gt;
&amp;lt;/div&amp;gt;
&amp;lt;/div&amp;gt;
&amp;lt;div style=&quot;border: solid #e7f5f8 1px; border-radius: 5px;padding: 10px;text-align:center;&quot;&amp;gt;
&amp;lt;b&amp;gt;&amp;lt;embed&amp;gt;标签：&amp;lt;/b&amp;gt;
&amp;lt;br&amp;gt;&amp;lt;textarea id=&quot;result2&quot; rows=&quot;3&quot; cols=&quot;60&quot; placeholder=&quot;这里显示插入代码&quot;&amp;gt;&amp;lt;/textarea&amp;gt;
&amp;lt;br&amp;gt;&amp;lt;b&amp;gt;预览：&amp;lt;/b&amp;gt;
&amp;lt;div id=&quot;preview2&quot; style=&quot;margin-top:10px&quot;&amp;gt;
&amp;lt;/div&amp;gt;
&amp;lt;/div&amp;gt;
&amp;lt;div style=&quot;border: solid #e7f5f8 1px; border-radius: 5px;padding: 10px;text-align:center;&quot;&amp;gt;
&amp;lt;b&amp;gt;&amp;lt;img&amp;gt;标签：&amp;lt;/b&amp;gt;
&amp;lt;br&amp;gt;&amp;lt;textarea id=&quot;result3&quot; rows=&quot;3&quot; cols=&quot;60&quot; placeholder=&quot;这里显示插入代码&quot;&amp;gt;&amp;lt;/textarea&amp;gt;
&amp;lt;br&amp;gt;&amp;lt;b&amp;gt;预览：&amp;lt;/b&amp;gt;
&amp;lt;div id=&quot;preview3&quot; style=&quot;margin-top:10px&quot;&amp;gt;
&amp;lt;/div&amp;gt;
&amp;lt;/div&amp;gt;
&amp;lt;/div&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;script type=&quot;text/javascript&quot;&amp;gt;
var input = document.querySelector(&apos;#githubInput&apos;);
var githubUrl = input.value;
var repoOwner = &quot;&quot;;
var repoName = &quot;&quot;;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;function getLink() {
    if (githubUrl.lastIndexOf(&quot;.git&quot; &amp;gt;= 0)) {
        githubUrl = githubUrl.replace(&quot;.git&quot;, &quot;&quot;);
    }
    result = {
        img: &apos;&apos;,
        embed: &apos;&apos;,
        object: &apos;&apos;,
    }
    if (githubUrl.indexOf(&quot;https://github.com&quot;) &amp;gt;= 0) {
        var repoInfos = githubUrl.replace(&quot;https://github.com/&quot;, &quot;&quot;).split(&quot;/&quot;)
        repoOwner = repoInfos[0]
        repoName = repoInfos[1]
        result.img = `&amp;lt;span&amp;gt;&amp;lt;a href=&quot;${githubUrl}&quot;&amp;gt;&amp;lt;img src=&quot;https://img.shields.io/github/stars/${repoOwner}/${repoName}.svg?label=${repoName}&amp;amp;style=social&quot;&amp;gt;&amp;lt;/img&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/span&amp;gt;`;
        result.embed = `&amp;lt;embed type=&quot;image/svg+xml&quot; src=&quot;https://img.shields.io/github/stars/${repoOwner}/${repoName}.svg?label=${repoName}&amp;amp;style=social&quot;&amp;gt;&amp;lt;/embed&amp;gt;`;
        result.object = `&amp;lt;object type=&quot;image/svg+xml&quot; data=&quot;https://img.shields.io/github/stars/${repoOwner}/${repoName}.svg?label=${repoName}&amp;amp;style=social&quot;&amp;gt;&amp;lt;/object&amp;gt;`;
    }
    return result
}
function setPreview(result) {
    document.querySelector(&apos;#result1&apos;).value = result.object;
    document.querySelector(&apos;#preview1&apos;).innerHTML = result.object;
    document.querySelector(&apos;#result2&apos;).value = result.embed;
    document.querySelector(&apos;#preview2&apos;).innerHTML = result.embed;
    document.querySelector(&apos;#result3&apos;).value = result.img;
    document.querySelector(&apos;#preview3&apos;).innerHTML = result.img;
}
input.oninput = function onInput(e) {
    console.log(&apos;oninput 正在输入:&apos;, e.target.value);
    githubUrl = e.target.value;
    setPreview(getLink());
}
setPreview(getLink());
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;lt;/script&amp;gt;&lt;/p&gt;
</content:encoded></item><item><title>开源数据库工具整合</title><link>https://blog.doracoin.cc/posts/2023/2023-08-07-%E5%BC%80%E6%BA%90%E6%95%B0%E6%8D%AE%E5%BA%93%E5%B7%A5%E5%85%B7%E6%95%B4%E5%90%88/</link><guid isPermaLink="true">https://blog.doracoin.cc/posts/2023/2023-08-07-%E5%BC%80%E6%BA%90%E6%95%B0%E6%8D%AE%E5%BA%93%E5%B7%A5%E5%85%B7%E6%95%B4%E5%90%88/</guid><pubDate>Mon, 07 Aug 2023 11:09:51 GMT</pubDate><content:encoded>&lt;p&gt;开源真是百花齐放&amp;lt;!--more--&amp;gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&amp;lt;object data=&quot;https://img.shields.io/github/stars/dbeaver/dbeaver.svg?label=dbeaver&amp;amp;style=social&quot;&amp;gt;&amp;lt;/object&amp;gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&amp;lt;object data=&quot;https://img.shields.io/github/stars/beekeeper-studio/beekeeper-studio.svg?label=beekeeper-studio&amp;amp;style=social&quot;&amp;gt;&amp;lt;/object&amp;gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&amp;lt;object data=&quot;https://img.shields.io/github/stars/HeidiSQL/HeidiSQL.svg?label=HeidiSQL&amp;amp;style=social&quot;&amp;gt;&amp;lt;/object&amp;gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&amp;lt;object data=&quot;https://img.shields.io/github/stars/Studio3T/robomongo.svg?label=robomongo&amp;amp;style=social&quot;&amp;gt;&amp;lt;/object&amp;gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&amp;lt;object data=&quot;https://img.shields.io/github/stars/mongodb-js/compass.svg?label=compass&amp;amp;style=social&quot;&amp;gt;&amp;lt;/object&amp;gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
</content:encoded></item><item><title>简单轻量的服务器监测工具Ward</title><link>https://blog.doracoin.cc/posts/2023/2023-08-03-%E7%AE%80%E5%8D%95%E8%BD%BB%E9%87%8F%E7%9A%84%E6%9C%8D%E5%8A%A1%E5%99%A8%E7%9B%91%E6%B5%8B%E5%B7%A5%E5%85%B7ward/</link><guid isPermaLink="true">https://blog.doracoin.cc/posts/2023/2023-08-03-%E7%AE%80%E5%8D%95%E8%BD%BB%E9%87%8F%E7%9A%84%E6%9C%8D%E5%8A%A1%E5%99%A8%E7%9B%91%E6%B5%8B%E5%B7%A5%E5%85%B7ward/</guid><pubDate>Thu, 03 Aug 2023 15:45:00 GMT</pubDate><content:encoded>&lt;p&gt;又一款服务器监控工具&amp;lt;!--more--&amp;gt;&lt;/p&gt;
&lt;p&gt;Ward &amp;lt;object data=&quot;https://img.shields.io/github/stars/Rudolf-Barbu/Ward.svg?label=Ward&amp;amp;style=social&quot;&amp;gt;&amp;lt;/object&amp;gt; 是一个简单又简约的服务器监测工具。 Ward 支持适应性设计的系统。 此外，它支持暗色主题。 它只显示了可以使用的主要信息，如果你想看看好看的仪表板，而不是寻找一堆数字和图表。 Ward 可以良好的运行在所有流行的操作系统，因为它使用了 &amp;lt;object data=&quot;https://img.shields.io/github/stars/oshi/oshi.svg?label=oshi&amp;amp;style=social&quot;&amp;gt;&amp;lt;/object&amp;gt;.&lt;/p&gt;
&lt;p&gt;安装方法参考&lt;a href=&quot;https://github.com/Rudolf-Barbu/Ward#readme&quot;&gt;项目说明&lt;/a&gt;：&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Create your own .jar&lt;/p&gt;
&lt;p&gt;• Clone the project
• Import project in your IDE as Maven project
• Run command &lt;code&gt;mvn clean package&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Run .jar file&lt;/p&gt;
&lt;p&gt;• Download latest .jar from releases section
• Execute jar on Windows or Linux with administrative rights
• Enter localhost:4000 and set up application&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;再附上一份 jar 包运行控制脚本&lt;/p&gt;
&lt;p&gt;{% include_code startjar.sh %}&lt;/p&gt;
</content:encoded></item><item><title>折腾Let&apos;s Encrypt通配符域名证书</title><link>https://blog.doracoin.cc/posts/2023/2023-08-03-use-letsencrypt/</link><guid isPermaLink="true">https://blog.doracoin.cc/posts/2023/2023-08-03-use-letsencrypt/</guid><pubDate>Thu, 03 Aug 2023 09:35:18 GMT</pubDate><content:encoded>&lt;p&gt;真是太拖延了，我要改变一下&amp;lt;!--more--&amp;gt;&lt;/p&gt;
&lt;p&gt;使用 Let&apos;s Encrypt 已经好几年了，然而早在几年前它就支持通过 DNS 验证获取泛域名证书了，我居然愣是使用定时脚本逐个给域名单独申请证书凑和了好几年。&lt;/p&gt;
&lt;p&gt;如今用的域名越来越多，终于打算搞一搞其他用法了&lt;/p&gt;
&lt;h2&gt;1 验证机制&lt;/h2&gt;
&lt;p&gt;首先我们要先了解 Let’s Encrypt 的认证机制，详细阅读官方的 Let’s Encrypt 的验证方式[^1]&lt;/p&gt;
&lt;p&gt;以下为官方内容节选:&lt;/p&gt;
&lt;p&gt;&amp;lt;details&amp;gt;
&amp;lt;summary&amp;gt;HTTP-01 验证&amp;lt;/summary&amp;gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;HTTP-01 验证&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;这是当今最常见的验证方式。 Let’s Encrypt 向您的 ACME 客户端提供一个令牌，然后您的 ACME 客户端将在您对 Web 服务器的 &lt;code&gt;http://&amp;lt;你的域名&amp;gt;/.well-known/acme-challenge/&amp;lt;TOKEN&amp;gt;&lt;/code&gt;（用提供的令牌替换 &lt;code&gt;&amp;lt;TOKEN&amp;gt;&lt;/code&gt;）路径上放置指定文件。 该文件包含令牌以及帐户密钥的指纹。 一旦您的 ACME 客户端告诉 Let’s Encrypt 文件已准备就绪，Let’s Encrypt 会尝试获取它（可能从多个地点进行多次尝试）。 如果我们的验证机制在您的 Web 服务器上找到了放置于正确地点的正确文件，则该验证被视为成功，您可以继续申请颁发证书。 如果验证检查失败，您将不得不再次使用新证书重新申请。&lt;/p&gt;
&lt;p&gt;我们的 HTTP-01 验证最多接受 10 次重定向。 我们只接受目标为“http:”或“https:”且端口为 80 或 443 的重定向。 我们不目标为 IP 地址的重定向。 当被重定向到 HTTPS 链接时，我们不会验证证书是否有效（因为验证的目的是申请有效证书，所以它可能会遇到自签名或过期的证书）。&lt;/p&gt;
&lt;p&gt;HTTP-01 验证只能使用 80 端口。 因为允许客户端指定任意端口会降低安全性，所以 ACME 标准已禁止此行为。&lt;/p&gt;
&lt;p&gt;优点：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;它可以轻松地自动化进行而不需要关于域名配置的额外知识。&lt;/li&gt;
&lt;li&gt;它允许托管服务提供商为通过 CNAME 指向它们的域名颁发证书。&lt;/li&gt;
&lt;li&gt;它适用于现成的 Web 服务器。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;缺点：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;如果您的 ISP 封锁了 80 端口，该验证将无法正常工作（这种情况很少见，但一些住宅 ISP 会这么做）。&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Let’s Encrypt 不允许您使用此验证方式来颁发通配符证书。&lt;/li&gt;
&lt;li&gt;您如果有多个 Web 服务器，则必须确保该文件在所有这些服务器上都可用。&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;p&gt;&amp;lt;/details&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;details&amp;gt;
&amp;lt;summary&amp;gt;DNS-01 验证&amp;lt;/summary&amp;gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;DNS-01 验证&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;此验证方式要求您在该域名下的 TXT 记录中放置特定值来证明您控制域名的 DNS 系统。 该配置比 HTTP-01 略困难，但可以在某些 HTTP-01 不可用的情况下工作。 它还允许您颁发通配符证书。 在 Let’s Encrypt 为您的 ACME 客户端提供令牌后，您的客户端将创建从该令牌和您的帐户密钥派生的 TXT 记录，并将该记录放在 &lt;code&gt;_acme-challenge.&amp;lt;YOUR_DOMAIN&amp;gt;&lt;/code&gt; 下。 然后 Let’s Encrypt 将向 DNS 系统查询该记录。 如果找到匹配项，您就可以继续颁发证书！&lt;/p&gt;
&lt;p&gt;由于颁发和续期的自动化非常重要，只有当您的 DNS 提供商拥有可用于自动更新的 API 时，使用 DNS-01 验证方式才有意义。 我们的社区在&lt;a href=&quot;https://community.letsencrypt.org/t/dns-providers-who-easily-integrate-with-lets-encrypt-dns-validation/86438&quot;&gt;此处提供了此类 DNS 提供商的列表&lt;/a&gt;。 您的 DNS 提供商可能与您的域名注册商（您从中购买域名的公司）相同或不同。 如果您想更改 DNS 提供商，只需在注册商处进行一些小的更改， 无需等待域名即将到期。&lt;/p&gt;
&lt;p&gt;请注意，将完整的 DNS API 凭据放在 Web 服务器上会显着增加该服务器被黑客攻击造成的影响。 最佳做法是使用&lt;a href=&quot;2&quot;&gt;权限范围受限的 API 凭据&lt;/a&gt;，或在单独的服务器上执行 DNS 验证并自动将证书复制到 Web 服务器上。&lt;/p&gt;
&lt;p&gt;由于 Let’s Encrypt 在查找用于 DNS-01 验证的 TXT 记录时遵循 DNS 标准，因此您可以使用 CNAME 记录或 NS 记录将验证工作委派给其他 DNS 区域。 这可以用于&lt;a href=&quot;https://www.eff.org/deeplinks/2018/02/technical-deep-dive-securing-automation-acme-dns-challenge-validation&quot;&gt;将 &lt;code&gt;_acme-challenge&lt;/code&gt; 子域名委派&lt;/a&gt;给验证专用的服务器或区域。 如果您的 DNS 提供商更新速度很慢，那么您也可以使用此方法把验证工作委派给更新速度更快的服务器。&lt;/p&gt;
&lt;p&gt;大多数 DNS 提供商都有一个“更新时间”，它反映了从更新 DNS 记录到其在所有服务器上都可用所需的时间。 这个时间可能很难测量，因为这些提供商通常也使用&lt;a href=&quot;https://en.wikipedia.org/wiki/Anycast&quot;&gt;任播&lt;/a&gt;，这意味着多个服务器可以拥有相同的 IP 地址，并且根据您在世界上的位置，您和 Let’s Encrypt 可能会与不同的服务器通信（并获得不同的应答）。 最好的情况是 DNS API 为您提供了自动检查更新是否完成的方法。 如果您的 DNS 提供商没有这样的方法，您只需将客户端配置为等待足够长的时间（通常多达一个小时），以确保在触发验证之前更新已经完全完成。&lt;/p&gt;
&lt;p&gt;您可以为同一名称提供多个 TXT 记录。 例如，如果您同时验证通配符和非通配符证书，那么这种情况可能会发生。 但是，您应该确保清理旧的 TXT 记录，因为如果响应大小太大，Let’s Encrypt 将拒绝该记录。&lt;/p&gt;
&lt;p&gt;优点：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;您可以使用此验证方式来颁发包含通配符域名的证书。&lt;/li&gt;
&lt;li&gt;即使您有多个 Web 服务器，它也能正常工作。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;缺点：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;在 Web 服务器上保留 API 凭据存在风险。&lt;/li&gt;
&lt;li&gt;您的 DNS 提供商可能不提供 API。&lt;/li&gt;
&lt;li&gt;您的 DNS API 可能无法提供有关更新时间的信息。&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;p&gt;&amp;lt;/details&amp;gt;&lt;/p&gt;
&lt;p&gt;其中 HTTP-01 就是用的最多的验证方式，我这几年一直在用的就是它：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;certbot certonly --nginx --nginx-server-root=/nginx/conf --email doracoin@foxmail.com -d blog.doracoin.cc
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;如官方所言，这种方式不支持通配符域名证书，所以这几年我一直在靠定时脚本来管理，比较费心&lt;/p&gt;
&lt;h2&gt;2 开始操作&lt;/h2&gt;
&lt;p&gt;今天要更换的就是方法是采用 Cloudflare API 来进行自动化申请、续期、通配符域名证书。&lt;/p&gt;
&lt;h3&gt;2.1 获取 Cloudflare API 令牌&lt;/h3&gt;
&lt;p&gt;访问[^2]来获取你的 API 令牌，至于为什么选用 Cloudflare，参考 &lt;a href=&quot;https://community.letsencrypt.org/t/dns-providers-who-easily-integrate-with-lets-encrypt-dns-validation/86438&quot;&gt;提供了自动更新 API 的 DNS 提供商的列表&lt;/a&gt;，Cloudflare 是比较出名的一家&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://img.doracoin.cc/images/2023/08/03/b82bacc701d5acce48d2b49c68d9c563.png&quot; alt=&quot;&quot; /&gt;
&lt;img src=&quot;https://img.doracoin.cc/images/2023/08/03/c72eb389134fe6797cab0e9fdfa5f07f.png&quot; alt=&quot;&quot; /&gt;
&lt;img src=&quot;https://img.doracoin.cc/images/2023/08/03/bdafb167f23a84a3be63eb289b7af188.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;2.2 使用 NginxProxyManager (NPM)&lt;/h3&gt;
&lt;p&gt;NginxProxyManager &amp;lt;object data=&quot;https://img.shields.io/github/stars/jc21/nginx-proxy-manager.svg?label=nginx-proxy-manager&amp;amp;style=social&quot;&amp;gt;&amp;lt;/object&amp;gt; 的安装过程很简单，它的开发者官方提供了官方制作的 Docker 镜像，网上文章也很多，这里不提。&lt;/p&gt;
&lt;p&gt;进入到 NginxProxyManager 平台，平台默认账号官方文档提到过：&lt;code&gt;admin@example.com|changeme&lt;/code&gt;，首次登录平台会要求重新设置密码，密码设置成功后重新登录系统，切换到 SSL Certificates 的标签页，点击右侧 Add SSL Certificate 按钮，申请一个新的域名证书，如下图：&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://img.doracoin.cc/images/2023/08/03/cc7de64b97bf59f58d651ead7807f762.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;然后稍等一会儿，NPM 就会将证书申请下来了，这个证书可以在 NPM 中直接配置，也可以从 NPM 的服务器上复制到其他服务器使用，&lt;/p&gt;
&lt;h3&gt;2.3 其他事项&lt;/h3&gt;
&lt;p&gt;三级域名注意事项&lt;a href=&quot;https://developer.aliyun.com/ask/115005&quot;&gt;4&lt;/a&gt;：&lt;/p&gt;
&lt;p&gt;如果你的服务需要部署在三级域名的情况下，&lt;code&gt;*.yourdomain.com&lt;/code&gt; 这种通配符域名证书是不可以的，你应该申请 &lt;code&gt;*.subname.yourdomain.com&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;[^1]: &lt;a href=&quot;https://letsencrypt.org/zh-cn/docs/challenge-types/&quot;&gt;Let’s Encrypt 的验证方式&lt;/a&gt;
[^2]: &lt;a href=&quot;https://dash.cloudflare.com/profile/api-tokens&quot;&gt;获取您的 Cloudflare API 令牌&lt;/a&gt;
[^3]: &lt;a href=&quot;https://zhuanlan.zhihu.com/p/445852299&quot;&gt;Let&apos;s Encrypt SSL 泛域名证书申请和配置&lt;/a&gt;
[^4]: &lt;a href=&quot;https://zhuanlan.zhihu.com/p/536791628&quot;&gt;反向代理神器：Nginx Proxy Manager&lt;/a&gt;&lt;/p&gt;
</content:encoded></item><item><title>1Panel体验</title><link>https://blog.doracoin.cc/posts/2023/2023-08-01-1panel%E4%BD%93%E9%AA%8C/</link><guid isPermaLink="true">https://blog.doracoin.cc/posts/2023/2023-08-01-1panel%E4%BD%93%E9%AA%8C/</guid><pubDate>Tue, 01 Aug 2023 09:54:17 GMT</pubDate><content:encoded>&lt;p&gt;开源产品总是值得折腾的&amp;lt;!--more--&amp;gt;&lt;/p&gt;
&lt;p&gt;折腾它的这一天，它的最新版本是 &amp;lt;tag blue&amp;gt;v1.4.3&amp;lt;/tag&amp;gt;&lt;/p&gt;
&lt;h2&gt;开始安装&lt;/h2&gt;
&lt;p&gt;参考：https://github.com/1Panel-dev/1Panel/releases/latest&lt;/p&gt;
&lt;h3&gt;1.1 一键安装&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;CentOS/RHEL&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;curl -sSL https://resource.fit2cloud.com/1panel/package/quick_start.sh -o quick_start.sh &amp;amp;&amp;amp; sh quick_start.sh
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;Ubuntu&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;curl -sSL https://resource.fit2cloud.com/1panel/package/quick_start.sh -o quick_start.sh &amp;amp;&amp;amp; sudo bash quick_start.sh
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;Debian&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;curl -sSL https://resource.fit2cloud.com/1panel/package/quick_start.sh -o quick_start.sh &amp;amp;&amp;amp; bash quick_start.sh
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;1.2 在线升级&lt;/h3&gt;
&lt;p&gt;登录 1Panel Web 控制台，在页面右下角点击 【检查更新】 进行在线升级。&lt;/p&gt;
&lt;h3&gt;1.3 安装完成&lt;/h3&gt;
&lt;p&gt;控制台将输出如下信息&lt;/p&gt;
&lt;p&gt;{% img https://img.doracoin.cc/images/2023/08/01/6c4a4a30a12be5aa25994c884012481a.jpg 200 200 %}&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;[1Panel Log]: =================感谢您的耐心等待，安装已经完成==================
[1Panel Log]:
[1Panel Log]: 请用浏览器访问面板:
[1Panel Log]: 面板地址: http://192.168.2.23:19743/32******4a
[1Panel Log]: 用户名称: a***n
[1Panel Log]: 用户密码: A**********6
[1Panel Log]:
[1Panel Log]: 项目官网: https://1panel.cn
[1Panel Log]: 项目文档: https://1panel.cn/docs
[1Panel Log]: 代码仓库: https://github.com/1Panel-dev/1Panel
[1Panel Log]:
[1Panel Log]: 如果使用的是云服务器，请至安全组开放 19743 端口
[1Panel Log]:
[1Panel Log]: ================================================================
&lt;/code&gt;&lt;/pre&gt;
</content:encoded></item><item><title>Rainmeter雨滴RegExp表达式</title><link>https://blog.doracoin.cc/posts/2023/2023-08-01-rainmeter%E9%9B%A8%E6%BB%B4regexp%E8%A1%A8%E8%BE%BE%E5%BC%8F/</link><guid isPermaLink="true">https://blog.doracoin.cc/posts/2023/2023-08-01-rainmeter%E9%9B%A8%E6%BB%B4regexp%E8%A1%A8%E8%BE%BE%E5%BC%8F/</guid><pubDate>Tue, 01 Aug 2023 09:49:05 GMT</pubDate><content:encoded>&lt;p&gt;美化的尽头是默认，但我还没折腾到尽头&amp;lt;!--more--&amp;gt;&lt;/p&gt;
&lt;h2&gt;举例&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;; -- Internet IP
[measureIP]
; This measure returns your IP. WebParser measures are relatively complicated. If you&apos;re a beginner with
; Rainmeter, take a look at some of the other illustro skins before modifying this one.
Measure=Plugin
Plugin=WebParser
;Url=http://ip.doracoin.cc
Url=https://ip.cn/api/index?ip=&amp;amp;type=0
UpdateRate=14400
;RegExp=(.*)
RegExp=&quot;ip&quot;:&quot;(.*)&quot;,
StringIndex=1
Substitute=&quot;&quot;:&quot;N/A&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;[^1]: &lt;a href=&quot;https://forum.rainmeter.net/viewtopic.php?t=769&quot;&gt;RainRegExp - Rainmeter Regular Expression tester&lt;/a&gt;
[^2]: &lt;a href=&quot;https://docs.rainmeter.net/tips/webparser-debugging-regexp/#RainRegExp&quot;&gt;WebParser: Debugging RegExp&lt;/a&gt;
[^3]: &lt;a href=&quot;https://rainmeter.net/RainRegExp.zip&quot;&gt;RainRegExp.zip&lt;/a&gt;&lt;/p&gt;
</content:encoded></item><item><title>Window Powershell 启用 oh-my-posh</title><link>https://blog.doracoin.cc/posts/2023/2023-07-28-window-powershell-%E5%90%AF%E7%94%A8-oh-my-posh/</link><guid isPermaLink="true">https://blog.doracoin.cc/posts/2023/2023-07-28-window-powershell-%E5%90%AF%E7%94%A8-oh-my-posh/</guid><pubDate>Fri, 28 Jul 2023 16:35:44 GMT</pubDate><content:encoded>&lt;p&gt;让控制台多彩起来！&amp;lt;!--more--&amp;gt;每天都在对着控制台，看起来舒心更重要。&lt;/p&gt;
&lt;p&gt;本篇文章基于 Powershell 和 Windows Terminal，在开始之前请先安装好它们。&lt;/p&gt;
&lt;h2&gt;官网&lt;/h2&gt;
&lt;p&gt;Github：&amp;lt;object data=&quot;https://img.shields.io/github/stars/jandedobbeleer/oh-my-posh.svg?label=oh-my-posh&amp;amp;style=social&quot;&amp;gt;&amp;lt;/object&amp;gt;&lt;/p&gt;
&lt;p&gt;官方手册：https://ohmyposh.dev/docs/installation/windows&lt;/p&gt;
&lt;h2&gt;安装步骤&lt;/h2&gt;
&lt;h3&gt;1 安装 oh-my-posh [^1]&lt;/h3&gt;
&lt;p&gt;这里选择使用 Scoop 来进行安装：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;scoop install https://github.com/JanDeDobbeleer/oh-my-posh/releases/latest/download/oh-my-posh.json
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;或者使用官方脚本安装&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Set-ExecutionPolicy Bypass -Scope Process -Force; Invoke-Expression ((New-Object System.Net.WebClient).DownloadString(&apos;https://ohmyposh.dev/install.ps1&apos;))
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;这过程将安装如下内容：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;oh-my-posh.exe Windows 执行文件&lt;/li&gt;
&lt;li&gt;最新的 Oh My Posh 主题&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;安装程序已经添加了环境变量到系统的 PATH，重新加载环境变量需要重启终端。&lt;/p&gt;
&lt;p&gt;现在安装了 Oh My Posh，您可以按喜好继续配置终端(Windows Terminal)&lt;/p&gt;
&lt;h3&gt;2 安装字体 [^2]&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;oh-my-posh font install
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;将执行一个交互式命令行，选择一个字体即可，我这里选择了 &lt;code&gt;FiraMono&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;{% gi 3 1-2 %}&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;./2023-07-28-Window-Powershell-%E5%90%AF%E7%94%A8-oh-my-posh/2023-07-31-093415.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;./2023-07-28-Window-Powershell-%E5%90%AF%E7%94%A8-oh-my-posh/2023-07-31-094127.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;./2023-07-28-Window-Powershell-%E5%90%AF%E7%94%A8-oh-my-posh/2023-07-31-094513.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;{% endgi %}&lt;/p&gt;
&lt;p&gt;再到 Windows Terminal 中设置字体即可&lt;/p&gt;
&lt;h3&gt;3 切换到 oh-my-posh [^3]&lt;/h3&gt;
&lt;p&gt;打开控制台，执行以下命令编辑你的配置文件：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;notepad $PROFILE
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;将会通过系统的记事本程序打开一个 Profile.ps1 的配置文件，你打开的这份配置文件多半是空白的，只需要在其中添加如下命令，然后重新启动控制台就可以启用 oh-my-posh 了&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;oh-my-posh init pwsh | Invoke-Expression
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;4 自定义配置 [^4]&lt;/h3&gt;
&lt;p&gt;Oh my posh 安装完后会在系统变量中添加相关信息：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# 查看 Oh my posh 相关变量
ls env: |findstr POSH

# 将会输出如下信息
POSH_AZURE_ENABLED             False
POSH_CURSOR_COLUMN             1
POSH_CURSOR_LINE               30
POSH_GIT_ENABLED               False
POSH_INSTALLER                 scoop
POSH_PID                       14984
POSH_SHELL_VERSION             7.3.6
POSH_THEME                     C:\Users\Doracoin\AppData\Local\Programs\oh-my-posh\themes\quick-term.omp.json
POSH_THEMES_PATH               C:\Users\Doracoin\AppData\Local\Programs\oh-my-posh\themes

# 预览所有主题
Get-PoshThemes

# oh-my-posh 会将本地所有主题样式在控制台输出一遍，可以根据喜好选择一个
# 然后参照上一步骤配置 oh-my-posh 的操作，指定一个配置文件即可
oh-my-posh init pwsh --config &quot;$env:POSH_THEMES_PATH/quick-term.omp.json&quot; | Invoke-Expression
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;[^1]: 安装 oh-my-posh https://ohmyposh.dev/docs/installation/windows#installation
[^2]: 安装字体 https://ohmyposh.dev/docs/installation/fonts
[^3]: 启用 oh-my-posh https://ohmyposh.dev/docs/installation/prompt
[^4]: 自定义配置 https://ohmyposh.dev/docs/installation/customize&lt;/p&gt;
</content:encoded></item><item><title>放下执念，能用就行</title><link>https://blog.doracoin.cc/posts/2023/2023-07-28-%E6%94%BE%E4%B8%8B%E6%89%A7%E5%BF%B5%E8%83%BD%E7%94%A8%E5%B0%B1%E8%A1%8C/</link><guid isPermaLink="true">https://blog.doracoin.cc/posts/2023/2023-07-28-%E6%94%BE%E4%B8%8B%E6%89%A7%E5%BF%B5%E8%83%BD%E7%94%A8%E5%B0%B1%E8%A1%8C/</guid><pubDate>Fri, 28 Jul 2023 14:56:11 GMT</pubDate><content:encoded>&lt;p&gt;聊聊开发过程中一些个人习惯。
&amp;lt;!--more--&amp;gt;
一直以来由于自己过于较真的习惯，为了尽可能的保证程序的健壮性，目光和思维过多的花费在了太过细节的地方，导致在做工作或个人项目时经常效率不高。&lt;/p&gt;
&lt;p&gt;其实舍弃这些细节性优化处理也并不会提升什么软件质量。&lt;/p&gt;
&lt;p&gt;20260111更新：当时写这篇文章时，思路不够明晰，现在已经整合成新的文章了 → 《{% post_link 写给自己看的软件开发准则 %}》&lt;/p&gt;
</content:encoded></item><item><title>记一次注册《钉钉开放平台》的过程</title><link>https://blog.doracoin.cc/posts/2023/2023-06-16-%E8%AE%B0%E4%B8%80%E6%AC%A1%E6%B3%A8%E5%86%8C%E9%92%89%E9%92%89%E5%BC%80%E6%94%BE%E5%B9%B3%E5%8F%B0%E7%9A%84%E8%BF%87%E7%A8%8B/</link><guid isPermaLink="true">https://blog.doracoin.cc/posts/2023/2023-06-16-%E8%AE%B0%E4%B8%80%E6%AC%A1%E6%B3%A8%E5%86%8C%E9%92%89%E9%92%89%E5%BC%80%E6%94%BE%E5%B9%B3%E5%8F%B0%E7%9A%84%E8%BF%87%E7%A8%8B/</guid><pubDate>Fri, 16 Jun 2023 09:53:49 GMT</pubDate><content:encoded>&lt;p&gt;全沾工程师的学习路&amp;lt;!--more--&amp;gt;&lt;/p&gt;
&lt;h2&gt;1 官网&lt;/h2&gt;
&lt;h3&gt;1.1 钉钉开放平台首页&lt;/h3&gt;
&lt;p&gt;https://open-dev.dingtalk.com/&lt;/p&gt;
&lt;h3&gt;1.2 钉钉管理后台&lt;/h3&gt;
&lt;p&gt;需管理员登录：https://oa.dingtalk.com/&lt;/p&gt;
&lt;h3&gt;1.3 成为钉钉开发者&lt;/h3&gt;
&lt;p&gt;https://open.dingtalk.com/document/dashboard/become-a-dingtalk-developer-1&lt;/p&gt;
&lt;h3&gt;1.4 Api 总览&lt;/h3&gt;
&lt;p&gt;https://open.dingtalk.com/document/orgapp/api-overview&lt;/p&gt;
&lt;h2&gt;2 申请开发者步骤&lt;/h2&gt;
&lt;h3&gt;2.1 分配开发者&lt;/h3&gt;
&lt;p&gt;使用企业管理员（一般情况下就是超管）登录 &lt;a href=&quot;#1-2-%E9%92%89%E9%92%89%E7%AE%A1%E7%90%86%E5%90%8E%E5%8F%B0&quot;&gt;钉钉管理后台&lt;/a&gt;，分配一个开发者管理员：&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;./2023-06-16-%E8%AE%B0%E4%B8%80%E6%AC%A1%E6%B3%A8%E5%86%8C%E3%80%8A%E9%92%89%E9%92%89%E5%BC%80%E6%94%BE%E5%B9%B3%E5%8F%B0%E3%80%8B%E7%9A%84%E8%BF%87%E7%A8%8B/%E6%9D%83%E9%99%90%E7%AE%A1%E7%90%8601.png&quot; alt=&quot;&quot; /&gt;
&lt;img src=&quot;./2023-06-16-%E8%AE%B0%E4%B8%80%E6%AC%A1%E6%B3%A8%E5%86%8C%E3%80%8A%E9%92%89%E9%92%89%E5%BC%80%E6%94%BE%E5%B9%B3%E5%8F%B0%E3%80%8B%E7%9A%84%E8%BF%87%E7%A8%8B/%E6%9D%83%E9%99%90%E7%AE%A1%E7%90%8602.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;这样，就有了开发者权限账号。&lt;/p&gt;
&lt;h3&gt;2.2 创建应用&lt;/h3&gt;
&lt;p&gt;使用上一步分配的开发者管理员账号，登录 &lt;a href=&quot;#1-1-%E9%92%89%E9%92%89%E5%BC%80%E6%94%BE%E5%B9%B3%E5%8F%B0%E9%A6%96%E9%A1%B5&quot;&gt;钉钉开放平台首页&lt;/a&gt;，创建一个企业内部应用&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;./2023-06-16-%E8%AE%B0%E4%B8%80%E6%AC%A1%E6%B3%A8%E5%86%8C%E3%80%8A%E9%92%89%E9%92%89%E5%BC%80%E6%94%BE%E5%B9%B3%E5%8F%B0%E3%80%8B%E7%9A%84%E8%BF%87%E7%A8%8B/%E5%88%9B%E5%BB%BA%E5%BA%94%E7%94%A8.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;可以获取到该应用的 &amp;lt;span class=&quot;tag red&quot;&amp;gt;AgentId&amp;lt;/span&amp;gt;&amp;lt;span class=&quot;tag red&quot;&amp;gt;AppKey&amp;lt;/span&amp;gt;&amp;lt;span class=&quot;tag red&quot;&amp;gt;AppSecret&amp;lt;/span&amp;gt;&lt;/p&gt;
&lt;p&gt;用于 &lt;a href=&quot;https://open.dingtalk.com/document/orgapp/obtain-orgapp-token&quot;&gt;获取企业内部应用的 access_token&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;./2023-06-16-%E8%AE%B0%E4%B8%80%E6%AC%A1%E6%B3%A8%E5%86%8C%E3%80%8A%E9%92%89%E9%92%89%E5%BC%80%E6%94%BE%E5%B9%B3%E5%8F%B0%E3%80%8B%E7%9A%84%E8%BF%87%E7%A8%8B/%E5%BA%94%E7%94%A8%E4%BF%A1%E6%81%AF.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;分配应用权限&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;./2023-06-16-%E8%AE%B0%E4%B8%80%E6%AC%A1%E6%B3%A8%E5%86%8C%E3%80%8A%E9%92%89%E9%92%89%E5%BC%80%E6%94%BE%E5%B9%B3%E5%8F%B0%E3%80%8B%E7%9A%84%E8%BF%87%E7%A8%8B/%E4%BC%81%E4%B8%9A%E5%86%85%E9%83%A8%E5%BA%94%E7%94%A8%E6%9D%83%E9%99%90%E7%AE%A1%E7%90%86.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;3 问题记录&lt;/h2&gt;
&lt;h3&gt;3.1 请求的部门 id 不在授权范围内&lt;/h3&gt;
&lt;p&gt;https://blog.csdn.net/peng2hui1314/article/details/105122019&lt;/p&gt;
</content:encoded></item><item><title>Android唯一标识</title><link>https://blog.doracoin.cc/posts/2023/2023-06-09-android%E5%94%AF%E4%B8%80%E6%A0%87%E8%AF%86/</link><guid isPermaLink="true">https://blog.doracoin.cc/posts/2023/2023-06-09-android%E5%94%AF%E4%B8%80%E6%A0%87%E8%AF%86/</guid><pubDate>Fri, 09 Jun 2023 14:20:42 GMT</pubDate><content:encoded>&lt;p&gt;以前一直用的Mac地址，然而...&amp;lt;!--more--&amp;gt;&lt;/p&gt;
&lt;h2&gt;不要使用MAC地址&lt;/h2&gt;
&lt;p&gt;参考链接:https://developer.android.com/training/articles/user-data-ids?hl=zh-cn#mac-addresses&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;在 Android 6.0（API 级别 23）到 Android 9（API 级别 28）中，本地设备 MAC 地址（如 WLAN 和蓝牙）无法通过第三方 API 使用。
WifiInfo.getMacAddress() 方法和 BluetoothAdapter.getDefaultAdapter().getAddress() 方法都会返回 &lt;code&gt;02:00:00:00:00:00&lt;/code&gt;。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;不要使用MAC地址&lt;/strong&gt; &amp;lt;cite&amp;gt;https://developer.android.com/training/articles/user-data-ids?hl=zh-cn#mac-addresses&amp;lt;/cite&amp;gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;参考文章&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.csdn.net/qq_44945739/article/details/126620305&quot;&gt;android获取MAC地址失效问题&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://developer.android.com/training/articles/user-data-ids?hl=zh-cn#mac-addresses&quot;&gt;不要使用mac地址&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://developer.android.com/reference/android/provider/Settings.Secure#ANDROID_ID&quot;&gt;Settings.Secure.ANDROID_ID&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://developer.android.com/about/versions/oreo/android-8.0-changes?hl=zh-cn#privacy-all&quot;&gt;Android 8.0 行为变更&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</content:encoded></item><item><title>使用Webhook更新Hexo博客</title><link>https://blog.doracoin.cc/posts/2023/2023-05-17-%E4%BD%BF%E7%94%A8webhook%E6%9B%B4%E6%96%B0hexo%E5%8D%9A%E5%AE%A2/</link><guid isPermaLink="true">https://blog.doracoin.cc/posts/2023/2023-05-17-%E4%BD%BF%E7%94%A8webhook%E6%9B%B4%E6%96%B0hexo%E5%8D%9A%E5%AE%A2/</guid><pubDate>Wed, 17 May 2023 14:51:48 GMT</pubDate><content:encoded>&lt;p&gt;这里提到的 Webhook 不是单纯意义上的 Webhook，而是一个 Webhook 的开源实现库&lt;/p&gt;
&lt;p&gt;&amp;lt;!--more--&amp;gt;&lt;/p&gt;
&lt;h2&gt;Webhook&lt;/h2&gt;
&lt;p&gt;Github: &amp;lt;object data=&quot;https://img.shields.io/github/stars/adnanh/webhook.svg?label=webhook&amp;amp;style=social&quot;&amp;gt;&amp;lt;/object&amp;gt;&lt;/p&gt;
&lt;p&gt;到 Release 页面下载一份二进制程序，放到服务器的一个文件夹下，然后在同文件夹根目录下新建一个 &lt;code&gt;hooks.yml&lt;/code&gt; 文件，文件结构如下：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;. /path/to/webhook
├── ./hooks.yml
└── ./webhook
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;配置你需要的 Hooks&lt;/h3&gt;
&lt;p&gt;编辑配置文件 &lt;code&gt;nano hooks.yml&lt;/code&gt;，相关配置说明参考 &lt;a href=&quot;https://github.com/adnanh/webhook/blob/master/docs/Hook-Definition.md&quot;&gt;Hook-Definition.md&lt;/a&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;- id: &quot;webhook-demo&quot;
  command-working-directory: &quot;/www/demo&quot;
  execute-command: &quot;update.sh&quot;
  success-http-response-code: 200
  response-message: &quot;Hook is checked.&quot;
  include-command-output-in-response: true

- id: &quot;my-hexo&quot;
  command-working-directory: &quot;/www/my-hexo&quot;
  execute-command: &quot;update.sh&quot;
  success-http-response-code: 200
  response-message: &quot;Hook is checked.&quot;
  include-command-output-in-response: true
&lt;/code&gt;&lt;/pre&gt;
&lt;ul&gt;
&lt;li&gt;&amp;lt;span class=&quot;tag blue&quot;&amp;gt;execute-command&amp;lt;/span&amp;gt; 参数说明：
脚本为相对路径时，最终执行的命令为 &lt;code&gt;${command-working-directory}/${execute-command}&lt;/code&gt;，如 &lt;code&gt;/www/my-hexo/update.sh&lt;/code&gt;；
脚本为绝对路径时，&lt;code&gt;command-working-directory&lt;/code&gt; 将作为工作路径参数传入到执行脚本中&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;一切都配置完成后，运行启动命令，相关参数参考 &lt;a href=&quot;https://github.com/adnanh/webhook/blob/master/docs/Webhook-Parameters.md&quot;&gt;Webhook-Parameters.md&lt;/a&gt;：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;./webhook -verbose -ip &quot;127.0.0.1&quot; -port 9000 --hooks hooks.yml -hotreload -pidfile ./webhook.pid
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;以如上配置做举例说明：当 &lt;code&gt;webhook&lt;/code&gt; 程序运行后，它将运行一个服务并监听两个接口：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;http://yourserver:9000/hooks/my-hexo&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;http://yourserver:9000/hooks/webhook-demo&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;调用相应的 Hooks 会执行配置的脚本，例如：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;curl -X &quot;POST&quot; -H &quot;Content-Type: application/json&quot; -d &quot;{}&quot; -i http://yourserver:9000/hooks/my-hexo
# 会执行配置文件中 &apos;command-working-directory/execute-command&apos; 配置的脚本
/www/my-hexo/update.sh
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;配置 Hooks 触发&lt;/h3&gt;
&lt;p&gt;以上就是你所拥有的 Webhooks 了，接下来只要把这两个接口配置到你所需要调用的地方就可以了，比如 Github 或 Gitlab 仓库的&lt;code&gt;Webhooks&lt;/code&gt;配置中：&lt;/p&gt;
&lt;p&gt;{% gi 2 2 %}
&lt;img src=&quot;./2023-05-17-%E4%BD%BF%E7%94%A8Webhook%E6%9B%B4%E6%96%B0Hexo%E5%8D%9A%E5%AE%A2/github-repo-webhooks.jpg&quot; alt=&quot;img name&quot; title=&quot;github-repo-webhooks.png&quot; /&gt;
&lt;img src=&quot;./2023-05-17-%E4%BD%BF%E7%94%A8Webhook%E6%9B%B4%E6%96%B0Hexo%E5%8D%9A%E5%AE%A2/gitlab-repo-webhooks.jpg&quot; alt=&quot;img name&quot; title=&quot;gitlab-repo-webhooks.jpg&quot; /&gt;
{% endgi %}&lt;/p&gt;
&lt;h3&gt;配置执行脚本&lt;/h3&gt;
&lt;p&gt;在 &lt;code&gt;update.sh&lt;/code&gt; 脚本中写入你所需要进行的操作即可，例如我是打算根据 git 仓库的&lt;a href=&quot;https://docs.github.com/zh/webhooks-and-events/webhooks/about-webhooks&quot;&gt;推送事件&lt;/a&gt;，进行博客的更新操作：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;#!/bin/bash
cd `dirname $0`

git pull

hexo clean &amp;amp;&amp;amp; hexo g --silent

chown www:www -R ./public
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;将 &lt;code&gt;update.sh&lt;/code&gt; 放入 hexo 博客的文件夹内随 git 仓库一同保存，这样以后本地编辑文章并推送到仓库后，Github 或 Gitlab 就会调用服务端的 Webhooks，然后去执行所配置路径下的 &lt;code&gt;update.sh&lt;/code&gt; 脚本，这样就达到了自动更新博客的目的。&lt;/p&gt;
&lt;p&gt;注：如果你的服务器执行 &lt;code&gt;git pull&lt;/code&gt; 每次都要输入用户名密码进行验证，可提前在服务器端执行以下命令：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# 执行一次即可
git config --global credential.helper store
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;这样以后就不需要每次都进行验证了，参考：&lt;a href=&quot;https://hexo.io/zh-cn/docs/one-command-deployment#Git&quot;&gt;部署Hexo&lt;/a&gt;，&lt;a href=&quot;https://git-scm.com/docs/git-credential-cache&quot;&gt;git-credential-cache&lt;/a&gt;&lt;/p&gt;
</content:encoded></item><item><title>Nginx反向代理QBittorrentWebUI</title><link>https://blog.doracoin.cc/posts/2023/2023-05-17-nginx%E5%8F%8D%E5%90%91%E4%BB%A3%E7%90%86qbittorrentwebui/</link><guid isPermaLink="true">https://blog.doracoin.cc/posts/2023/2023-05-17-nginx%E5%8F%8D%E5%90%91%E4%BB%A3%E7%90%86qbittorrentwebui/</guid><pubDate>Wed, 17 May 2023 10:52:23 GMT</pubDate><content:encoded>&lt;p&gt;最近想要通过 Nginx 把家里的 QBittorrent 暴露出来用于公网访问&lt;/p&gt;
&lt;p&gt;&amp;lt;!--more--&amp;gt;&lt;/p&gt;
&lt;p&gt;但代理过后总是出现 401 错误，导致不能正常使用，经过&lt;a&gt;搜索网友们遇到的情况&lt;/a&gt;，发现还是反向代理的配置上出了问题.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;我原来的配置文件&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code&gt;location / {
    proxy_pass http://192.168.1.1:8080/;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
&lt;/code&gt;&lt;/pre&gt;
&lt;ul&gt;
&lt;li&gt;调整后的配置文件&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;{% include_code 正确的配置文件 lang:nginx qbittorrent-nginx.conf %}&lt;/p&gt;
&lt;p&gt;推测这其中重要的是 &lt;code&gt;X-Forwarded-Host&lt;/code&gt; &lt;code&gt;X-Forwarded-Proto&lt;/code&gt; 两个头部字段，毕竟 QB 中也有相应的控制功能：&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;./2023-05-17-Nginx%E5%8F%8D%E5%90%91%E4%BB%A3%E7%90%86QBittorrentWebUI/2023-05-17-110909.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;因此推测是 QB 需要根据 http 的头部字段做一些判断，如果需要获取的字段信息不存在，可能就会导致 http 验证无法通过，因而返回&lt;code&gt;401&lt;/code&gt;验证错误.&lt;/p&gt;
</content:encoded></item><item><title>使用 OpenSSL 生成 CSR</title><link>https://blog.doracoin.cc/posts/2023/2023-03-17-%E4%BD%BF%E7%94%A8-openssl-%E7%94%9F%E6%88%90-csr/</link><guid isPermaLink="true">https://blog.doracoin.cc/posts/2023/2023-03-17-%E4%BD%BF%E7%94%A8-openssl-%E7%94%9F%E6%88%90-csr/</guid><pubDate>Fri, 17 Mar 2023 10:27:46 GMT</pubDate><content:encoded>&lt;ul&gt;
&lt;li&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;lt;!--more--&amp;gt;&lt;/p&gt;
&lt;h1&gt;生成 CSR - OpenSSL&lt;/h1&gt;
&lt;h2&gt;介绍&lt;/h2&gt;
&lt;p&gt;本文提供了在 OpenSSL 中生成证书签名请求 (CSR) 的分步说明。 这是 Apache HTTP Server 和 NGINX 等 Web 服务器最常需要的。 如果这不是您正在寻找的解决方案，请在上面的搜索栏中搜索您的解决方案。&lt;/p&gt;
&lt;h2&gt;切换到工作目录&lt;/h2&gt;
&lt;p&gt;要在 Apache OpenSSL 中生成 CSR，您可以查看下面的视频以获取教程。&lt;/p&gt;
&lt;p&gt;或者，您可以按照下面的分步指南进行操作。&lt;/p&gt;
&lt;h3&gt;GNU/Linux 和 Mac OS X 用户：&lt;/h3&gt;
&lt;p&gt;打开终端并浏览到要生成密钥对的文件夹&lt;/p&gt;
&lt;h3&gt;Windows 用户：&lt;/h3&gt;
&lt;p&gt;导航到您的 OpenSSL“bin”目录并在同一位置打开命令提示符。&lt;/p&gt;
&lt;h3&gt;生成 CSR 和私钥：&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;openssl req -out CSR.csr -new -newkey rsa:2048 -keyout privatekey.key&lt;/code&gt;&lt;/p&gt;
&lt;h3&gt;要生成 4096 位 CSR，您可以将 rsa:2048 语法替换为 rsa:4096，如下所示。&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;openssl req -out CSR.csr -new -newkey rsa:4096 -keyout privatekey.key&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;注意：系统将提示您输入密码才能继续。 保留此密码，因为您将需要它来使用证书。&lt;/p&gt;
&lt;h3&gt;根据提示填写以下字段：&lt;/h3&gt;
&lt;p&gt;注意：不能接受以下字符：&amp;lt; &amp;gt; ~ ! @# $ % ^ * / \ ( ) ?.,&amp;amp;&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;场地&lt;/th&gt;
&lt;th&gt;例子&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;国家的名字&lt;/td&gt;
&lt;td&gt;美国 （2 字母代码）&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;州或省&lt;/td&gt;
&lt;td&gt;新罕布什尔州 （州全名）&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;地区&lt;/td&gt;
&lt;td&gt;朴茨茅斯 （城市全名）&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;组织&lt;/td&gt;
&lt;td&gt;GMO GlobalSign Inc （实体的法定名称）&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;组织单位&lt;/td&gt;
&lt;td&gt;支持 （可选，例如部门）&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;通用名称&lt;/td&gt;
&lt;td&gt;www.globalsign.com （域名或实体名称）&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;您现在应该有一个私钥 (&lt;code&gt;privatekey.key&lt;/code&gt;) 应该保留在您的计算机上，以及一个证书签名请求 (&lt;code&gt;CSR.csr&lt;/code&gt;)，可以将其提交给 GlobalSign 以签署您的公钥。 这些文件中的每一个都可以在纯文本编辑器中查看，例如记事本、TextEdit、Vi、Nano 和 Notepad++。&lt;/p&gt;
&lt;p&gt;或者在命令行输入以下命令：&lt;code&gt;cat CSR.csr&lt;/code&gt;查看您的信息&lt;/p&gt;
&lt;h3&gt;存在的问题&lt;/h3&gt;
&lt;p&gt;这样生成的密钥配置到nginx之后，每次重启nginx/重新加载nginx配置的时候都需要输入证书密码，十分麻烦，因此要做以下的修改&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;#去除密码
mv server.key server2.key
openssl rsa -in server2.key -out server.key
#再次生成crt证书
openssl x509 -req -days 3000 -in server.csr -signkey server.key -out server.crt
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;这样就不用每次nginx -s reload的时候输入密码了&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;参考链接：https://support.globalsign.com/ssl/ssl-certificates-installation/generate-csr-openssl&lt;/strong&gt;&lt;/p&gt;
</content:encoded></item><item><title>浏览器品牌合集列表</title><link>https://blog.doracoin.cc/posts/2023/2023-03-16-%E6%B5%8F%E8%A7%88%E5%99%A8%E5%93%81%E7%89%8C%E5%90%88%E9%9B%86%E5%88%97%E8%A1%A8/</link><guid isPermaLink="true">https://blog.doracoin.cc/posts/2023/2023-03-16-%E6%B5%8F%E8%A7%88%E5%99%A8%E5%93%81%E7%89%8C%E5%90%88%E9%9B%86%E5%88%97%E8%A1%A8/</guid><pubDate>Thu, 16 Mar 2023 15:17:52 GMT</pubDate><content:encoded>&lt;p&gt;目前市面上的PC端浏览器品牌有那么多，且又基于多种不同浏览器内核，是时候记录一下了。&lt;/p&gt;
&lt;p&gt;&amp;lt;!--more--&amp;gt;&lt;/p&gt;
&lt;p&gt;有些品牌是支持多端版本的，有些品牌则只支持PC端，访问官网查看各品牌浏览器信息。&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;内核&lt;/th&gt;
&lt;th&gt;Blink&lt;/th&gt;
&lt;th&gt;Webkit&lt;/th&gt;
&lt;th&gt;Gecko&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&quot;https://www.google.com/chrome/&quot;&gt;Chrome&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&quot;https://www.apple.com/safari/&quot;&gt;Safari&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&quot;https://www.mozilla.org/en-US/firefox/new/&quot;&gt;Firefox&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&quot;https://www.microsoft.com/en-us/edge&quot;&gt;Edge&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&quot;https://www.opera.com/&quot;&gt;Opera&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&quot;https://vivaldi.com/&quot;&gt;Vivaldi&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&quot;https://brave.com/&quot;&gt;Brave&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&quot;https://www.chromium.org/&quot;&gt;Chrommium&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&quot;https://www.torproject.org/&quot;&gt;Tor Browser&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&quot;https://browser.yandex.com/&quot;&gt;Yandex Browser&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&quot;https://www.gnu.org/software/gnuzilla/&quot;&gt;IceCat&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&quot;https://www.maxthon.com/&quot;&gt;Maxthon&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&quot;https://www.lunascape.org/&quot;&gt;Lunascape&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&quot;https://www.falkon.org/&quot;&gt;Falkon&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&quot;https://www.waterfox.net/&quot;&gt;Waterfox&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;参考链接：https://www.webdevelopersnotes.com/browsers-list&lt;/p&gt;
</content:encoded></item><item><title>Web开启PWA详解</title><link>https://blog.doracoin.cc/posts/2023/2023-03-16-web%E5%BC%80%E5%90%AFpwa%E8%AF%A6%E8%A7%A3/</link><guid isPermaLink="true">https://blog.doracoin.cc/posts/2023/2023-03-16-web%E5%BC%80%E5%90%AFpwa%E8%AF%A6%E8%A7%A3/</guid><pubDate>Thu, 16 Mar 2023 14:33:30 GMT</pubDate><content:encoded>&lt;p&gt;自己的网站其实已经支持PWA很长时间了，一直没有时间将这部分知识文档化，抽空简单写一写。&lt;/p&gt;
&lt;p&gt;&amp;lt;!--more--&amp;gt;&lt;/p&gt;
&lt;h2&gt;相关链接&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://app-manifest.firebaseapp.com/&quot;&gt;Manifest.json 生成工具&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://hexo.fluid-dev.com/posts/hexo-pwa/&quot;&gt;给你的Hexo开启PWA&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.sysgeek.cn/progressive-web-apps/&quot;&gt;什么是「渐进式 Web 应用」，PWA 应用程序解析&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://syean.cn/2018/12/17/hexo%E5%8D%9A%E5%AE%A2%E9%85%8D%E7%BD%AEPWA/&quot;&gt;Hexo博客配置PWA&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://web.archive.org/web/20180904011609/https://blog.nfz.moe/archives/pwa-support-for-my-blog.html&quot;&gt;为博客启用 PWA 支持&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://web.archive.org/web/20180904023614/https://blog.nfz.moe/archives/wpo-by-service-worker.html&quot;&gt;Web 性能优化（1）——浅尝 Service Worker&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.naaln.com/2017/09/hexo-with-pwa/&quot;&gt;让PWA支持HEXO&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</content:encoded></item><item><title>解锁 TrueNAS SCALE 第三方docker容器网络访问限制</title><link>https://blog.doracoin.cc/posts/2023/2023-02-06-%E8%A7%A3%E9%94%81-truenas-scale-%E7%AC%AC%E4%B8%89%E6%96%B9docker%E5%AE%B9%E5%99%A8%E7%BD%91%E7%BB%9C%E8%AE%BF%E9%97%AE%E9%99%90%E5%88%B6/</link><guid isPermaLink="true">https://blog.doracoin.cc/posts/2023/2023-02-06-%E8%A7%A3%E9%94%81-truenas-scale-%E7%AC%AC%E4%B8%89%E6%96%B9docker%E5%AE%B9%E5%99%A8%E7%BD%91%E7%BB%9C%E8%AE%BF%E9%97%AE%E9%99%90%E5%88%B6/</guid><pubDate>Mon, 06 Feb 2023 15:57:58 GMT</pubDate><content:encoded>&lt;p&gt;...
&amp;lt;!--more--&amp;gt;&lt;/p&gt;
&lt;p&gt;为防止链接失效，从 &lt;a href=&quot;https://blog.csdn.net/JOYIST/article/details/119917492&quot;&gt;解锁TrueNAS SCALE 三方docker容器网络访问限制，默认是关闭的；并添加Portainer-CE容器webGUI管理器&lt;/a&gt; 转载.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;解锁TrueNAS SCALE 三方Docker容器网络访问限制，默认是关闭的；并添加Portainer-CE容器webGUI管理器&lt;/p&gt;
&lt;p&gt;本教程环境版本: &lt;code&gt;TrueNAS-SCALE-21.06-BETA.1&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;首先开启SSH访问&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;./2023-02-06-%E8%A7%A3%E9%94%81-TrueNAS-SCALE-%E7%AC%AC%E4%B8%89%E6%96%B9docker%E5%AE%B9%E5%99%A8%E7%BD%91%E7%BB%9C%E8%AE%BF%E9%97%AE%E9%99%90%E5%88%B6/20210825185702728.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;开启root登陆&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;./2023-02-06-%E8%A7%A3%E9%94%81-TrueNAS-SCALE-%E7%AC%AC%E4%B8%89%E6%96%B9docker%E5%AE%B9%E5%99%A8%E7%BD%91%E7%BB%9C%E8%AE%BF%E9%97%AE%E9%99%90%E5%88%B6/20210825185744316.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;SSH登陆TrueNAS&lt;/p&gt;
&lt;p&gt;账号: &lt;code&gt;root/密码&lt;/code&gt;（和Web端相同）&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;./2023-02-06-%E8%A7%A3%E9%94%81-TrueNAS-SCALE-%E7%AC%AC%E4%B8%89%E6%96%B9docker%E5%AE%B9%E5%99%A8%E7%BD%91%E7%BB%9C%E8%AE%BF%E9%97%AE%E9%99%90%E5%88%B6/20210825185937723.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;创建新的Docker配置文档 &lt;strong&gt;(这样做是因为，在NAS系统重启后，会初始化原来的&lt;code&gt;daemon.json&lt;/code&gt;文件)&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;cp /etc/docker/daemon.json /etc/docker/daemon-new.json
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;编辑这个 &lt;code&gt;daemon-new.json&lt;/code&gt; 文档&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;vi /etc/docker/daemon-new.json
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;删除 &lt;code&gt;iptable&lt;/code&gt;，&lt;code&gt;Bridge&lt;/code&gt; 相关参数&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;./2023-02-06-%E8%A7%A3%E9%94%81-TrueNAS-SCALE-%E7%AC%AC%E4%B8%89%E6%96%B9docker%E5%AE%B9%E5%99%A8%E7%BD%91%E7%BB%9C%E8%AE%BF%E9%97%AE%E9%99%90%E5%88%B6/20210825185902859.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;编辑 &lt;code&gt;docker.service&lt;/code&gt; 服务配置&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;vi /usr/lib/systemd/system/docker.service
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;找到在 &lt;code&gt;[Service]&lt;/code&gt; 段下的&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;ExecStart=/usr/bin/dockerd
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;在其后加入&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;--config-file=/etc/docker/daemon-new.json
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;img src=&quot;./2023-02-06-%E8%A7%A3%E9%94%81-TrueNAS-SCALE-%E7%AC%AC%E4%B8%89%E6%96%B9docker%E5%AE%B9%E5%99%A8%E7%BD%91%E7%BB%9C%E8%AE%BF%E9%97%AE%E9%99%90%E5%88%B6/20210825190015611.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;重载配置&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;systemctl daemon-reload
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;重启docker&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;systemctl restart docker
&lt;/code&gt;&lt;/pre&gt;
</content:encoded></item><item><title>PT下载中的:免费、2x、2xfree、2x50%、50%分别代表什么意思</title><link>https://blog.doracoin.cc/posts/2023/2023-01-12-pt%E4%B8%8B%E8%BD%BD%E4%B8%AD%E7%9A%84-%E5%85%8D%E8%B4%B9-2x-2xfree-2x50-50-%E5%88%86%E5%88%AB%E4%BB%A3%E8%A1%A8%E4%BB%80%E4%B9%88%E6%84%8F%E6%80%9D/</link><guid isPermaLink="true">https://blog.doracoin.cc/posts/2023/2023-01-12-pt%E4%B8%8B%E8%BD%BD%E4%B8%AD%E7%9A%84-%E5%85%8D%E8%B4%B9-2x-2xfree-2x50-50-%E5%88%86%E5%88%AB%E4%BB%A3%E8%A1%A8%E4%BB%80%E4%B9%88%E6%84%8F%E6%80%9D/</guid><pubDate>Thu, 12 Jan 2023 15:07:16 GMT</pubDate><content:encoded>&lt;p&gt;...
&amp;lt;!--more--&amp;gt;&lt;/p&gt;
&lt;p&gt;PT站流量计算分下载和上传，免费、2x 、2xfree、2x50%、50%的意思如下：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;免费：不计下载流量，下载免费，上传100%，即用户下载不计算下载流量，上传计100%。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;2x：上传流量算两倍，下载流量100%，例如用户上传1G算为2G，上传1G算为1G。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;2xfree：上传流量算两倍，下载免费，例如用户上传1G计算为2G，下载不算流量。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;2x50%：上传流量算两倍，下载算一半，例如用户上传1G计算为2G，下载1G计算为0.5G。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;50%：上传流量算100%，下载流量算50%，例如用户上传1G计算为1G，下载1G计算为0.5G。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;一般做新手任务的话，多下载&lt;code&gt;2x&lt;/code&gt;类型的资源是比较快的，选做种人多、热门的资源下载，很快就能完成任务。&lt;/p&gt;
</content:encoded></item><item><title>目前已知的Markdown编辑器收集整理</title><link>https://blog.doracoin.cc/posts/2023/2023-01-06-%E7%9B%AE%E5%89%8D%E5%B7%B2%E7%9F%A5%E7%9A%84markdown%E7%BC%96%E8%BE%91%E5%99%A8%E6%94%B6%E9%9B%86%E6%95%B4%E7%90%86/</link><guid isPermaLink="true">https://blog.doracoin.cc/posts/2023/2023-01-06-%E7%9B%AE%E5%89%8D%E5%B7%B2%E7%9F%A5%E7%9A%84markdown%E7%BC%96%E8%BE%91%E5%99%A8%E6%94%B6%E9%9B%86%E6%95%B4%E7%90%86/</guid><pubDate>Fri, 06 Jan 2023 10:19:12 GMT</pubDate><content:encoded>&lt;p&gt;可选择的太多了，无痛使用的却太少。帮我的一位好朋友（印象笔记难民）整理一下。&amp;lt;!--more--&amp;gt;&lt;/p&gt;
&lt;p&gt;收集范围：由于Markdown格式本身就是文本格式，理论上任何文本编辑器都可以对它进行编辑，所以本文讨论范围建立在Markdown的&lt;strong&gt;专用编辑器&lt;/strong&gt;之上。&lt;/p&gt;
&lt;p&gt;以下排序包含个人的一点主观性。&lt;/p&gt;
&lt;h2&gt;1. 原生程序&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;对于原生的定义：有原生的软件安装包，但该程序的开发语言不作为定义因素。&lt;/li&gt;
&lt;li&gt;对于跨平台的定义：Windows、Linux、MacOS、Android、iOS等平台中，支持超过两种及以上的平台&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;1. Joplin (在用)&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;描述：带同步功能的多端跨平台Markdown编辑器。同步功能支持：Joplin官方、DropBox、OneDrive；&lt;/li&gt;
&lt;li&gt;官网：https://joplinapp.org/&lt;/li&gt;
&lt;li&gt;Github：https://github.com/laurent22/joplin&lt;/li&gt;
&lt;li&gt;形式：原生程序渲染&lt;/li&gt;
&lt;li&gt;跨平台：Windows, macOS, Linux, Android and iOS.&lt;/li&gt;
&lt;li&gt;存储方式：Joplin官方、DropBox、OneDrive、本地、NextCloud(一款开源网盘，可使用公用服务，可私有自建服务)、WebDAV、S3(Amazon S3)&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;h3&gt;2. Typora (主用)&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;描述：界面简洁的Markdown编辑器&lt;/li&gt;
&lt;li&gt;官网：https://typora.io&lt;/li&gt;
&lt;li&gt;Github：非开源&lt;/li&gt;
&lt;li&gt;形式：原生程序渲染&lt;/li&gt;
&lt;li&gt;跨平台：支持&lt;/li&gt;
&lt;li&gt;存储方式：本地&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;h3&gt;3. Noteable (在用)&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;描述：支持标签管理文章的原生Markdown应用&lt;/li&gt;
&lt;li&gt;官网：https://notable.app/&lt;/li&gt;
&lt;li&gt;Github：(非开源但有Github仓库) https://github.com/notable/notable&lt;/li&gt;
&lt;li&gt;形式：原生程序渲染&lt;/li&gt;
&lt;li&gt;跨平台：支持&lt;/li&gt;
&lt;li&gt;存储方式：本地&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;h3&gt;4. AppFlowy (在用)&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;描述：官方描述中说明对标Notion&lt;/li&gt;
&lt;li&gt;官网：https://appflowy.io/&lt;/li&gt;
&lt;li&gt;Github：https://github.com/AppFlowy-IO/appflowy&lt;/li&gt;
&lt;li&gt;形式：原生程序渲染&lt;/li&gt;
&lt;li&gt;跨平台：支持&lt;/li&gt;
&lt;li&gt;存储方式：本地&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;h3&gt;5. Ghostwriter&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;描述：没有借口，没有打扰，只有写作。KDE社区项目&lt;/li&gt;
&lt;li&gt;官网：https://ghostwriter.kde.org/zh-cn/&lt;/li&gt;
&lt;li&gt;开源：KDE官方开源仓  https://invent.kde.org/office/ghostwriter&lt;/li&gt;
&lt;li&gt;形式：原生程序渲染&lt;/li&gt;
&lt;li&gt;跨平台：支持（MacOS需自行编译）&lt;/li&gt;
&lt;li&gt;存储方式：本地&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;h3&gt;6. Laverna (用过)&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;描述：保证你的笔记是私有的&lt;/li&gt;
&lt;li&gt;官网：https://laverna.cc/&lt;/li&gt;
&lt;li&gt;Github：https://github.com/Laverna/laverna&lt;/li&gt;
&lt;li&gt;形式：原生程序渲染 + Web端版本&lt;/li&gt;
&lt;li&gt;跨平台：支持&lt;/li&gt;
&lt;li&gt;存储方式：本地、DropBox、OneDrive、WebDAV&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;h3&gt;7. MarkText (用过)&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;描述：一款简单、优雅的Markdown编辑器&lt;/li&gt;
&lt;li&gt;官网：https://marktext.app/  (已失效)&lt;/li&gt;
&lt;li&gt;Github：https://github.com/marktext/marktext&lt;/li&gt;
&lt;li&gt;形式：原生程序渲染&lt;/li&gt;
&lt;li&gt;跨平台：支持&lt;/li&gt;
&lt;li&gt;存储方式：本地&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;h3&gt;8. Abricotine&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;描述：Abricotine是一款开源的桌面级Markdown编辑器。&lt;/li&gt;
&lt;li&gt;官网：https://abricotine.brrd.fr/&lt;/li&gt;
&lt;li&gt;Github：https://github.com/brrd/Abricotine&lt;/li&gt;
&lt;li&gt;形式：原生程序渲染&lt;/li&gt;
&lt;li&gt;跨平台：支持&lt;/li&gt;
&lt;li&gt;存储方式：本地&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;h3&gt;9. Mditor&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;描述：简洁的Markdown编辑器&lt;/li&gt;
&lt;li&gt;官网：http://mditor.ink/&lt;/li&gt;
&lt;li&gt;Github：https://github.com/houfeng/mditor-desktop&lt;/li&gt;
&lt;li&gt;形式：原生程序渲染&lt;/li&gt;
&lt;li&gt;跨平台：仅Mac&lt;/li&gt;
&lt;li&gt;存储方式：本地&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;h3&gt;10. Yu Writer&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;描述：高效的跨平台Markdown编辑器&lt;/li&gt;
&lt;li&gt;官网：https://ivarptr.github.io/yu-writer.site/&lt;/li&gt;
&lt;li&gt;Github：(非开源但有Github仓库) https://github.com/ivarptr/yu-writer.site&lt;/li&gt;
&lt;li&gt;形式：原生程序&lt;/li&gt;
&lt;li&gt;跨平台：支持&lt;/li&gt;
&lt;li&gt;存储方式：本地&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;h2&gt;2. Web端&lt;/h2&gt;
&lt;p&gt;多是基于Web的编辑器，个别编辑器支持将文章 Markdown &amp;lt;===&amp;gt; HTML 互转的&lt;/p&gt;
&lt;h3&gt;1. Writefreely (用过)&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;描述：一个干净的、基于 Markdown 的出版平台，专为写作打造。 一起写作并建立一个社区。&lt;/li&gt;
&lt;li&gt;官网：https://writefreely.org/&lt;/li&gt;
&lt;li&gt;Github：https://github.com/writefreely/writefreely&lt;/li&gt;
&lt;li&gt;形式：Web端&lt;/li&gt;
&lt;li&gt;跨平台：支持&lt;/li&gt;
&lt;li&gt;存储方式：官方云、私有云&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;h3&gt;2. StackEdit (用过)&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;描述：开源，基于Web的编辑器，提供官方服务，也可以自己搭建，需要折腾&lt;/li&gt;
&lt;li&gt;官网：https://stackedit.io/&lt;/li&gt;
&lt;li&gt;Github：https://github.com/benweet/stackedit&lt;/li&gt;
&lt;li&gt;形式：Web端&lt;/li&gt;
&lt;li&gt;跨平台：支持&lt;/li&gt;
&lt;li&gt;存储方式：本地、私有云&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;h3&gt;3. Hexo (在用)&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;描述：基于Node.js的开源博客，需要相当一定程度的折腾&lt;/li&gt;
&lt;li&gt;官网：https://hexo.io/zh-cn/&lt;/li&gt;
&lt;li&gt;Github：https://github.com/benweet/stackedit&lt;/li&gt;
&lt;li&gt;形式：渲染成Web网站&lt;/li&gt;
&lt;li&gt;跨平台：支持(因为是Web)&lt;/li&gt;
&lt;li&gt;存储方式：本质上是一个Node.js程序，所有程序代码和文章都在一个文件夹下，习惯上使用Git管理&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;h3&gt;4. Editor.md (用过)&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;描述：开源可嵌入式在线Markdown编辑器（组件）&lt;/li&gt;
&lt;li&gt;官网：https://pandao.github.io/editor.md/&lt;/li&gt;
&lt;li&gt;Github：https://github.com/pandao/editor.md&lt;/li&gt;
&lt;li&gt;形式：Web端嵌入式组件&lt;/li&gt;
&lt;li&gt;跨平台：支持&lt;/li&gt;
&lt;li&gt;存储方式：-&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;h3&gt;5. Remarkable&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;描述：Markdown解析器，工作良好。&lt;/li&gt;
&lt;li&gt;官网：https://jonschlinkert.github.io/remarkable/demo/&lt;/li&gt;
&lt;li&gt;Github：https://github.com/jonschlinkert/remarkable&lt;/li&gt;
&lt;li&gt;形式：Web端嵌入式组件&lt;/li&gt;
&lt;li&gt;跨平台：支持&lt;/li&gt;
&lt;li&gt;存储方式：-&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;h3&gt;6. tui.editor&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;描述：Markdown 所见即所得编辑器。 GFM 标准 + 图表和 UML 扩展。&lt;/li&gt;
&lt;li&gt;官网：https://ui.toast.com/tui-editor&lt;/li&gt;
&lt;li&gt;Github：https://github.com/nhn/tui.editor&lt;/li&gt;
&lt;li&gt;形式：Web端嵌入式组件&lt;/li&gt;
&lt;li&gt;跨平台：支持&lt;/li&gt;
&lt;li&gt;存储方式：-&lt;/li&gt;
&lt;/ul&gt;
</content:encoded></item><item><title>Deluge-开源BT下载工具</title><link>https://blog.doracoin.cc/posts/2023/2023-01-03-deluge-%E5%BC%80%E6%BA%90bt%E4%B8%8B%E8%BD%BD%E5%B7%A5%E5%85%B7/</link><guid isPermaLink="true">https://blog.doracoin.cc/posts/2023/2023-01-03-deluge-%E5%BC%80%E6%BA%90bt%E4%B8%8B%E8%BD%BD%E5%B7%A5%E5%85%B7/</guid><pubDate>Tue, 03 Jan 2023 14:43:34 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;Deluge 是一款优秀的 BT 下载客户端，采用 python 和 GTK + 开发。&amp;lt;!--more--&amp;gt;
&amp;lt;cite&amp;gt;https://www.oschina.net/p/deluge&amp;lt;/cite&amp;gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;1. 官方链接&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://dev.deluge-torrent.org/wiki/Download&quot;&gt;官网下载链接&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/deluge-torrent/deluge&quot;&gt;Github&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;2. 使用简介&lt;/h2&gt;
&lt;p&gt;安装完成后，软件会默认将&lt;code&gt;deluge.exe&lt;/code&gt;创建快捷方式到桌面，这个是默认的图形界面。&lt;/p&gt;
&lt;p&gt;其他还有：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Web端图形界面：&lt;code&gt;deluge-web.exe&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;GTK开发的图形界面：&lt;code&gt;deluge-gtk.exe&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;这三种图形界面，Web端提供的汉化是最完整的，但功能性都差不多。&lt;/p&gt;
&lt;p&gt;Web端界面会监听在本地&lt;code&gt;8112&lt;/code&gt;端口上，输入: &lt;code&gt;http://localhost:8112/&lt;/code&gt; 即可访问，有密码限制，默认是 &lt;code&gt;deluge&lt;/code&gt;。&lt;/p&gt;
&lt;p&gt;其中&lt;code&gt;deluged.exe&lt;/code&gt;就是真正的工作进程，文件下载、BT传输都是它来完成的，它会在系统后台开启一个进程。以上所提到的图形工具都是调用这个进程提供的接口来实现的。&lt;/p&gt;
&lt;p&gt;该进程可通过图形界面中的弹窗进行启动，一般情况下，在图形界面的“连接管理”弹窗中，会默认显示一个任务，点击“启动后台进程(StartDaemon)”即可开始使用。&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;├── deluge-console.exe //
├── deluge-debug.exe
├── deluge-gtk.exe
├── deluge-uninst.exe
├── deluge-web-debug.exe
├── deluge-web.exe
├── deluge.exe
├── deluged-debug.exe
├── deluged.exe
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;参考文章&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://www.vmvps.com/how-to-change-the-default-port-and-password-of-deluge-web-ui.html&quot;&gt;Deluge网页端修改端口及密码的方法&lt;/a&gt;&lt;/p&gt;
</content:encoded></item><item><title>2022-年终总结</title><link>https://blog.doracoin.cc/posts/2023/2023-01-01-2022-%E5%B9%B4%E7%BB%88%E6%80%BB%E7%BB%93/</link><guid isPermaLink="true">https://blog.doracoin.cc/posts/2023/2023-01-01-2022-%E5%B9%B4%E7%BB%88%E6%80%BB%E7%BB%93/</guid><pubDate>Sun, 01 Jan 2023 00:00:01 GMT</pubDate><content:encoded>&lt;ul&gt;
&lt;li&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;lt;!--more--&amp;gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;这篇文章是匆匆忙忙写下来的，这一年的生活节奏杂乱到没有时间静下来思考。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;慌慌张张 匆匆忙忙 为何生活总是这样
&amp;lt;cite&amp;gt;&amp;lt;a href=&quot;https://music.163.com/#/song?id=27646786&quot;&amp;gt;活着 - 郝云&amp;lt;/a&amp;gt;&amp;lt;/cite&amp;gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;生活&lt;/h2&gt;
&lt;p&gt;2022-02-22 壬寅虎年 农历正月廿二 星期二 领证&lt;/p&gt;
&lt;p&gt;新房装修持续半年，中间还经历了一个半月的疫情封控。&lt;/p&gt;
&lt;p&gt;2022-06-26 结婚&lt;/p&gt;
&lt;p&gt;2022-12-20 疫情防控彻底放开，新冠7日体验&lt;/p&gt;
&lt;h2&gt;工作&lt;/h2&gt;
&lt;p&gt;3月：前公司在当地的分公司撤退，因此失业。&lt;/p&gt;
&lt;p&gt;5月：有幸入职当地一家比较不错的国企，继续做一些开发工作(一堆不仅限于开发的工作(笑cry))，算是有了饭碗&lt;/p&gt;
&lt;h2&gt;学习&lt;/h2&gt;
&lt;p&gt;上半年做了一点微不足道的Android开发工作和JavaWeb开发，然后我最擅长的Android开发技能就这样进一步搁置，唉。&lt;/p&gt;
&lt;p&gt;所幸的是JavaWeb熟练度也得到了进一步的提升。&lt;/p&gt;
&lt;p&gt;下半年学习了Vue.js开发，和部署了多项开源程序，运维技能又得到了进一步的加强 -_- 。&lt;/p&gt;
&lt;p&gt;所幸的是，Vue.js算是入门了，简单一些的Web可以自己做了。&lt;/p&gt;
&lt;h2&gt;娱乐&lt;/h2&gt;
&lt;p&gt;上半年偶尔还会玩玩枫之谷，下半年则是在玩原神&lt;/p&gt;
</content:encoded></item><item><title>(Yunzai-Bot)原神QQ群机器人安装教程</title><link>https://blog.doracoin.cc/posts/2022/2022-12-30-%E5%8E%9F%E7%A5%9Eqq%E7%BE%A4%E6%9C%BA%E5%99%A8%E4%BA%BA%E5%AE%89%E8%A3%85%E6%95%99%E7%A8%8B/</link><guid isPermaLink="true">https://blog.doracoin.cc/posts/2022/2022-12-30-%E5%8E%9F%E7%A5%9Eqq%E7%BE%A4%E6%9C%BA%E5%99%A8%E4%BA%BA%E5%AE%89%E8%A3%85%E6%95%99%E7%A8%8B/</guid><pubDate>Fri, 30 Dec 2022 14:38:57 GMT</pubDate><content:encoded>&lt;p&gt;项目地址：https://github.com/Le-niao/Yunzai-Bot&amp;lt;!--more--&amp;gt;&lt;/p&gt;
&lt;p&gt;插件地址：https://github.com/yoimiya-kokomi/miao-plugin&lt;/p&gt;
&lt;p&gt;插件索引：https://github.com/yhArcadia/Yunzai-Bot-plugins-index&lt;/p&gt;
&lt;h2&gt;1. 安装方法&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;环境准备： Linux，Node.js（版本至少v16以上），Redis&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3&gt;1.1 克隆项目&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;git clone --depth=1 -b main https://github.com/Le-niao/Yunzai-Bot.git
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;进入Yunzai目录&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;cd Yunzai-Bot
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;1.2 安装pnpm，已安装的可以跳过&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;npm install pnpm -g
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;1.3 安装插件&lt;/h3&gt;
&lt;p&gt;在 云崽 根目录下执行&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;git clone https://github.com/yoimiya-kokomi/miao-plugin.git ./plugins/miao-plugin/
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;若启动后日志提示：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt; --------插件载入错误--------
 miao-plugin 缺少依赖：image-size
 请执行安装依赖命令：pnpm add image-size -w
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;就先停止服务，执行安装提示给出的命令，然后重启服务&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;npm stop
pnpm add image-size -w
npm start
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;1.4 安装依赖&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;pnpm install -P
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;1.5 运行（首次运行按提示输入登录）&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;node app
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;1.6 后台运行&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;npm start
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;2. 问题记录&lt;/h2&gt;
&lt;h3&gt;2.1 图片文字“方块乱码”&lt;/h3&gt;
&lt;p&gt;由于系统中没有中文字体导致的，详细操作方法参考：&lt;a href=&quot;https://cloud.tencent.com/developer/article/1616990&quot;&gt;CentOS 安装中文字体&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;2.2 缺少 libatk-bridge 导致的问题&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;error while loading shared libraries: libatk-bridge-2.0.so.0: cannot open shared object file: No such file or directory
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;参考链接&lt;a href=&quot;https://shipengliang.com/software-exp/centos-7-chrome-error-while-loading-shared-libraries-libatk-bridge-2-0-so-0-%e8%a7%a3%e5%86%b3%e5%8a%9e%e6%b3%95.html&quot;&gt;CentOS 7 chrome: error while loading shared libraries: libatk-bridge-2.0.so.0 解决办法&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;常见于安装puppeteer后使用时的提示，其实就是缺失一个库而已，执行如下指令安装即可:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;yum install -y at-spi2-atk
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;2.3 缺少 libxkbcommon 导致的问题&lt;/h3&gt;
&lt;p&gt;&lt;a href=&quot;https://blog.csdn.net/vsgvygvu/article/details/127775649&quot;&gt;云崽部署问题解决贴&lt;/a&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;yum install -y libxkbcommon-devel
yum install -y libgbm-dev
yum install -y libgtk-3-0
&lt;/code&gt;&lt;/pre&gt;
</content:encoded></item><item><title>Wake On Lan (WOL)失败的原因</title><link>https://blog.doracoin.cc/posts/2022/2022-11-28-wake-on-lan-wol-%E5%A4%B1%E8%B4%A5%E7%9A%84%E5%8E%9F%E5%9B%A0/</link><guid isPermaLink="true">https://blog.doracoin.cc/posts/2022/2022-11-28-wake-on-lan-wol-%E5%A4%B1%E8%B4%A5%E7%9A%84%E5%8E%9F%E5%9B%A0/</guid><pubDate>Mon, 28 Nov 2022 21:18:19 GMT</pubDate><content:encoded>&lt;p&gt;真是折腾人
&amp;lt;!--more--&amp;gt;&lt;/p&gt;
&lt;p&gt;阅读一下网友的经历基本上就能解决问题，我本次遇到的问题可能是如下原因：&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;在网卡的属性设置里-&amp;gt;高级-&amp;gt;网络唤醒和关机连接速度&amp;gt;设置为“100 Mbps优先”（默认是10 Mbps优先）就好了&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.csdn.net/tiancao222/article/details/100558751&quot;&gt;电脑关机一段时间后不能网络唤醒WOL&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.csdn.net/hanziyuan08/article/details/97325883&quot;&gt;总结几点 Wake On Lan (WOL) 失败的原因&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.csdn.net/sean908/article/details/109174695&quot;&gt;Win 10 WoL 失败检查小记&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.cnblogs.com/AlwaysOnLines/p/4548097.html&quot;&gt;ACPI电源管理介绍&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://answers.microsoft.com/en-us/windows/forum/windows_10-power/windows-10-wake-on-lan-not-working-from-shutdown/ba6ae540-b602-42f3-b5bb-afe95fe6661c&quot;&gt;系统层面的微软解答&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</content:encoded></item><item><title>NAS组装计划</title><link>https://blog.doracoin.cc/posts/2022/2022-11-09-nas%E7%BB%84%E8%A3%85%E8%AE%A1%E5%88%92/</link><guid isPermaLink="true">https://blog.doracoin.cc/posts/2022/2022-11-09-nas%E7%BB%84%E8%A3%85%E8%AE%A1%E5%88%92/</guid><pubDate>Wed, 09 Nov 2022 23:34:34 GMT</pubDate><content:encoded>&lt;p&gt;大人的玩具
&amp;lt;!--more--&amp;gt;&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;选项&lt;/th&gt;
&lt;th&gt;型号&lt;/th&gt;
&lt;th&gt;价格&lt;/th&gt;
&lt;th&gt;链接&lt;/th&gt;
&lt;th&gt;已采购&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;机箱&lt;/td&gt;
&lt;td&gt;Treasure宝藏v1.2-北欧木艺mATX主板8硬盘NAS机箱&lt;/td&gt;
&lt;td&gt;759&lt;/td&gt;
&lt;td&gt;https://item.taobao.com/item.htm?id=648911867766&lt;/td&gt;
&lt;td&gt;√&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;s&gt;8TB硬盘&lt;/s&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;s&gt;1000&lt;/s&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;暂不买&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;s&gt;系统1&lt;/s&gt;&lt;/td&gt;
&lt;td&gt;&lt;s&gt;Unraid OS&lt;/s&gt;&lt;/td&gt;
&lt;td&gt;&lt;s&gt;59美元≈400&lt;/s&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;TrueNAS替代&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;系统2&lt;/td&gt;
&lt;td&gt;TrueNAS&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;---&lt;/td&gt;
&lt;td&gt;---&lt;/td&gt;
&lt;td&gt;---&lt;/td&gt;
&lt;td&gt;---&lt;/td&gt;
&lt;td&gt;---&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;CPU&lt;/td&gt;
&lt;td&gt;i3 12100 带核显&lt;/td&gt;
&lt;td&gt;795&lt;/td&gt;
&lt;td&gt;https://item.taobao.com/item.htm?id=659893054089&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;散热器&lt;/td&gt;
&lt;td&gt;利民(Thermalright)AXP90-X53&lt;/td&gt;
&lt;td&gt;229&lt;/td&gt;
&lt;td&gt;https://item.jd.com/100021352946.html&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;电源&lt;/td&gt;
&lt;td&gt;全汉（FSP）额定450W 经典版MS450&lt;/td&gt;
&lt;td&gt;459&lt;/td&gt;
&lt;td&gt;https://item.jd.com/6060172.html&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;内存条&lt;/td&gt;
&lt;td&gt;英睿达（Crucial）美光 16GB DDR5 4800&lt;/td&gt;
&lt;td&gt;499&lt;/td&gt;
&lt;td&gt;https://item.jd.com/100016333399.html&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;主板&lt;/td&gt;
&lt;td&gt;华硕（ASUS） TUF GAMING B660M-PLUS WIFI 重炮手主板&lt;/td&gt;
&lt;td&gt;1199&lt;/td&gt;
&lt;td&gt;https://item.jd.com/10043950226523.html&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;USB转接版&lt;/td&gt;
&lt;td&gt;主板USB3.0 19P/20P转USB母口一分二&lt;/td&gt;
&lt;td&gt;20&lt;/td&gt;
&lt;td&gt;https://item.taobao.com/item.htm?id=665619772562&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;U盘64G三星&lt;/td&gt;
&lt;td&gt;闪迪（SanDisk）128GB USB3.1 U盘&lt;/td&gt;
&lt;td&gt;100&lt;/td&gt;
&lt;td&gt;https://item.jd.com/100005607802.html&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;弯头SATA数据线x3&lt;/td&gt;
&lt;td&gt;电源SATA转大4P/大4D/IDE转接线一分三&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;https://item.taobao.com/item.htm?id=613927502793&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;硬盘供电线&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;总计&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;3311&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
</content:encoded></item><item><title>Aria2懒人包制作步骤</title><link>https://blog.doracoin.cc/posts/2022/2022-10-21-aria2%E6%87%92%E4%BA%BA%E5%8C%85%E5%88%B6%E4%BD%9C%E6%AD%A5%E9%AA%A4/</link><guid isPermaLink="true">https://blog.doracoin.cc/posts/2022/2022-10-21-aria2%E6%87%92%E4%BA%BA%E5%8C%85%E5%88%B6%E4%BD%9C%E6%AD%A5%E9%AA%A4/</guid><pubDate>Fri, 21 Oct 2022 11:15:28 GMT</pubDate><content:encoded>&lt;p&gt;自己动手，丰衣足食&amp;lt;!--more--&amp;gt;&lt;/p&gt;
&lt;h2&gt;安装前提&lt;/h2&gt;
&lt;p&gt;参考：https://meta.appinn.net/t/topic/7434&lt;/p&gt;
&lt;p&gt;需要提前准备好以下软件：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;下载最新版Aria2 &lt;a href=&quot;https://github.com/aria2/aria2&quot;&gt;aria2-1.36.0-win-64bit-build1.zip&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;下载最新版AriaNg_Native &lt;a href=&quot;https://github.com/mayswind/AriaNg-Native&quot;&gt;AriaNg_Native-1.2.4-Windows-x64.7z&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;下载最新版WinSW和官方给出的配置模板sample-minimal.xml &lt;a href=&quot;https://github.com/kohsuke/winsw&quot;&gt;WinSW-x64.exe&lt;/a&gt;、&lt;a href=&quot;https://github.com/winsw/winsw/releases/download/v2.11.0/sample-minimal.xml&quot;&gt;sample-minimal.xml&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;下载最新版7z.SFX.Builder &lt;a href=&quot;https://sourceforge.net/projects/s-zipsfxbuilder/&quot;&gt;7z.SFX.Builder.Setup-2.1.exe&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;后面的操作步骤以：所有文件在同一文件夹下进行操作为前提。&lt;/p&gt;
&lt;h2&gt;步骤1&lt;/h2&gt;
&lt;p&gt;解压&lt;code&gt;Aria2&lt;/code&gt;的压缩包，得到&lt;code&gt;aria2c.exe&lt;/code&gt;文件，不要更名，如果更名的话后面的安装脚本中也需要改成一致的；
解压&lt;code&gt;AriaNg_Native&lt;/code&gt;的压缩包到当前目录下的&lt;code&gt;AriaNg&lt;/code&gt;文件夹，注意文件夹层级不要多，目的是为了和后面安装脚本一致；&lt;/p&gt;
&lt;h2&gt;步骤2&lt;/h2&gt;
&lt;p&gt;先将 &lt;code&gt;WinSW-x64.exe&lt;/code&gt; 更名为：&lt;code&gt;winsw-aria2c.exe&lt;/code&gt;
再将 &lt;code&gt;sample-minimal.xml&lt;/code&gt; 也更名为: &lt;code&gt;winsw-aria2c.xml&lt;/code&gt;，名称保持一致，扩展名不需要更改
两个文件需要保持在同一目录下，然后编辑&lt;code&gt;winsw-aria2c.xml&lt;/code&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;service&amp;gt;
  
  &amp;lt;!-- ID of the service. It should be unique across the Windows system--&amp;gt;
  &amp;lt;id&amp;gt;aria2c&amp;lt;/id&amp;gt;
  &amp;lt;!-- Display name of the service --&amp;gt;
  &amp;lt;name&amp;gt;aria2c&amp;lt;/name&amp;gt;
  &amp;lt;!-- Service description --&amp;gt;
  &amp;lt;description&amp;gt;aria2 is a lightweight multi-protocol multi-source, cross platform download utility operated in command-line. It supports HTTP/HTTPS, FTP, SFTP, BitTorrent and Metalink. &amp;lt;/description&amp;gt;
  
  &amp;lt;!-- Path to the executable, which should be started --&amp;gt;
  &amp;lt;executable&amp;gt;%BASE%\aria2c.exe&amp;lt;/executable&amp;gt;

  &amp;lt;arguments&amp;gt;--enable-rpc --rpc-listen-all --rpc-allow-origin-all --conf-path=aria2.conf&amp;lt;/arguments&amp;gt;

  &amp;lt;!-- https://github.com/winsw/winsw/blob/master/doc/loggingAndErrorReporting.md --&amp;gt;
  &amp;lt;logpath&amp;gt;%BASE%\logs&amp;lt;/logpath&amp;gt;
  &amp;lt;log mode=&quot;roll-by-size&quot;&amp;gt;
    &amp;lt;sizeThreshold&amp;gt;1024&amp;lt;/sizeThreshold&amp;gt;
    &amp;lt;keepFiles&amp;gt;4&amp;lt;/keepFiles&amp;gt;
  &amp;lt;/log&amp;gt;
  
  &amp;lt;onfailure action=&quot;restart&quot; delay=&quot;10 sec&quot;/&amp;gt;
  &amp;lt;onfailure action=&quot;restart&quot; delay=&quot;20 sec&quot;/&amp;gt;
  &amp;lt;onfailure action=&quot;none&quot; /&amp;gt;

&amp;lt;/service&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;步骤3&lt;/h2&gt;
&lt;p&gt;配置安装命令行,保存为当前文件夹下 &lt;code&gt;install.bat&lt;/code&gt;，其中：&lt;/p&gt;
&lt;p&gt;&lt;code&gt;bt-tracker&lt;/code&gt; 内容可参考&lt;a href=&quot;https://raw.githubusercontent.com/ngosang/trackerslist/master/trackers_all.txt&quot;&gt;Github: trackers_all.txt&lt;/a&gt;。
在这份txt文本中一行为一个tracker节点，配置到 &lt;code&gt;aria2.conf&lt;/code&gt; 中则不可换行，应使用英文半角逗号分隔；
&lt;code&gt;dir&lt;/code&gt;字段是aria2的下载路径，根据需求适当调整；&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;@echo off
fltmc &amp;gt; nul || (echo 请以管理员身份运行 &amp;amp; pause &amp;gt; nul &amp;amp; exit)
cd /d %~dp0


winsw-aria2c.exe install


set UA=Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:106.0) Gecko/20100101 Firefox/106.0
set DownloadDir=D:\Download\Aria2Download
set PA=Deluge 2.1.1
set PIPrefix=-DE2101-

echo user-agent=%UA%&amp;gt;&amp;gt; aria2.conf
echo dir=%DownloadDir%&amp;gt;&amp;gt; aria2.conf
echo peer-agent=%PA%&amp;gt;&amp;gt; aria2.conf
echo peer-id-prefix=%PIPrefix%&amp;gt;&amp;gt; aria2.conf
echo quiet=true&amp;gt;&amp;gt; aria2.conf
echo allow-overwrite=false&amp;gt;&amp;gt; aria2.conf
echo follow-torrent=true&amp;gt;&amp;gt; aria2.conf
echo pause-metadata=true&amp;gt;&amp;gt; aria2.conf
echo disable-ipv6=true&amp;gt;&amp;gt; aria2.conf
echo log=aria2.log&amp;gt;&amp;gt; aria2.conf
echo log-level=notice&amp;gt;&amp;gt; aria2.conf
echo max-connection-per-server=16&amp;gt;&amp;gt; aria2.conf
echo split=64&amp;gt;&amp;gt; aria2.conf
echo continue=true&amp;gt;&amp;gt; aria2.conf
echo http-accept-gzip=true&amp;gt;&amp;gt; aria2.conf
echo input-file=aria2.session&amp;gt;&amp;gt; aria2.conf
echo save-session=aria2.session&amp;gt;&amp;gt; aria2.conf
echo netrc-path=netrc&amp;gt;&amp;gt; aria2.conf
echo dht-file-path=dht.dat&amp;gt;&amp;gt; aria2.conf
echo dht-file-path6=dht6.dat&amp;gt;&amp;gt; aria2.conf
echo pause-metadata=true&amp;gt;&amp;gt; aria2.conf
echo bt-save-metadata=true&amp;gt;&amp;gt; aria2.conf
echo listen-port=62323-63434&amp;gt;&amp;gt; aria2.conf
echo dht-listen-port=62323-63434&amp;gt;&amp;gt; aria2.conf
echo seed-ratio=1.0&amp;gt;&amp;gt; aria2.conf
echo seed-time=5&amp;gt;&amp;gt; aria2.conf
echo rpc-save-upload-metadata=true&amp;gt;&amp;gt; aria2.conf
:: 这个字段的数值如果是1,2等数字，需要加&apos;^&apos;转义符
echo save-session-interval=^1&amp;gt;&amp;gt; aria2.conf
echo auto-save-interval=15&amp;gt;&amp;gt; aria2.conf
echo bt-force-encryption=true&amp;gt;&amp;gt; aria2.conf
echo bt-tracker=udp://tracker.opentrackr.org:1337/announce,http://tracker.opentrackr.org:1337/announce,udp://9.rarbg.com:2810/announce,udp://tracker.openbittorrent.com:6969/announce,http://tracker.openbittorrent.com:80/announce,udp://opentracker.i2p.rocks:6969/announce,https://opentracker.i2p.rocks:443/announce,udp://open.stealth.si:80/announce,udp://tracker.torrent.eu.org:451/announce,udp://ipv4.tracker.harry.lu:80/announce,udp://vibe.sleepyinternetfun.xyz:1738/announce,udp://tracker2.dler.org:80/announce,udp://tracker1.bt.moack.co.kr:80/announce,udp://tracker.zemoj.com:6969/announce,udp://tracker.tiny-vps.com:6969/announce,udp://tracker.theoks.net:6969/announce,udp://tracker.swateam.org.uk:2710/announce,udp://tracker.publictracker.xyz:6969/announce,udp://tracker.monitorit4.me:6969/announce,udp://tracker.moeking.me:6969/announce,udp://tracker.lelux.fi:6969/announce,udp://tracker.dler.org:6969/announce,udp://tracker.army:6969/announce,udp://tracker.altrosky.nl:6969/announce,udp://tracker-udp.gbitt.info:80/announce,udp://tr.cili001.com:8070/announce,udp://public.tracker.vraphim.com:6969/announce,udp://public.publictracker.xyz:6969/announce,udp://p4p.arenabg.com:1337/announce,udp://open.demonii.com:1337/announce,udp://movies.zsw.ca:6969/announce,udp://fe.dealclub.de:6969/announce,udp://explodie.org:6969/announce,udp://exodus.desync.com:6969/announce,udp://camera.lei001.com:6969/announce,udp://bubu.mapfactor.com:6969/announce,udp://bt2.archive.org:6969/announce,udp://bt1.archive.org:6969/announce,udp://app.icon256.com:8000/announce,udp://admin.videoenpoche.info:6969/announce,udp://6ahddutb1ucc3cp.ru:6969/announce,https://tracker2.ctix.cn:443/announce,https://tracker.tamersunion.org:443/announce,https://tracker.nanoha.org:443/announce,https://tracker.lilithraws.org:443/announce,https://tracker.gbitt.info:443/announce,https://tr.burnabyhighstar.com:443/announce,http://tracker2.dler.org:80/announce,http://tracker1.bt.moack.co.kr:80/announce,http://tracker.mywaifu.best:6969/announce,http://tracker.lelux.fi:80/announce,http://tracker.gbitt.info:80/announce,http://tracker.edkj.club:6969/announce,http://tracker.dler.org:6969/announce,http://tr.cili001.com:8070/announce,http://t.overflow.biz:6969/announce,http://bt.okmp3.ru:2710/announce,udp://zecircle.xyz:6969/announce,udp://yahor.ftp.sh:6969/announce,udp://uploads.gamecoast.net:6969/announce,udp://u4.trakx.crim.ist:1337/announce,udp://tracker1.myporn.club:9337/announce,udp://tracker.tcp.exchange:6969/announce,udp://tracker.srv00.com:6969/announce,udp://tracker.skyts.net:6969/announce,udp://tracker.pomf.se:80/announce,udp://tracker.openbtba.com:6969/announce,udp://tracker.leech.ie:1337/announce,udp://tracker.joybomb.tw:6969/announce,udp://tracker.jonaslsa.com:6969/announce,udp://tracker.filemail.com:6969/announce,udp://tracker.ddunlimited.net:6969/announce,udp://tracker.bitsearch.to:1337/announce,udp://tracker.auctor.tv:6969/announce,udp://tracker.artixlinux.org:6969/announce,udp://tracker.4.babico.name.tr:3131/announce,udp://tr.bangumi.moe:6969/announce,udp://torrents.artixlinux.org:6969/announce,udp://torrentclub.space:6969/announce,udp://thouvenin.cloud:6969/announce,udp://tamas3.ynh.fr:6969/announce,udp://smtp-relay.odysseylabel.com.au:6969/announce,udp://slicie.icon256.com:8000/announce,udp://sanincode.com:6969/announce,udp://run.publictracker.xyz:6969/announce,udp://run-2.publictracker.xyz:6969/announce,udp://rep-art.ynh.fr:6969/announce,udp://qtstm32fan.ru:6969/announce,udp://psyco.fr:6969/announce,udp://open.tracker.ink:6969/announce,udp://open.free-tracker.ga:6969/announce,udp://open.dstud.io:6969/announce,udp://new-line.net:6969/announce,udp://moonburrow.club:6969/announce,udp://mirror.aptus.co.tz:6969/announce,udp://mail.zasaonsk.ga:6969/announce,udp://mail.artixlinux.org:6969/announce,udp://madiator.com:6969/announce,udp://leefafa.tk:6969/announce,udp://laze.cc:6969/announce,udp://kokodayo.site:6969/announce,udp://keke.re:6969/announce,udp://htz3.noho.st:6969/announce,udp://fh2.cmp-gaming.com:6969/announce,udp://f1sh.de:6969/announce,udp://epider.me:6969/announce,udp://download.nerocloud.me:6969/announce,udp://cutscloud.duckdns.org:6969/announce,udp://concen.org:6969/announce,udp://chouchou.top:8080/announce,udp://carr.codes:6969/announce,udp://buddyfly.top:6969/announce,udp://bt.ktrackers.com:6666/announce,udp://black-bird.ynh.fr:6969/announce,udp://ben.kerbertools.xyz:6969/announce,udp://astrr.ru:6969/announce,udp://admin.52ywp.com:6969/announce,udp://aarsen.me:6969/announce,udp://960303.xyz:6969/announce,https://xtremex.herokuapp.com:443/announce,https://tracker1.520.jp:443/announce,https://tracker.kuroy.me:443/announce,https://tracker.jiesen.life:8443/announce,https://tracker.foreverpirates.co:443/announce,https://tracker.expli.top:443/announce,https://tr.abir.ga:443/announce,https://tr.abiir.top:443/announce,https://1337.abcvg.info:443/announce,http://wepzone.net:6969/announce,http://vps02.net.orel.ru:80/announce,http://tracker4.itzmx.com:2710/announce,http://tracker3.itzmx.com:6961/announce,http://tracker3.ctix.cn:8080/announce,http://tracker1.itzmx.com:8080/announce,http://tracker.skyts.net:6969/announce,http://tracker.files.fm:6969/announce,http://tracker.bt4g.com:2095/announce,http://t.acg.rip:6699/announce,http://open.tracker.ink:6969/announce,http://open.acgnxtracker.com:80/announce,http://jp.moeweb.pw:6969/announce,http://incine.ru:6969/announce,http://fxtt.ru:80/announce,http://fosstorrents.com:6969/announce,http://1337.abcvg.info:80/announce&amp;gt;&amp;gt; aria2.conf


winsw-aria2c.exe start


@set desk = &quot;&quot;
for /f &quot;tokens=2,*&quot; %%i in (&apos;reg query &quot;HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders&quot; /v &quot;Desktop&quot;&apos;) do (
@set desk=%%j
)


set SCRIPT=&quot;%TEMP%\%RANDOM%-%RANDOM%-%RANDOM%-%RANDOM%.vbs&quot;

echo Set oWS = WScript.CreateObject(&quot;WScript.Shell&quot;) &amp;gt;&amp;gt; %SCRIPT%
echo sLinkFile = &quot;%desk%\AriaNg.lnk&quot; &amp;gt;&amp;gt; %SCRIPT%
echo Set oLink = oWS.CreateShortcut(sLinkFile) &amp;gt;&amp;gt; %SCRIPT%
echo oLink.TargetPath = &quot;%~dp0\AriaNg\AriaNg.exe&quot; &amp;gt;&amp;gt; %SCRIPT%
echo oLink.Save &amp;gt;&amp;gt; %SCRIPT%

cscript /nologo %SCRIPT%
del %SCRIPT%


exit
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;配置卸载脚本,保存为当前目录下 &lt;code&gt;uninstall.bat&lt;/code&gt;：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;@echo off
fltmc &amp;gt; nul || (echo 请以管理员身份运行 &amp;amp; pause &amp;gt; nul &amp;amp; exit)
cd /d %~dp0


winsw-aria2c.exe stop
winsw-aria2c.exe uninstall


set current_dir=&quot;%~dp0&quot;
cd ..
echo 将删除当前目录，按任意键继续，关闭窗口则取消
pause &amp;gt; nul
rmdir /Q /S %current_dir% &amp;amp; echo 卸载完毕，按任意键退出 &amp;amp; pause &amp;gt; nul &amp;amp; exit
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;压缩成7zip&lt;/h2&gt;
&lt;p&gt;将如下文件压缩成一个7zip包，并保证在压缩包的一级目录：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;\AriaNg\
aria2.ico
aria2.log
aria2.session
aria2c.exe
dht.dat
install.bat
uninstall.bat
winsw-aria2c.exe
winsw-aria2c.xml
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;img src=&quot;./2022-10-21-Aria2%E6%87%92%E4%BA%BA%E5%8C%85%E5%88%B6%E4%BD%9C%E6%AD%A5%E9%AA%A4/2022-10-24-133339.jpg&quot; alt=&quot;压缩后的文件结构&quot; /&gt;&lt;/p&gt;
&lt;p&gt;然后运行启动软件 &lt;code&gt;7Z SFX Builder&lt;/code&gt;，
首次运行先切换界面语言:
&lt;img src=&quot;./2022-10-21-Aria2%E6%87%92%E4%BA%BA%E5%8C%85%E5%88%B6%E4%BD%9C%E6%AD%A5%E9%AA%A4/2022-10-24-134557.jpg&quot; alt=&quot;切换界面语言&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;配置 7zip SFX&lt;/h3&gt;
&lt;p&gt;其中可以替换的信息为：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;7zSFXBuilder_Res_FileDescription&lt;/code&gt; Aria2和AriaNg的版本号信息&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code&gt;;!@Install@!UTF-8!
InstallPath=&quot;%%S\\Aria2&quot;
BeginPrompt=&quot;选择一个路径开始安装&quot;
ExtractPathText=&quot;请选择解压路径&quot;
ExtractDialogText=&quot;解压中...&quot;
CancelPrompt=&quot;解压取消&quot;
FinishMessage=&quot;解压完成&quot;
GUIFlags=&quot;4+64+128&quot;
MiscFlags=&quot;4&quot;
RunProgram=&quot;hidcon:install.bat&quot;
;Config file generated by 7z SFX Builder v2.1. (http://sourceforge.net/projects/s-zipsfxbuilder/)
;!@InstallEnd@!
7zSFXBuilder_SFXName=aria2-install-sfx.exe
7zSFXBuilder_Res_FileDescription=Aria2-1.36.0; AriaNgNative-1.2.4
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;将这段配置配置文件保存为txt，编码格式为GB2312，然后用SFX打开这个配置文件:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;./2022-10-21-Aria2%E6%87%92%E4%BA%BA%E5%8C%85%E5%88%B6%E4%BD%9C%E6%AD%A5%E9%AA%A4/2022-10-24-135554.jpg&quot; alt=&quot;打开配置文件&quot; /&gt;&lt;/p&gt;
&lt;p&gt;正常加载后是可以在&quot;输出&quot;标签页中看到配置文件信息的，并且软件还会补充几项自动生成的配置，可以默认不修改：&lt;/p&gt;
</content:encoded></item><item><title>Vue Router使用</title><link>https://blog.doracoin.cc/posts/2022/2022-10-20-vue-router%E4%BD%BF%E7%94%A8/</link><guid isPermaLink="true">https://blog.doracoin.cc/posts/2022/2022-10-20-vue-router%E4%BD%BF%E7%94%A8/</guid><pubDate>Thu, 20 Oct 2022 10:59:47 GMT</pubDate><content:encoded>&lt;p&gt;一些常用方法
&amp;lt;!--more--&amp;gt;&lt;/p&gt;
&lt;h3&gt;vue 关闭当前tab 跳转到上一路由&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;// 关闭当前tabs
this.$store.dispatch(&quot;tagsView/delView&quot;, this.$route);
// 跳转指定路由
this.$router.replace({ path: &apos;/education/manage&apos; });
// 或者返回上一个页面
this.$router.back();
// 还可以指定前 n 个页面
this.$router.go(-2);
&lt;/code&gt;&lt;/pre&gt;
</content:encoded></item><item><title>Vue.js学习笔记</title><link>https://blog.doracoin.cc/posts/2022/2022-10-19-vue-js%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/</link><guid isPermaLink="true">https://blog.doracoin.cc/posts/2022/2022-10-19-vue-js%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/</guid><pubDate>Wed, 19 Oct 2022 14:49:02 GMT</pubDate><content:encoded>&lt;p&gt;Web 全沾工程师的旅途&amp;lt;!--more--&amp;gt;&lt;/p&gt;
&lt;h2&gt;一、官网&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;Vue (发音为 /vjuː/，类似 view) 是一款用于构建用户界面的 JavaScript 框架。它基于标准 HTML、CSS 和 JavaScript 构建，并提供了一套声明式的、组件化的编程模型，帮助你高效地开发用户界面。无论是简单还是复杂的界面，Vue 都可以胜任。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;vuejs.org&lt;/em&gt;&lt;/strong&gt; &amp;lt;cite&amp;gt;&lt;a href=&quot;https://cn.vuejs.org/guide/introduction.html#what-is-vue&quot;&gt;What is Vue?&lt;/a&gt;&amp;lt;/cite&amp;gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;Vite（法语意为 &quot;快速&quot;，发音 /vit/，发音同 &quot;veet&quot;）是一种构建工具，旨在为现代 Web 项目提供更快、更精简的开发体验。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;vitejs.dev&lt;/em&gt;&lt;/strong&gt; &amp;lt;cite&amp;gt;&lt;a href=&quot;https://vitejs.dev/guide/#overview&quot;&gt;What is Vite?&lt;/a&gt;&amp;lt;/cite&amp;gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;官网：&lt;a href=&quot;https://cn.vuejs.org/&quot;&gt;https://cn.vuejs.org/&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;官方手册-Vue3：&lt;a href=&quot;https://cn.vuejs.org/guide/introduction.html&quot;&gt;https://cn.vuejs.org/guide/introduction.html&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;官方手册-Vue2：&lt;a href=&quot;https://v2.cn.vuejs.org/v2/guide/&quot;&gt;https://v2.cn.vuejs.org/v2/guide/&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;官方手册-Vue2 迁移到 Vue3：&lt;a href=&quot;https://v3-migration.vuejs.org/&quot;&gt;https://v3-migration.vuejs.org/&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;组合式 API 常见问答(Vue3 &amp;lt;script setup&amp;gt;)：&lt;a href=&quot;https://cn.vuejs.org/guide/extras/composition-api-faq.html&quot;&gt;https://cn.vuejs.org/guide/extras/composition-api-faq.html&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;ElementUI 安装：&lt;a href=&quot;https://element.eleme.cn/#/zh-CN/component/quickstart&quot;&gt;https://element.eleme.cn/#/zh-CN/component/quickstart&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;ElementUI 组件(基于 Vue2.0)：&lt;a href=&quot;https://element.eleme.cn/#/zh-CN/component/button&quot;&gt;https://element.eleme.cn/#/zh-CN/component/button&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;ElementUI 组件(基于 Vue3.0)：&lt;a href=&quot;https://element-plus.org/zh-CN/component/button.html&quot;&gt;https://element-plus.org/zh-CN/component/button.html&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;从 Element2.0 迁移：&lt;a href=&quot;https://element-plus.org/zh-CN/guide/migration.html&quot;&gt;https://element-plus.org/zh-CN/guide/migration.html&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;1.1 Vue2 和 Vue3 版本差异比较&lt;/h3&gt;
&lt;p&gt;&amp;lt;div class=&quot;center-table&quot;&amp;gt;&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;特性&lt;/th&gt;
&lt;th&gt;Vue2&lt;/th&gt;
&lt;th&gt;Vue3&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;构建工具&lt;/td&gt;
&lt;td&gt;webpack&lt;/td&gt;
&lt;td&gt;Vite&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;IE11 支持&lt;/td&gt;
&lt;td&gt;√&lt;/td&gt;
&lt;td&gt;×&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&amp;lt;/div&amp;gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;h2&gt;二、创建一个 Vue 项目&lt;/h2&gt;
&lt;p&gt;参考链接：&lt;a href=&quot;https://blog.csdn.net/qq_41579104/article/details/121553469&quot;&gt;Vue2 和 Vue3 共存方式&lt;/a&gt;
参考链接：&lt;a href=&quot;https://juejin.cn/post/7057325585705467918&quot;&gt;Vue3.0 知识点&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;2.1 脚手架工具说明&lt;/h3&gt;
&lt;p&gt;Vue2 项目创建脚手架请使用：&lt;a href=&quot;https://www.npmjs.com/package/vue-cli&quot;&gt;&lt;code&gt;npm i vue-cli@2.9.6&lt;/code&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Vue3 项目创建脚手架请使用：&lt;a href=&quot;https://www.npmjs.com/package/@vue/cli&quot;&gt;&lt;code&gt;npm i @vue/cli@5.0.8&lt;/code&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;但是，2022 年了，&lt;code&gt;vue-cli&lt;/code&gt;在 npm 仓库中已经被标识为：&lt;code&gt;deprecated&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;./2022-10-19-Vue-js%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/Screenshot-2022-10-31-15-43-32.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;然后跟随引导尝试使用 &lt;code&gt;@vue/cli&lt;/code&gt; ，又发现它的&lt;a href=&quot;https://cli.vuejs.org/zh/guide/&quot;&gt;官网手册&lt;/a&gt;标注：&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;./2022-10-19-Vue-js%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/Screenshot-2022-10-31-15-49-10.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;所以此处记录的两种安装方式已经成为历史，不再推荐使用。&lt;/p&gt;
&lt;p&gt;最新的创建方式应该使用&lt;a href=&quot;https://github.com/vuejs/create-vue&quot;&gt;官方的脚手架工具：&lt;code&gt;create-vue&lt;/code&gt;&lt;/a&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# translate from https://github.com/vuejs/create-vue/blob/main/README.md
# 创建一个 Vue 3 项目:
npm create vue@3

# 或者，如果你需要支持 IE11，你可以创建一个 Vue 2 项目:
npm create vue@2

# 请注意，版本号（@3 或 @2）不得省略，否则 npm 可能会解析为包的缓存和过时版本。
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;之所以在文章中记录下来这件事是因为：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;仍然有许多项目或开源项目还在使用 Vue2 没有迁移到 Vue3&lt;/li&gt;
&lt;li&gt;工作中有许多脚手架项目(指需求业务上的脚手架)已经基于 Vue2 封装的很成熟了，属于拿来改改就能交工的项目，迁移到 Vue3 的精力、维护成本较高。&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;h3&gt;2.2 Vue2.0&lt;/h3&gt;
&lt;h4&gt;▼ 2.2.1 &lt;code&gt;create-vue&lt;/code&gt; 创建 Vue 2 项目 (推荐)&lt;/h4&gt;
&lt;p&gt;执行命令：&lt;code&gt;npm create vue@2&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;这是文章记录时官方最新的脚手架工具，推荐使用。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;./2022-10-19-Vue-js%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/create-vue-2-demo.jpg&quot; alt=&quot;使用 create-vue 创建 Vue 2 项目&quot; /&gt;&lt;/p&gt;
&lt;h4&gt;▼ 2.2.2 &lt;code&gt;vue-cli@2.9.6&lt;/code&gt; 创建 Vue 2 项目&lt;/h4&gt;
&lt;p&gt;执行命令：&lt;code&gt;vue2 init webpack pro&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;这是 Vue 2.0 时期最早的脚手架工具。其中 &lt;code&gt;vue2&lt;/code&gt; 命令来自于本地安装 &lt;code&gt;vue-cli@2.9.6&lt;/code&gt; 之后，手动将命令行文件更名为 &lt;code&gt;vue2&lt;/code&gt; 并添加到系统环境变量中得到的。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;./2022-10-19-Vue-js%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/create-vue-webpack-demo.png&quot; alt=&quot;使用  创建 Vue 2 项目&quot; /&gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;h3&gt;2.3 Vue3.0&lt;/h3&gt;
&lt;h4&gt;▼ 2.3.1 &lt;code&gt;create-vue&lt;/code&gt; 创建 Vue 3 项目 (推荐)&lt;/h4&gt;
&lt;p&gt;执行命令：&lt;code&gt;npm create vue@3&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;这是文章记录时官方最新的脚手架工具，推荐使用。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;./2022-10-19-Vue-js%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/create-vue-3-demo.jpg&quot; alt=&quot;使用 create-vue 创建 Vue 3 项目&quot; /&gt;&lt;/p&gt;
&lt;h4&gt;▼ 2.3.2 &lt;code&gt;@vue/cli@5.0.8&lt;/code&gt; 创建 Vue 3 项目&lt;/h4&gt;
&lt;p&gt;执行命令：&lt;code&gt;vue3 create vue3-cli-demo&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;其中 &lt;code&gt;vue3&lt;/code&gt; 命令来自于本地安装 &lt;code&gt;@vue/cli@5.0.8&lt;/code&gt; 之后，手动将命令行文件更名为 &lt;code&gt;vue3&lt;/code&gt; 并添加到系统环境变量中得到的。&lt;/p&gt;
&lt;p&gt;这个命令在创建项目的第一步，也可以选择创建 vue2 的项目；第二步选择默认包管理器：&lt;code&gt;[yarn, npm]&lt;/code&gt;。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;./2022-10-19-Vue-js%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/vue3-create-vue3-demo.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;h3&gt;2.4 各个脚手架出现的时间顺序&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;顺序&lt;/th&gt;
&lt;th&gt;工具&lt;/th&gt;
&lt;th&gt;对应版本&lt;/th&gt;
&lt;th&gt;构建工具&lt;/th&gt;
&lt;th&gt;命令&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;code&gt;vue-cli&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;vue2&lt;/td&gt;
&lt;td&gt;&lt;code&gt;webpack&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;vue init webpack project-name&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;&lt;code&gt;@vue/cli&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;vue2+3&lt;/td&gt;
&lt;td&gt;&lt;code&gt;vue-cli-service&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;vue create project-name&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;&lt;code&gt;create-vue&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;vue2+3&lt;/td&gt;
&lt;td&gt;&lt;code&gt;vite&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;npm create vue@2&lt;/code&gt;&amp;lt;br&amp;gt;&lt;code&gt;npm create vue@3&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;说明：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;交互式命令行,只能创建 vue2,因为此时正处于 vue2 的发展时代&lt;/li&gt;
&lt;li&gt;交互式命令行,第一步可以选择项目创建版本&lt;/li&gt;
&lt;li&gt;交互式命令行,通过命令区分项目创建版本&lt;/li&gt;
&lt;/ol&gt;
&lt;hr /&gt;
&lt;h3&gt;2.5 Vue DevTools &lt;a href=&quot;https://github.com/vuejs/devtools&quot;&gt;Github&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;这是一款浏览器插件形式的工具，依据 &lt;a href=&quot;https://devtools.vuejs.org/guide/installation.html&quot;&gt;Vue DevTools 官方手册&lt;/a&gt; 给出的链接，到你所使用的相应浏览器中下载安装插件即可。&lt;/p&gt;
&lt;p&gt;▽ 以火狐浏览器为例，安装过后的界面如下所示：&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;./2022-10-19-Vue-js%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/vue-dev-tools-screen-shot.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;安装过后，一般会在浏览器的工具栏右上部分的功能区出现一个经典的 Vue 图标。在插件探测到当前网页是 Vue 开发的情况下图标会&quot;亮&quot;起来，否则是灰色的。&lt;/p&gt;
&lt;p&gt;在插件启用的情况下下，打开浏览器的开发者调试工具，会发现在最后多了一个 &lt;code&gt;Vue&lt;/code&gt; 的标签页，在这里就可以进行调试工作了。&lt;/p&gt;
&lt;p&gt;如果没有发现这个标签页，关闭开发者工具，再重新打开一次或多次尝试，我在使用火狐浏览器时遇到了这种情况。&lt;/p&gt;
&lt;hr /&gt;
&lt;h3&gt;Vue 导出 Excel 表格&lt;/h3&gt;
&lt;p&gt;&lt;a href=&quot;https://www.npmjs.com/package/xlsx#array-of-arrays-input&quot;&gt;https://www.npmjs.com/package/xlsx#array-of-arrays-input&lt;/a&gt;
&lt;a href=&quot;https://zhuanlan.zhihu.com/p/338935767&quot;&gt;https://zhuanlan.zhihu.com/p/338935767&lt;/a&gt;
&lt;a href=&quot;https://blog.csdn.net/yhj198927/article/details/124269024&quot;&gt;https://blog.csdn.net/yhj198927/article/details/124269024&lt;/a&gt;
&lt;a href=&quot;https://zhuanlan.zhihu.com/p/95984128&quot;&gt;https://zhuanlan.zhihu.com/p/95984128&lt;/a&gt;
&lt;a href=&quot;https://blog.csdn.net/ningjiebing/article/details/125209319&quot;&gt;https://blog.csdn.net/ningjiebing/article/details/125209319&lt;/a&gt;
&lt;a href=&quot;https://github.com/protobi/js-xlsx#cell-object&quot;&gt;https://github.com/protobi/js-xlsx#cell-object&lt;/a&gt;
&lt;a&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;其他参考文章&lt;/h3&gt;
&lt;p&gt;&lt;a href=&quot;https://blog.csdn.net/yexudengzhidao/article/details/87689960&quot;&gt;Vue-router 中 hash 模式和 history 模式的区别&lt;/a&gt;
&lt;a href=&quot;https://blog.csdn.net/qq_35310623/article/details/105807176&quot;&gt;Vue3 创建项目&lt;/a&gt;
&lt;a href=&quot;https://blog.csdn.net/weixin_42224055/article/details/118018220&quot;&gt;确定有效 已声明“XXX”，但从未读取其值，vscode 如何关闭 ts 报错(xxx is declared but its value is never read.)&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;三、CDN 引入方式开发&lt;/h2&gt;
&lt;h3&gt;3.1 通过 CDN 引入的&lt;code&gt;elementUi&lt;/code&gt;、&lt;code&gt;vue&lt;/code&gt; —— 如何使用其内部相关方法&lt;/h3&gt;
&lt;p&gt;本节内容节选自：https://blog.csdn.net/yehaocheng520/article/details/121137650&lt;/p&gt;
&lt;p&gt;有些开发场景是并不是基于 Vue 脚手架创建的项目结构进行开发的，并且还是需要使用到&lt;code&gt;elementui&lt;/code&gt;的提示信息，而非 window.alert()的提示信息。&lt;/p&gt;
&lt;h4&gt;在 js 文件中如何使用&lt;code&gt;elementUI&lt;/code&gt;中的方法：&lt;/h4&gt;
&lt;p&gt;我们先来看下&lt;code&gt;elementUI&lt;/code&gt;中的 js 的源码：&lt;/p&gt;
&lt;p&gt;elementUI 中的 js 的线上地址 (点击查看)：https://unpkg.com/element-ui/lib/index.js&lt;/p&gt;
&lt;p&gt;打开这个线上地址，看到满屏的 vue 的时候，就一定要清楚：&lt;strong&gt;elementUI 是跟 vue 一起使用的，而且引入&lt;code&gt;elementUI&lt;/code&gt;一定要是在&lt;code&gt;vue&lt;/code&gt;引入之后才可以。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;而且代码开头处，有 &lt;code&gt;define(&quot;ELEMENT&quot;&lt;/code&gt; 和 &lt;code&gt;exports.ELEMENT&lt;/code&gt;，找不到可以&lt;code&gt;Ctrl+F&lt;/code&gt;搜索查看。这个其实就是 element 的集合，所有使用的组件方法都可以直接通过&lt;code&gt;ELEMENT&lt;/code&gt;去调用。&lt;/p&gt;
&lt;h4&gt;下面汇总一下使用方法：&lt;/h4&gt;
&lt;ol&gt;
&lt;li&gt;首先要引入 vue.js&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;未压缩版本&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;script src=&quot;https://cdn.jsdelivr.net/npm/vue@2.7.14/dist/vue.js&quot;&amp;gt;&amp;lt;/script&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;minify 版本：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;script src=&quot;https://cdn.jsdelivr.net/npm/vue@2.7.14&quot;&amp;gt;&amp;lt;/script&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;ol&gt;
&lt;li&gt;引入 elementUI 的 css 和 js 文件&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;!-- 引入样式 --&amp;gt;
&amp;lt;link rel=&quot;stylesheet&quot; href=&quot;https://unpkg.com/element-ui/lib/theme-chalk/index.css&quot; /&amp;gt;
&amp;lt;!-- 引入组件库 --&amp;gt;
&amp;lt;script src=&quot;https://unpkg.com/element-ui/lib/index.js&quot;&amp;gt;&amp;lt;/script&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;需要在 body 闭合标签之前引入封装好的函数文件才可以生效，也就是为了能够在所有的标签渲染完成后再使用，这点要注意。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;通过 cdn 引入的 elementUI，在使用 message.error 等方法时，需要通过下面的方式来调用：&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;&lt;code&gt;ELEMENT.Message.error(&apos;错误&apos;);
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;其他方法同理&lt;/p&gt;
&lt;h2&gt;四、查漏补缺&lt;/h2&gt;
&lt;h3&gt;4.1 Vue3 开发时的注意事项&lt;/h3&gt;
&lt;h4&gt;· 语法部分&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;如下数据类型等引用，必须要确保在&lt;code&gt;&amp;lt;script&amp;gt;&lt;/code&gt; 标签上加上&lt;code&gt;lang=&quot;ts&quot;&lt;/code&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;script lang=&quot;ts&quot;&amp;gt;
export interface Dept {
  id: number;
  value: number;
}
function handleDeptSelect(v1: string | null, option: Dept) {
  console.log(`${v1}, ${option}`);
}
...
&amp;lt;/script&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;想使用 Vue3 的最新写法 (就是不使用原来的&lt;code&gt;export default { }&lt;/code&gt;) 写法，请记得要在 &lt;code&gt;&amp;lt;script&amp;gt;&lt;/code&gt; 标签中，加上 &lt;code&gt;setup&lt;/code&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;script lang=&quot;ts&quot; setup&amp;gt;
&amp;lt;/script&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;/ul&gt;
</content:encoded></item><item><title>用零宽度字符水印</title><link>https://blog.doracoin.cc/posts/2022/2022-09-22-%E7%94%A8%E9%9B%B6%E5%AE%BD%E5%BA%A6%E5%AD%97%E7%AC%A6%E6%B0%B4%E5%8D%B0/</link><guid isPermaLink="true">https://blog.doracoin.cc/posts/2022/2022-09-22-%E7%94%A8%E9%9B%B6%E5%AE%BD%E5%BA%A6%E5%AD%97%E7%AC%A6%E6%B0%B4%E5%8D%B0/</guid><pubDate>Thu, 22 Sep 2022 13:31:41 GMT</pubDate><content:encoded>&lt;p&gt;可以尝试用来给博客内容加水印&lt;/p&gt;
&lt;p&gt;&amp;lt;!--more--&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;link rel=&quot;stylesheet&quot; href=&quot;https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css&quot;&amp;gt;
&amp;lt;script src=&quot;/js/ZeroPad.js&quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;&amp;lt;div class=&quot;container&quot;&amp;gt;
&amp;lt;div class=&quot;header&quot;&amp;gt;
&amp;lt;h1&amp;gt;&amp;lt;i class=&quot;fas fa-lock&quot;&amp;gt;&amp;lt;/i&amp;gt; 文本加密/解密工具&amp;lt;/h1&amp;gt;
&amp;lt;p&amp;gt;隐藏或显示文本中的特定内容&amp;lt;/p&amp;gt;
&amp;lt;/div&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;!-- 原文部分 --&amp;gt;
&amp;lt;div class=&quot;section&quot;&amp;gt;
&amp;lt;div class=&quot;section-title&quot;&amp;gt;
&amp;lt;i class=&quot;fas fa-file-alt&quot;&amp;gt;&amp;lt;/i&amp;gt; 原文
&amp;lt;/div&amp;gt;
&amp;lt;div class=&quot;textarea-container&quot;&amp;gt;
&amp;lt;textarea id=&quot;clear&quot; placeholder=&quot;在这里输入您想要处理的原文内容...&quot;&amp;gt;&amp;lt;/textarea&amp;gt;
&amp;lt;/div&amp;gt;
&amp;lt;div class=&quot;char-counter&quot;&amp;gt;
&amp;lt;span id=&quot;clear-counter&quot;&amp;gt;0&amp;lt;/span&amp;gt; 字符
&amp;lt;/div&amp;gt;
&amp;lt;/div&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;!-- 左右布局部分 --&amp;gt;
&amp;lt;div class=&quot;dual-columns&quot;&amp;gt;
&amp;lt;!-- 左侧：要隐藏的内容 --&amp;gt;
&amp;lt;div class=&quot;left-column&quot;&amp;gt;
&amp;lt;div class=&quot;column-header&quot;&amp;gt;
&amp;lt;i class=&quot;fas fa-eye-slash&quot;&amp;gt;&amp;lt;/i&amp;gt; 要隐藏的内容
&amp;lt;/div&amp;gt;
&amp;lt;div class=&quot;textarea-container&quot;&amp;gt;
&amp;lt;textarea id=&quot;hidden&quot; placeholder=&quot;输入您想要隐藏的文字内容...&quot;&amp;gt;&amp;lt;/textarea&amp;gt;
&amp;lt;/div&amp;gt;
&amp;lt;div class=&quot;char-counter&quot;&amp;gt;
&amp;lt;span id=&quot;hidden-counter&quot;&amp;gt;0&amp;lt;/span&amp;gt; 字符
&amp;lt;/div&amp;gt;
&amp;lt;/div&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;!-- 中间：控制按钮 --&amp;gt;
&amp;lt;div class=&quot;center-column&quot;&amp;gt;
&amp;lt;div class=&quot;control-section&quot;&amp;gt;
&amp;lt;button class=&quot;btn btn-primary&quot; id=&quot;doHide&quot;&amp;gt;
&amp;lt;i class=&quot;fas fa-lock&quot;&amp;gt;&amp;lt;/i&amp;gt; 加密
&amp;lt;/button&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;div class=&quot;swap-icon&quot;&amp;gt;
&amp;lt;i class=&quot;fas fa-exchange-alt&quot;&amp;gt;&amp;lt;/i&amp;gt;
&amp;lt;/div&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;button class=&quot;btn btn-success&quot; id=&quot;doShow&quot;&amp;gt;
&amp;lt;i class=&quot;fas fa-unlock&quot;&amp;gt;&amp;lt;/i&amp;gt; 解密
&amp;lt;/button&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;/div&amp;gt;
&amp;lt;/div&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;!-- 右侧：加密后内容 --&amp;gt;
&amp;lt;div class=&quot;right-column&quot;&amp;gt;
&amp;lt;div class=&quot;column-header&quot;&amp;gt;
&amp;lt;i class=&quot;fas fa-key&quot;&amp;gt;&amp;lt;/i&amp;gt; 加密后内容
&amp;lt;/div&amp;gt;
&amp;lt;div class=&quot;textarea-container&quot;&amp;gt;
&amp;lt;textarea id=&quot;mixed&quot; placeholder=&quot;加密或解密后的内容将显示在这里...&quot;&amp;gt;&amp;lt;/textarea&amp;gt;
&amp;lt;/div&amp;gt;
&amp;lt;div class=&quot;char-counter&quot;&amp;gt;
&amp;lt;span id=&quot;mixed-counter&quot;&amp;gt;0&amp;lt;/span&amp;gt; 字符
&amp;lt;/div&amp;gt;
&amp;lt;/div&amp;gt;
&amp;lt;/div&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;!-- 使用说明 --&amp;gt;
&amp;lt;div class=&quot;footer&quot;&amp;gt;
&amp;lt;p&amp;gt;&amp;lt;i class=&quot;fas fa-info-circle&quot;&amp;gt;&amp;lt;/i&amp;gt; 使用说明：输入原文和要隐藏的内容，点击&quot;加密&quot;将隐藏内容插入原文，点击&quot;解密&quot;将隐藏内容从原文中提取出来。&amp;lt;/p&amp;gt;
&amp;lt;/div&amp;gt;
&amp;lt;/div&amp;gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;h3&gt;附录&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;零宽度字符水印隐藏技术：https://www.tr0y.wang/2018/04/20/ZeroWidthSpacesHiden/index.html&lt;/li&gt;
&lt;li&gt;Python实现版：https://github.com/Macr0phag3/Zero-Width-Spaces-Hiden&lt;/li&gt;
&lt;li&gt;Freebuf原文：https://www.freebuf.com/articles/web/167903.html&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;lt;style type=&quot;text/css&quot;&amp;gt;
.markdown-body h3 {
text-align: left;
margin-top: 0;
}
.markdown-body .fa-exchange-alt {
transform: rotate(90deg);
}&lt;/p&gt;
&lt;p&gt;/**************** */
.markdown-body .container {
background-color: white;
border-radius: 12px;
box-shadow: 0 5px 20px rgba(0, 0, 0, 0.08);
padding: 30px;
margin-bottom: 20px;
}&lt;/p&gt;
&lt;p&gt;.markdown-body .header {
text-align: center;
margin-bottom: 30px;
padding-bottom: 20px;
border-bottom: 1px solid #eaeaea;
}&lt;/p&gt;
&lt;p&gt;.markdown-body .header h1 {
color: #2c3e50;
font-size: 1.8rem;
margin-bottom: 10px;
}&lt;/p&gt;
&lt;p&gt;.markdown-body .header p {
color: #7f8c8d;
font-size: 1rem;
}&lt;/p&gt;
&lt;p&gt;.markdown-body .section {
margin-bottom: 25px;
}&lt;/p&gt;
&lt;p&gt;.markdown-body .section-title {
display: flex;
align-items: center;
margin-bottom: 15px;
color: #2c3e50;
font-size: 1.2rem;
}&lt;/p&gt;
&lt;p&gt;.markdown-body .section-title i {
margin-right: 10px;
color: #3498db;
}&lt;/p&gt;
&lt;p&gt;.markdown-body .textarea-container {
position: relative;
margin-bottom: 5px;
}&lt;/p&gt;
&lt;p&gt;.markdown-body textarea {
width: 100%;
padding: 15px;
border: 1px solid #ddd;
border-radius: 8px;
font-size: 1rem;
line-height: 1.5;
resize: vertical;
transition: all 0.3s;
min-height: 140px;
background-color: #fafafa;
}&lt;/p&gt;
&lt;p&gt;.markdown-body textarea:focus {
outline: none;
border-color: #3498db;
box-shadow: 0 0 0 2px rgba(52, 152, 219, 0.2);
background-color: white;
}&lt;/p&gt;
&lt;p&gt;.markdown-body textarea::placeholder {
color: #95a5a6;
}&lt;/p&gt;
&lt;p&gt;.markdown-body .char-counter {
text-align: right;
font-size: 0.85rem;
color: #95a5a6;
margin-top: 5px;
margin-bottom: 10px;
}&lt;/p&gt;
&lt;p&gt;/* 左右布局样式 */
.markdown-body .dual-columns {
display: flex;
gap: 30px;
margin-top: 30px;
}&lt;/p&gt;
&lt;p&gt;.markdown-body .left-column, .right-column {
flex: 1;
}&lt;/p&gt;
&lt;p&gt;.markdown-body .center-column {
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
width: 180px;
padding: 0 10px;
}&lt;/p&gt;
&lt;p&gt;.markdown-body .control-section {
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
height: 100%;
gap: 25px;
}&lt;/p&gt;
&lt;p&gt;.markdown-body .btn {
padding: 14px 24px;
border: none;
border-radius: 8px;
font-size: 1rem;
font-weight: 600;
cursor: pointer;
transition: all 0.3s;
display: flex;
align-items: center;
justify-content: center;
width: 160px;
}&lt;/p&gt;
&lt;p&gt;.markdown-body .btn i {
margin-right: 8px;
}&lt;/p&gt;
&lt;p&gt;.markdown-body .btn-primary {
background-color: #3498db;
color: white;
}&lt;/p&gt;
&lt;p&gt;.markdown-body .btn-primary:hover {
background-color: #2980b9;
transform: translateY(-2px);
box-shadow: 0 4px 8px rgba(52, 152, 219, 0.3);
}&lt;/p&gt;
&lt;p&gt;.markdown-body .btn-success {
background-color: #2ecc71;
color: white;
}&lt;/p&gt;
&lt;p&gt;.markdown-body .btn-success:hover {
background-color: #27ae60;
transform: translateY(-2px);
box-shadow: 0 4px 8px rgba(46, 204, 113, 0.3);
}&lt;/p&gt;
&lt;p&gt;.markdown-body .swap-icon {
font-size: 1.8rem;
color: #7f8c8d;
margin: 10px 0;
transform: rotate(90deg);
}&lt;/p&gt;
&lt;p&gt;.markdown-body .vertical-divider {
height: 1px;
width: 80%;
background-color: #e0e0e0;
margin: 15px 0;
}&lt;/p&gt;
&lt;p&gt;.markdown-body .column-header {
display: flex;
align-items: center;
justify-content: center;
margin-bottom: 15px;
color: #2c3e50;
font-size: 1.2rem;
}&lt;/p&gt;
&lt;p&gt;.markdown-body .column-header i {
margin-right: 10px;
}&lt;/p&gt;
&lt;p&gt;.markdown-body .footer {
text-align: center;
margin-top: 40px;
padding-top: 20px;
border-top: 1px solid #eaeaea;
color: #95a5a6;
font-size: 0.9rem;
}
&amp;lt;/style&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;script type=&quot;text/javascript&quot;&amp;gt;&lt;/p&gt;
&lt;p&gt;document.getElementById(&apos;doHide&apos;).addEventListener(&apos;click&apos;, async function() {
const clearTxt = document.getElementById(&apos;clear&apos;).value;
const hiddenTxt = document.getElementById(&apos;hidden&apos;).value;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;document.getElementById(&quot;mixed&quot;).value = hideText(clearTxt, hiddenTxt);
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;});&lt;/p&gt;
&lt;p&gt;document.getElementById(&apos;doShow&apos;).addEventListener(&apos;click&apos;, async function() {
const mixedTxt = document.getElementById(&apos;mixed&apos;).value;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;document.getElementById(&quot;hidden&quot;).value = showHiddenText(mixedTxt);
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;});
&amp;lt;/script&amp;gt;&lt;/p&gt;
</content:encoded></item><item><title>提瓦特大陆游览指南</title><link>https://blog.doracoin.cc/posts/2022/2022-09-16-%E6%8F%90%E7%93%A6%E7%89%B9%E5%A4%A7%E9%99%86%E6%B8%B8%E8%A7%88%E6%8C%87%E5%8D%97/</link><guid isPermaLink="true">https://blog.doracoin.cc/posts/2022/2022-09-16-%E6%8F%90%E7%93%A6%E7%89%B9%E5%A4%A7%E9%99%86%E6%B8%B8%E8%A7%88%E6%8C%87%E5%8D%97/</guid><pubDate>Fri, 16 Sep 2022 14:23:59 GMT</pubDate><content:encoded>&lt;p&gt;派蒙，最好的伙伴！
&amp;lt;!--more--&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;meting-js
server=&quot;netease&quot;
type=&quot;song&quot;
id=&quot;2059757870&quot;&amp;gt;
&amp;lt;/meting-js&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;div style=&quot;text-align:center;font-size:1.1rem;margin-top:0.8rem;margin-bottom:0.8rem;&quot;&amp;gt;
&amp;lt;img class=&quot;divider&quot; src=&quot;/images/mihoyo-divider.png&quot;/&amp;gt;
&amp;lt;/div&amp;gt;&lt;/p&gt;
&lt;h3&gt;✧每日✧&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;[每日] 4个委托、探索派遣&lt;/li&gt;
&lt;li&gt;[每日] 收集10个矿产：野外收集，点位很多，参考攻略：https://www.bilibili.com/video/BV1f34y187ud/&lt;/li&gt;
&lt;li&gt;[每日] 壶中洞天收宝钱、角色好感经验、买加速瓶、收植物果实、云游仙灵商店&lt;/li&gt;
&lt;li&gt;[每日] 消耗160体力：
&lt;ul&gt;
&lt;li&gt;刷地脉之花&lt;/li&gt;
&lt;li&gt;元素类世界boss (1.无相之岩  2.爆炎树  3.纯水精灵)&lt;/li&gt;
&lt;li&gt;武器突破材料：&lt;a href=&quot;#%E2%9C%A7%E4%B8%80%E8%A7%88%E8%A1%A8%E2%9C%A7&quot;&gt;✧一览表✧&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;角色天赋技能突破材料：&lt;a href=&quot;#%E2%9C%A7%E4%B8%80%E8%A7%88%E8%A1%A8%E2%9C%A7&quot;&gt;✧一览表✧&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;如果到了晚上还没有时间上线刷完当日的体力 &lt;a href=&quot;https://bbs.mihoyo.com/ys/obc/content/3805/detail&quot;&gt;原粹树脂&lt;/a&gt;(x160)，可以到合成台合成 &lt;a href=&quot;https://bbs.mihoyo.com/ys/obc/content/1209/detail&quot;&gt;浓缩树脂&lt;/a&gt;(晶核x1+脆弱树脂x40)，每天最多4个，需璃月声望到达3级获得该图纸。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&amp;lt;details&amp;gt;
&amp;lt;summary&amp;gt;&amp;lt;mark&amp;gt;每日材料表&amp;lt;/mark&amp;gt;&amp;lt;/summary&amp;gt;&lt;/p&gt;
&lt;p&gt;{% gi 3 3 %}
&lt;img src=&quot;https://img.doracoin.cc/images/2023/07/17/057e35886e01bd6ceb462c6ff49ef17f.jpg&quot; alt=&quot;周一周四&quot; /&gt;
&lt;img src=&quot;https://img.doracoin.cc/images/2023/07/17/be8016d7bfdfc2933c7d4aeeead6608c.jpg&quot; alt=&quot;周二周五&quot; /&gt;
&lt;img src=&quot;https://img.doracoin.cc/images/2023/07/17/96dd6619f9646d7477d439fda5788a86.jpg&quot; alt=&quot;周三周六&quot; /&gt;
{% endgi %}&lt;/p&gt;
&lt;p&gt;&amp;lt;/details&amp;gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;&amp;lt;div style=&quot;text-align:center;font-size:1.1rem;margin-top:0.8rem;margin-bottom:0.8rem;&quot;&amp;gt;
&amp;lt;img class=&quot;divider&quot; src=&quot;/images/mihoyo-divider.png&quot;/&amp;gt;
&amp;lt;/div&amp;gt;&lt;/p&gt;
&lt;h3&gt;✧每周✧&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;[每周] (纪行任务) 20个委托锻造：用水晶块造武器精炼石比较划算，&lt;/li&gt;
&lt;li&gt;[每周] (纪行任务) 20个料理制作&lt;/li&gt;
&lt;li&gt;[每周] (纪行任务) 城镇声望任务：&lt;strong&gt;①&lt;/strong&gt; 3次狩猎讨伐，声望已经刷满的话选三星难度打的快;&amp;lt;br&amp;gt; &lt;strong&gt;②&lt;/strong&gt; 3次居民请求;&lt;/li&gt;
&lt;li&gt;[每周] (纪行任务) 3次周本：黄金屋(公子)、北风之狼、风魔龙&lt;/li&gt;
&lt;li&gt;[每周] (纪行任务) 10份尘歌壶摆设&lt;/li&gt;
&lt;li&gt;[每周] (纪行任务) 每周六好友 &lt;a href=&quot;#%E2%9C%A7%E5%91%A8%E6%B8%B8%E5%A3%B6%E7%81%B5%E5%88%B7%E6%96%B0%E8%AF%B4%E6%98%8E%E2%9C%A7&quot;&gt;周游壶灵&lt;/a&gt; 处购买两个商品&lt;/li&gt;
&lt;li&gt;[每周] (纪行任务) 15次秘境挑战&lt;/li&gt;
&lt;/ol&gt;
&lt;hr /&gt;
&lt;p&gt;&amp;lt;div style=&quot;text-align:center;font-size:1.1rem;margin-top:0.8rem;margin-bottom:0.8rem;&quot;&amp;gt;
&amp;lt;img class=&quot;divider&quot; src=&quot;/images/mihoyo-divider.png&quot;/&amp;gt;
&amp;lt;/div&amp;gt;&lt;/p&gt;
&lt;h3&gt;✧纪行任务思路✧&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;每周上限经验值：&lt;code&gt;10000&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;每级经验值：&lt;code&gt;900&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;最高等级：&lt;code&gt;50&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;如果每周都做满 &lt;code&gt;10000&lt;/code&gt; 经验值的话，&lt;strong&gt;一个版本周期是四周&lt;/strong&gt; 零几天：&lt;/p&gt;
&lt;p&gt;&lt;code&gt;40000 ∻ 900 = 44.4 级&lt;/code&gt;
&lt;code&gt;每日任务一周 4515 + 每周任务简单 5445 = 9960 ≈ 11 级&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;一个纪行版本余下的几天时间随便做点活动任务就够50级了。&lt;/p&gt;
&lt;p&gt;版本活动任务一般是一个&lt;code&gt;1500&lt;/code&gt;经验值，这中间如果有来不及做的每日任务或每周任务，靠活动任务也可以凑满每周 &lt;code&gt;10000&lt;/code&gt; 上限的经验值。&lt;/p&gt;
&lt;p&gt;活动任务给的经验值持续到活动结束日期，可以在需要的时候领取。比如：这周玩游戏的时间不够，每日+每周任务凑不到&lt;code&gt;10000&lt;/code&gt;的经验值上限了，这个时候就可以领取活动任务的经验值了。&lt;/p&gt;
&lt;p&gt;具体的经验数值参考下面的表格。&lt;/p&gt;
&lt;p&gt;&amp;lt;details&amp;gt;
&amp;lt;summary&amp;gt;&amp;lt;mark&amp;gt;点击展开纪行经验表格&amp;lt;/mark&amp;gt;&amp;lt;/summary&amp;gt;
&amp;lt;div class=&quot;center&quot;&amp;gt;&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;每日&lt;/th&gt;
&lt;th&gt;经验值&lt;/th&gt;
&lt;th&gt;备注&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;150点树脂体力&lt;/td&gt;
&lt;td&gt;225&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;登录游戏&lt;/td&gt;
&lt;td&gt;120&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;每日委托&lt;/td&gt;
&lt;td&gt;150&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;收集矿产&lt;/td&gt;
&lt;td&gt;150&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;合计&lt;/td&gt;
&lt;td&gt;645&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;一周总计&lt;/td&gt;
&lt;td&gt;645x7 = 4515&lt;/td&gt;
&lt;td&gt;≈ 5级&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;四周总计&lt;/td&gt;
&lt;td&gt;18060&lt;/td&gt;
&lt;td&gt;≈ 20级&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;---&lt;/td&gt;
&lt;td&gt;---&lt;/td&gt;
&lt;td&gt;---&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;每周 - 简单任务&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;经验值&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;备注&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;洞天宝钱1000份&lt;/td&gt;
&lt;td&gt;675&lt;/td&gt;
&lt;td&gt;周六、周日两天不收取积累到周一再领取，一天就可以完成这个任务&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;20次委托锻造&lt;/td&gt;
&lt;td&gt;360&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;20个料理制作&lt;/td&gt;
&lt;td&gt;360&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3次狩猎讨伐&lt;/td&gt;
&lt;td&gt;450&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3次居民请求&lt;/td&gt;
&lt;td&gt;450&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;『征讨领域』或『奔狼的领主』三次(周副本)&lt;/td&gt;
&lt;td&gt;1350&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;在他人『尘歌壶』周游壶灵处购买两个商品&lt;/td&gt;
&lt;td&gt;450&lt;/td&gt;
&lt;td&gt;每周五壶灵会来，但周六才可以购买，随便找个好友的世界进去&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;制作『尘歌壶』10份摆设&lt;/td&gt;
&lt;td&gt;450&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;累计消耗摩拉50万&lt;/td&gt;
&lt;td&gt;450&lt;/td&gt;
&lt;td&gt;如果恰好有要升级的角色、天赋、武器强化，再加上每个城镇杂货铺物资购买，差不多轻松做完&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;秘境挑战15次&lt;/td&gt;
&lt;td&gt;450&lt;/td&gt;
&lt;td&gt;天赋材料、武器突破材料基本上每天都会刷，每天2~3次就够满足&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;一周总计&lt;/td&gt;
&lt;td&gt;5445&lt;/td&gt;
&lt;td&gt;≈ 6级&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;四周总计&lt;/td&gt;
&lt;td&gt;21780&lt;/td&gt;
&lt;td&gt;≈ 24.2级&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;---&lt;/td&gt;
&lt;td&gt;---&lt;/td&gt;
&lt;td&gt;---&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;每周 - 复杂任务&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;下面这几个比较浪费时间和精力,如果升级的路上顺手就做,不做也足够刷到经验上限&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;地脉花20次&lt;/td&gt;
&lt;td&gt;450&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;击败boss10次&lt;/td&gt;
&lt;td&gt;450&lt;/td&gt;
&lt;td&gt;周本boss和大世界各类元素boss都算&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;累计消耗1200树脂体力&lt;/td&gt;
&lt;td&gt;675&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;一周总计&lt;/td&gt;
&lt;td&gt;1575&lt;/td&gt;
&lt;td&gt;≈ 1.75级&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;四周总计&lt;/td&gt;
&lt;td&gt;6300&lt;/td&gt;
&lt;td&gt;≈ 7级&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;---&lt;/td&gt;
&lt;td&gt;---&lt;/td&gt;
&lt;td&gt;---&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;版本及活动任务&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;深境螺旋12星&lt;/td&gt;
&lt;td&gt;2250&lt;/td&gt;
&lt;td&gt;= 2.5级(一定要等版本更新后再打，每月16号重置)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;50次祈愿&lt;/td&gt;
&lt;td&gt;1500&lt;/td&gt;
&lt;td&gt;≈ 1.6级&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;其他活动任务&lt;/td&gt;
&lt;td&gt;1500&lt;/td&gt;
&lt;td&gt;一个任务1500，每版本活动任务数量不同，持续时间随活动日期结束&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&amp;lt;/div&amp;gt;
&amp;lt;/details&amp;gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;&amp;lt;div style=&quot;text-align:center;font-size:1.1rem;margin-top:0.8rem;margin-bottom:0.8rem;&quot;&amp;gt;
&amp;lt;img class=&quot;divider&quot; src=&quot;/images/mihoyo-divider.png&quot;/&amp;gt;
&amp;lt;/div&amp;gt;&lt;/p&gt;
&lt;h3&gt;✧休闲✧&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;材料速刷攻略集合：B站UP主-Ziv紫薇(id:635041) &lt;a href=&quot;https://space.bilibili.com/635041/channel/collectiondetail?sid=322299&quot;&gt;更多材料速刷路线点这里查看&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ol&gt;
&lt;li&gt;版本活动任务&lt;/li&gt;
&lt;li&gt;采矿攻略视频：https://www.bilibili.com/video/BV1f34y187ud/&lt;/li&gt;
&lt;li&gt;砍树攻略视频：https://www.bilibili.com/video/BV13K4y1d76J/&lt;/li&gt;
&lt;li&gt;圣遗物狗粮：https://www.bilibili.com/video/BV15a411s7zr/&lt;/li&gt;
&lt;li&gt;史莱姆凝液速刷：https://www.bilibili.com/video/BV1GA4y1S77D/&lt;/li&gt;
&lt;li&gt;丘丘人面具速刷：https://www.bilibili.com/video/BV1pY4y1t7uy/&lt;/li&gt;
&lt;li&gt;丘丘人射手：https://www.bilibili.com/video/BV1kF411c7kt/&lt;/li&gt;
&lt;li&gt;龙蜥骨片速刷：https://www.bilibili.com/video/BV1a14y147pU/&lt;/li&gt;
&lt;li&gt;满精鱼叉钓鱼攻略：https://www.bilibili.com/video/BV1CF411T7S4/&lt;/li&gt;
&lt;li&gt;须弥3.0新增五位突破材料商人：https://www.bilibili.com/video/BV1Tg411D7k8/&lt;/li&gt;
&lt;/ol&gt;
&lt;hr /&gt;
&lt;p&gt;&amp;lt;div style=&quot;text-align:center;font-size:1.1rem;margin-top:0.8rem;margin-bottom:0.8rem;&quot;&amp;gt;
&amp;lt;img class=&quot;divider&quot; src=&quot;/images/mihoyo-divider.png&quot;/&amp;gt;
&amp;lt;/div&amp;gt;&lt;/p&gt;
&lt;h3&gt;✧一览表✧&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;角色天赋材料周常一览表(v3.7)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;lt;details&amp;gt;
&amp;lt;summary&amp;gt;&amp;lt;mark&amp;gt;点击展开图片, 点击图片浏览完整大图&amp;lt;/mark&amp;gt;&amp;lt;/summary&amp;gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://act-upload.mihoyo.com/ys-obc/2023/05/22/75833613/8bf86402c707bedb7fa90b42fbe52f06_4206237797659572530.png&quot;&gt;大图链接&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://img.doracoin.cc/images/2023/07/17/5d49d91822df64880c71f43082794271.png&quot; alt=&quot;角色天赋材料周常一览表(v3.7)&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;/details&amp;gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://baike.mihoyo.com/ys/obc/content/1226/detail?visit_device=pc&amp;amp;bbs_presentation_style=no_header&quot;&gt;角色高级天赋材料周常一览表&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;lt;details&amp;gt;
&amp;lt;summary&amp;gt;&amp;lt;mark&amp;gt;点击展开图片, 点击图片浏览完整大图(v3.7)&amp;lt;/mark&amp;gt;&amp;lt;/summary&amp;gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://act-upload.mihoyo.com/ys-obc/2023/05/22/75833613/470d23b3be136b01ed524f2e58407391_6626601737105077840.png&quot;&gt;大图链接&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://img.doracoin.cc/images/2023/07/17/1e788e55718a27937a572ea025cdc863.png&quot; alt=&quot;角色高级天赋材料周常一览表(v3.7)&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;/details&amp;gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://baike.mihoyo.com/ys/obc/content/1226/detail?visit_device=pc&amp;amp;bbs_presentation_style=no_header&quot;&gt;武器突破材料一览表&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;lt;details&amp;gt;
&amp;lt;summary&amp;gt;&amp;lt;mark&amp;gt;点击展开图片, 点击图片浏览完整大图(v3.7)&amp;lt;/mark&amp;gt;&amp;lt;/summary&amp;gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://act-upload.mihoyo.com/ys-obc/2023/05/22/75833613/9ceec4cf2d9ff00745bd0325ad841456_3727982736899826712.png&quot;&gt;大图链接&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://img.doracoin.cc/images/2023/07/17/097ed63fa0e6ae45225362e90062e619.png&quot; alt=&quot;武器突破材料一览表(v3.7)&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;/details&amp;gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;ul&gt;
&lt;li&gt;圣遗物排行榜(v2.6-20220504)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;lt;details&amp;gt;
&amp;lt;summary&amp;gt;&amp;lt;mark&amp;gt;点击展开图片, 点击图片浏览完整大图&amp;lt;/mark&amp;gt;&amp;lt;/summary&amp;gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://img.doracoin.cc/images/2023/07/17/be9ffcbc76b74cdcf1d43a8ae7cad9a1.jpg&quot; alt=&quot;圣遗物排行榜(v2.6-20220504)&quot; title=&quot;vx公众号：提瓦特小助手&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;/details&amp;gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;&amp;lt;div style=&quot;text-align:center;font-size:1.1rem;margin-top:0.8rem;margin-bottom:0.8rem;&quot;&amp;gt;
&amp;lt;img class=&quot;divider&quot; src=&quot;/images/mihoyo-divider.png&quot;/&amp;gt;
&amp;lt;/div&amp;gt;&lt;/p&gt;
&lt;h3&gt;✧其他信息参考✧&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;树脂体力、冒险经验等 &lt;a href=&quot;https://bbs.mihoyo.com/ys/article/27145506&quot;&gt;攻略&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://bbs.mihoyo.com/ys/article/2797367&quot;&gt;圣遗物套装效果分析攻略&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;hr /&gt;
&lt;p&gt;&amp;lt;div style=&quot;text-align:center;font-size:1.1rem;margin-top:0.8rem;margin-bottom:0.8rem;&quot;&amp;gt;
&amp;lt;img class=&quot;divider&quot; src=&quot;/images/mihoyo-divider.png&quot;/&amp;gt;
&amp;lt;/div&amp;gt;&lt;/p&gt;
&lt;h3&gt;✧一图流角色攻略✧&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;来自合集(嗔痴ovo)： &lt;a href=&quot;https://bbs.mihoyo.com/ys/collection/813033&quot;&gt;原神观测枢全角色一图流攻略&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;来自合集(猫冬)：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.miyoushe.com/ys/collection/2319292&quot;&gt;【角色图鉴】火元素&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.miyoushe.com/ys/collection/2319293&quot;&gt;【角色图鉴】水元素&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.miyoushe.com/ys/collection/2319294&quot;&gt;【角色图鉴】冰元素&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.miyoushe.com/ys/collection/2319295&quot;&gt;【角色图鉴】风元素&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.miyoushe.com/ys/collection/2319296&quot;&gt;【角色图鉴】雷元素&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.miyoushe.com/ys/collection/2319298&quot;&gt;【角色图鉴】岩元素&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.miyoushe.com/ys/collection/2319299&quot;&gt;【角色图鉴】草元素&lt;/a&gt;
♕♔♡⚝❀✦✧&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;h4&gt;&lt;a href=&quot;https://bbs.mihoyo.com/ys/obc/content/1290/detail?bbs_presentation_style=no_header&quot;&gt;♕钟离♕&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;&amp;lt;details&amp;gt;
&amp;lt;summary&amp;gt;&amp;lt;mark&amp;gt;点击展开图片, 点击图片浏览完整大图&amp;lt;/mark&amp;gt;&amp;lt;/summary&amp;gt;&lt;/p&gt;
&lt;p&gt;{% gi 2 2 %}&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://img.doracoin.cc/images/2023/07/17/92789c7c697146c741ec0d43b5df8c37.png&quot; alt=&quot;&quot; title=&quot;https://bbs.mihoyo.com/ys/article/21181372&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://img.doracoin.cc/images/2023/07/17/a07b5b4b2a5d37b4ac6ec8ae5c169d81.png&quot; alt=&quot;&quot; title=&quot;https://bbs.mihoyo.com/ys/article/22243681&quot; /&gt;&lt;/p&gt;
&lt;p&gt;{% endgi %}&lt;/p&gt;
&lt;p&gt;&amp;lt;/details&amp;gt;&lt;/p&gt;
&lt;h4&gt;&lt;a href=&quot;https://bbs.mihoyo.com/ys/obc/content/241/detail?bbs_presentation_style=no_header&quot;&gt;♔行秋♔&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;&amp;lt;details&amp;gt;
&amp;lt;summary&amp;gt;&amp;lt;mark&amp;gt;点击展开图片, 点击图片浏览完整大图&amp;lt;/mark&amp;gt;&amp;lt;/summary&amp;gt;&lt;/p&gt;
&lt;p&gt;{% gi 2 2 %}&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://img.doracoin.cc/images/2023/07/17/080639384e0eb7c6eea8ba8b47e03ec5.png&quot; alt=&quot;&quot; title=&quot;https://bbs.mihoyo.com/ys/article/20141438&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://img.doracoin.cc/images/2023/07/17/ebb041dbbba1274ac73aea0f46c97dfe.png&quot; alt=&quot;&quot; title=&quot;https://bbs.mihoyo.com/ys/article/25075041&quot; /&gt;&lt;/p&gt;
&lt;p&gt;{% endgi %}&lt;/p&gt;
&lt;p&gt;&amp;lt;/details&amp;gt;&lt;/p&gt;
&lt;h4&gt;&lt;a href=&quot;https://bbs.mihoyo.com/ys/obc/content/112/detail?bbs_presentation_style=no_header&quot;&gt;♡香菱♡&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;&amp;lt;details&amp;gt;
&amp;lt;summary&amp;gt;&amp;lt;mark&amp;gt;点击展开图片, 点击图片浏览完整大图&amp;lt;/mark&amp;gt;&amp;lt;/summary&amp;gt;&lt;/p&gt;
&lt;p&gt;{% gi 2 2 %}&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://img.doracoin.cc/images/2023/07/17/1f529b656cd176e6e5a1e99b1f345357.png&quot; alt=&quot;&quot; title=&quot;https://bbs.mihoyo.com/ys/article/20230070&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://img.doracoin.cc/images/2023/07/17/63983d237feb20b4f5fc442daa94be60.png&quot; alt=&quot;&quot; title=&quot;https://bbs.mihoyo.com/ys/article/25074981&quot; /&gt;&lt;/p&gt;
&lt;p&gt;{% endgi %}&lt;/p&gt;
&lt;p&gt;&amp;lt;/details&amp;gt;&lt;/p&gt;
&lt;h4&gt;&lt;a href=&quot;https://bbs.mihoyo.com/ys/obc/content/57/detail?bbs_presentation_style=no_header&quot;&gt;♡温迪♡&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;&amp;lt;details&amp;gt;
&amp;lt;summary&amp;gt;&amp;lt;mark&amp;gt;点击展开图片, 点击图片浏览完整大图&amp;lt;/mark&amp;gt;&amp;lt;/summary&amp;gt;&lt;/p&gt;
&lt;p&gt;{% gi 2 2 %}&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://img.doracoin.cc/images/2023/07/17/8c757c14f81050e20da2399952ee7596.png&quot; alt=&quot;&quot; title=&quot;https://bbs.mihoyo.com/ys/article/19488384&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://img.doracoin.cc/images/2023/07/17/ac7574cdd4575451ef07ba1e189aa2e7.png&quot; alt=&quot;&quot; title=&quot;https://bbs.mihoyo.com/ys/article/22243472&quot; /&gt;&lt;/p&gt;
&lt;p&gt;{% endgi %}&lt;/p&gt;
&lt;p&gt;&amp;lt;/details&amp;gt;&lt;/p&gt;
&lt;h4&gt;&lt;a href=&quot;https://bbs.mihoyo.com/ys/obc/content/1627/detail?bbs_presentation_style=no_header&quot;&gt;❀胡桃❀&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;&amp;lt;details&amp;gt;
&amp;lt;summary&amp;gt;&amp;lt;mark&amp;gt;点击展开图片, 点击图片浏览完整大图&amp;lt;/mark&amp;gt;&amp;lt;/summary&amp;gt;&lt;/p&gt;
&lt;p&gt;{% gi 2 2 %}&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://img.doracoin.cc/images/2023/07/17/d0a47b08c14d114f1ebe7c786fd0c0f9.png&quot; alt=&quot;&quot; title=&quot;https://bbs.mihoyo.com/ys/article/21183949&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://img.doracoin.cc/images/2023/07/17/add6a04914bcebee46eae35f87528bdf.png&quot; alt=&quot;&quot; title=&quot;https://bbs.mihoyo.com/ys/article/22238407&quot; /&gt;&lt;/p&gt;
&lt;p&gt;{% endgi %}&lt;/p&gt;
&lt;p&gt;&amp;lt;/details&amp;gt;&lt;/p&gt;
&lt;h4&gt;&lt;a href=&quot;https://bbs.mihoyo.com/ys/obc/content/105/detail?bbs_presentation_style=no_header&quot;&gt;⚝班尼特⚝&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;&amp;lt;details&amp;gt;
&amp;lt;summary&amp;gt;&amp;lt;mark&amp;gt;点击展开图片, 点击图片浏览完整大图&amp;lt;/mark&amp;gt;&amp;lt;/summary&amp;gt;&lt;/p&gt;
&lt;p&gt;{% gi 2 2 %}&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://img.doracoin.cc/images/2023/07/17/9c4b36aec14de5553431604b583c6bdb.png&quot; alt=&quot;&quot; title=&quot;https://bbs.mihoyo.com/ys/article/20068461&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://img.doracoin.cc/images/2023/07/17/d6dca791d868bc5bde9399b9a6e23156.png&quot; alt=&quot;&quot; title=&quot;https://bbs.mihoyo.com/ys/article/25074159&quot; /&gt;&lt;/p&gt;
&lt;p&gt;{% endgi %}&lt;/p&gt;
&lt;p&gt;&amp;lt;/details&amp;gt;&lt;/p&gt;
&lt;h4&gt;&lt;a href=&quot;https://bbs.mihoyo.com/ys/obc/content/1055/detail?bbs_presentation_style=no_header&quot;&gt;✧砂糖✧&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;&amp;lt;details&amp;gt;
&amp;lt;summary&amp;gt;&amp;lt;mark&amp;gt;点击展开图片, 点击图片浏览完整大图&amp;lt;/mark&amp;gt;&amp;lt;/summary&amp;gt;&lt;/p&gt;
&lt;p&gt;{% gi 2 2 %}&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://img.doracoin.cc/images/2023/07/17/1ac033b0f9cac3f36ee95b5352efdc68.png&quot; alt=&quot;&quot; title=&quot;https://bbs.mihoyo.com/ys/article/20857458&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://img.doracoin.cc/images/2023/07/17/39da337699b1a433c8c76d30e762d1f8.png&quot; alt=&quot;&quot; title=&quot;https://bbs.mihoyo.com/ys/article/25074877&quot; /&gt;&lt;/p&gt;
&lt;p&gt;{% endgi %}&lt;/p&gt;
&lt;p&gt;&amp;lt;/details&amp;gt;&lt;/p&gt;
&lt;h4&gt;&lt;a href=&quot;https://bbs.mihoyo.com/ys/obc/content/1795/detail?bbs_presentation_style=no_header&quot;&gt;⚝烟绯⚝&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;&amp;lt;details&amp;gt;
&amp;lt;summary&amp;gt;&amp;lt;mark&amp;gt;点击展开图片, 点击图片浏览完整大图&amp;lt;/mark&amp;gt;&amp;lt;/summary&amp;gt;&lt;/p&gt;
&lt;p&gt;{% gi 2 2 %}&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://img.doracoin.cc/images/2023/07/17/6b1d6f2fa92cafac95eb44776659cf4a.png&quot; alt=&quot;&quot; title=&quot;https://bbs.mihoyo.com/ys/article/21268500&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://img.doracoin.cc/images/2023/07/17/f244957a76219b5987ddb9fa7751051d.png&quot; alt=&quot;&quot; title=&quot;https://bbs.mihoyo.com/ys/article/25075070&quot; /&gt;&lt;/p&gt;
&lt;p&gt;{% endgi %}&lt;/p&gt;
&lt;p&gt;&amp;lt;/details&amp;gt;&lt;/p&gt;
&lt;h4&gt;&lt;a href=&quot;https://bbs.mihoyo.com/ys/obc/content/644/detail?bbs_presentation_style=no_header&quot;&gt;⚝重云⚝&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;&amp;lt;details&amp;gt;
&amp;lt;summary&amp;gt;&amp;lt;mark&amp;gt;点击展开图片, 点击图片浏览完整大图&amp;lt;/mark&amp;gt;&amp;lt;/summary&amp;gt;&lt;/p&gt;
&lt;p&gt;{% gi 2 2 %}&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://img.doracoin.cc/images/2023/07/17/1ad481176e7284cfbd368bf542d904d1.png&quot; alt=&quot;&quot; title=&quot;https://bbs.mihoyo.com/ys/article/21038174&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://img.doracoin.cc/images/2023/07/17/6a8f318ff253083fe1ae5064cfaf1b3e.png&quot; alt=&quot;&quot; title=&quot;https://bbs.mihoyo.com/ys/article/25075185&quot; /&gt;&lt;/p&gt;
&lt;p&gt;{% endgi %}&lt;/p&gt;
&lt;p&gt;&amp;lt;/details&amp;gt;&lt;/p&gt;
&lt;h4&gt;&lt;a href=&quot;https://bbs.mihoyo.com/ys/obc/content/78/detail?bbs_presentation_style=no_header&quot;&gt;⚝凝光⚝&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;&amp;lt;details&amp;gt;
&amp;lt;summary&amp;gt;&amp;lt;mark&amp;gt;点击展开图片, 点击图片浏览完整大图&amp;lt;/mark&amp;gt;&amp;lt;/summary&amp;gt;&lt;/p&gt;
&lt;p&gt;{% gi 2 2 %}&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://img.doracoin.cc/images/2023/07/17/a9cb85ba4bd3126e0ad9e941b69a6c21.png&quot; alt=&quot;&quot; title=&quot;https://bbs.mihoyo.com/ys/article/21079968&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://img.doracoin.cc/images/2023/07/17/bba6e097f2b206e95f02b8a29923ee5d.png&quot; alt=&quot;&quot; title=&quot;https://bbs.mihoyo.com/ys/article/25074768&quot; /&gt;&lt;/p&gt;
&lt;p&gt;{% endgi %}&lt;/p&gt;
&lt;p&gt;&amp;lt;/details&amp;gt;&lt;/p&gt;
&lt;h4&gt;&lt;a href=&quot;https://bbs.mihoyo.com/ys/obc/content/111/detail?bbs_presentation_style=no_header&quot;&gt;⚝诺艾尔⚝&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;&amp;lt;details&amp;gt;
&amp;lt;summary&amp;gt;&amp;lt;mark&amp;gt;点击展开图片, 点击图片浏览完整大图&amp;lt;/mark&amp;gt;&amp;lt;/summary&amp;gt;&lt;/p&gt;
&lt;p&gt;{% gi 2 2 %}&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://img.doracoin.cc/images/2023/07/17/5eb898d3752dc55586dd2820ee319dd9.png&quot; alt=&quot;&quot; title=&quot;https://bbs.mihoyo.com/ys/article/20700735&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://img.doracoin.cc/images/2023/07/17/df8980f403acac429106d79b19f7e6e3.png&quot; alt=&quot;&quot; title=&quot;https://bbs.mihoyo.com/ys/article/25074833&quot; /&gt;&lt;/p&gt;
&lt;p&gt;{% endgi %}&lt;/p&gt;
&lt;p&gt;&amp;lt;/details&amp;gt;&lt;/p&gt;
&lt;h4&gt;&lt;a href=&quot;https://bbs.mihoyo.com/ys/obc/content/2404/detail?bbs_presentation_style=no_header&quot;&gt;⚝雷电将军⚝&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;&amp;lt;details&amp;gt;
&amp;lt;summary&amp;gt;&amp;lt;mark&amp;gt;点击展开图片, 点击图片浏览完整大图&amp;lt;/mark&amp;gt;&amp;lt;/summary&amp;gt;&lt;/p&gt;
&lt;p&gt;{% gi 2 2 %}&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://img.doracoin.cc/images/2023/07/17/536b1b5388c7e7b3c47c0fc9611e058a.png&quot; alt=&quot;&quot; title=&quot;https://bbs.mihoyo.com/ys/article/19611106&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://img.doracoin.cc/images/2023/07/17/df443950d0cf833fdda5121323c16759.png&quot; alt=&quot;&quot; title=&quot;https://bbs.mihoyo.com/ys/article/22242880&quot; /&gt;&lt;/p&gt;
&lt;p&gt;{% endgi %}&lt;/p&gt;
&lt;p&gt;&amp;lt;/details&amp;gt;&lt;/p&gt;
&lt;h4&gt;&lt;a href=&quot;https://bbs.mihoyo.com/ys/obc/content/1220/detail?bbs_presentation_style=no_header&quot;&gt;⚝达达利亚⚝&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;&amp;lt;details&amp;gt;
&amp;lt;summary&amp;gt;&amp;lt;mark&amp;gt;点击展开图片, 点击图片浏览完整大图&amp;lt;/mark&amp;gt;&amp;lt;/summary&amp;gt;&lt;/p&gt;
&lt;p&gt;{% gi 2 2 %}&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://img.doracoin.cc/images/2023/07/17/b79f3eef81fc3afea8569b8b4530a8f3.png&quot; alt=&quot;&quot; title=&quot;https://bbs.mihoyo.com/ys/article/21272578&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://img.doracoin.cc/images/2023/07/17/32dc87760dbe8bb8a429c0611a846d72.png&quot; alt=&quot;&quot; title=&quot;https://bbs.mihoyo.com/ys/article/22237098&quot; /&gt;&lt;/p&gt;
&lt;p&gt;{% endgi %}&lt;/p&gt;
&lt;p&gt;&amp;lt;/details&amp;gt;&lt;/p&gt;
&lt;h4&gt;&lt;a href=&quot;https://bbs.mihoyo.com/ys/obc/content/4333/detail?bbs_presentation_style=no_header&quot;&gt;⚝柯莱⚝&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;&amp;lt;details&amp;gt;
&amp;lt;summary&amp;gt;&amp;lt;mark&amp;gt;点击展开图片, 点击图片浏览完整大图&amp;lt;/mark&amp;gt;&amp;lt;/summary&amp;gt;&lt;/p&gt;
&lt;p&gt;{% gi 2 2 %}&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://img.doracoin.cc/images/2023/07/17/a3c97578f0d04478f266042ee62ef3ac.png&quot; alt=&quot;&quot; title=&quot;https://bbs.mihoyo.com/ys/article/27855829&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://img.doracoin.cc/images/2023/07/17/d97098e1cba4e47f9679503c4fb90975.png&quot; alt=&quot;&quot; title=&quot;https://bbs.mihoyo.com/ys/article/27942377&quot; /&gt;&lt;/p&gt;
&lt;p&gt;{% endgi %}&lt;/p&gt;
&lt;p&gt;&amp;lt;/details&amp;gt;&lt;/p&gt;
&lt;h4&gt;&lt;a href=&quot;https://bbs.mihoyo.com/ys/obc/content/2123/detail?bbs_presentation_style=no_header&quot;&gt;⚝神里绫华⚝&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;&amp;lt;details&amp;gt;
&amp;lt;summary&amp;gt;&amp;lt;mark&amp;gt;点击展开图片, 点击图片浏览完整大图&amp;lt;/mark&amp;gt;&amp;lt;/summary&amp;gt;&lt;/p&gt;
&lt;p&gt;{% gi 2 2 %}&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://img.doracoin.cc/images/2023/07/17/8a338b9bc327c675565d8e7afd7adcd3.png&quot; alt=&quot;&quot; title=&quot;https://bbs.mihoyo.com/ys/article/20661255&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://img.doracoin.cc/images/2023/07/17/13e4d18bb906aa5fce27f2199242f2de.png&quot; alt=&quot;&quot; title=&quot;https://bbs.mihoyo.com/ys/article/22243283&quot; /&gt;&lt;/p&gt;
&lt;p&gt;{% endgi %}&lt;/p&gt;
&lt;p&gt;&amp;lt;/details&amp;gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;&amp;lt;div style=&quot;text-align:center;font-size:1.1rem;margin-top:0.8rem;margin-bottom:0.8rem;&quot;&amp;gt;
&amp;lt;img class=&quot;divider&quot; src=&quot;/images/mihoyo-divider.png&quot;/&amp;gt;
&amp;lt;/div&amp;gt;&lt;/p&gt;
&lt;h3&gt;✧周游壶灵刷新说明✧&lt;/h3&gt;
&lt;p&gt;&amp;lt;details&amp;gt;
&amp;lt;summary&amp;gt;&amp;lt;mark&amp;gt;点击展开图片&amp;lt;/mark&amp;gt;&amp;lt;/summary&amp;gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://img.doracoin.cc/images/2023/07/17/571c56d47336123c76ba0f371cd75971.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;/details&amp;gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;&amp;lt;div style=&quot;text-align:center;font-size:1.1rem;margin-top:0.8rem;margin-bottom:0.8rem;&quot;&amp;gt;
&amp;lt;img class=&quot;divider&quot; src=&quot;/images/mihoyo-divider.png&quot;/&amp;gt;
&amp;lt;/div&amp;gt;&lt;/p&gt;
&lt;h3&gt;✧砍树攻略-地图点位✧&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;木材的刷新机制，来自一位网友的说明：
&lt;img src=&quot;https://img.doracoin.cc/images/2023/07/17/61f9e056d04fc7fb58314e24375e1cba.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://www.bilibili.com/video/BV1T3411v7Wb/&quot;&gt;保姆级木材速刷攻略！全木材原地无限循环刷取，16种木头砍树路线+6个砍树机制---尘歌壶必备（须弥证悟木/业果木/辉木/沙漠怪木/刺葵木）&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ol&gt;
&lt;li&gt;松木循环砍&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&amp;lt;details&amp;gt;
&amp;lt;summary&amp;gt;&amp;lt;mark&amp;gt;点击展开图片&amp;lt;/mark&amp;gt;&amp;lt;/summary&amp;gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://img.doracoin.cc/images/2023/07/17/b6f22966a2a8f635a8bc0798f0c672d5.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;/details&amp;gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;杉木循环砍&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&amp;lt;details&amp;gt;
&amp;lt;summary&amp;gt;&amp;lt;mark&amp;gt;点击展开图片&amp;lt;/mark&amp;gt;&amp;lt;/summary&amp;gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://img.doracoin.cc/images/2023/07/17/92db674bd9c71b99b1d3e3460ad3b777.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;/details&amp;gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;垂香木循环砍&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&amp;lt;details&amp;gt;
&amp;lt;summary&amp;gt;&amp;lt;mark&amp;gt;点击展开图片&amp;lt;/mark&amp;gt;&amp;lt;/summary&amp;gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://img.doracoin.cc/images/2023/07/17/5cd450fdbc927405bc55fd5a87fa0d40.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;/details&amp;gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;桦木循环砍&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&amp;lt;details&amp;gt;
&amp;lt;summary&amp;gt;&amp;lt;mark&amp;gt;点击展开图片&amp;lt;/mark&amp;gt;&amp;lt;/summary&amp;gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://img.doracoin.cc/images/2023/07/17/371b43a0c2454fb16a3788c0b122ccb0.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;/details&amp;gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;却砂木循环砍&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&amp;lt;details&amp;gt;
&amp;lt;summary&amp;gt;&amp;lt;mark&amp;gt;点击展开图片&amp;lt;/mark&amp;gt;&amp;lt;/summary&amp;gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://img.doracoin.cc/images/2023/07/17/85620b0e26e50e911abc253c1d83959f.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;/details&amp;gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;竹木循环砍&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&amp;lt;details&amp;gt;
&amp;lt;summary&amp;gt;&amp;lt;mark&amp;gt;点击展开图片&amp;lt;/mark&amp;gt;&amp;lt;/summary&amp;gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://img.doracoin.cc/images/2023/07/17/85fb97181019876e8cb1d353066843a8.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;/details&amp;gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;业果木循环砍&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&amp;lt;details&amp;gt;
&amp;lt;summary&amp;gt;&amp;lt;mark&amp;gt;点击展开图片&amp;lt;/mark&amp;gt;&amp;lt;/summary&amp;gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://img.doracoin.cc/images/2023/07/17/39b112e53ce7c2a856ef3898433abe44.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;/details&amp;gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;证悟木循环砍&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&amp;lt;details&amp;gt;
&amp;lt;summary&amp;gt;&amp;lt;mark&amp;gt;点击展开图片&amp;lt;/mark&amp;gt;&amp;lt;/summary&amp;gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://img.doracoin.cc/images/2023/07/17/178fe0f0fa7eadb7fec45144a24680ba.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;/details&amp;gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;辉木循环砍&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&amp;lt;details&amp;gt;
&amp;lt;summary&amp;gt;&amp;lt;mark&amp;gt;点击展开图片&amp;lt;/mark&amp;gt;&amp;lt;/summary&amp;gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://img.doracoin.cc/images/2023/07/17/48c62dc3e097d56c42ec6871d79fc84f.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;/details&amp;gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;&amp;lt;style type=&quot;text/css&quot;&amp;gt;
.markdown-body h3 {
text-align: center;
margin-top: 0;
}&lt;/p&gt;
&lt;p&gt;.markdown-body details {
margin-left: 2rem;
}&lt;/p&gt;
&lt;p&gt;.markdown-body summary {
font-size: 0.9rem;
}&lt;/p&gt;
&lt;p&gt;.markdown-body summary::marker {
/* https://unicode-table.com/cn/sets/arrow-symbols/ &lt;em&gt;/
/&lt;/em&gt; https://developer.mozilla.org/zh-CN/docs/Web/CSS/::marker */
content: &quot;\21AC&quot;;
color: #6495ff;
font-size: 1.5rem;
line-height: 0.5rem;
}&lt;/p&gt;
&lt;p&gt;.markdown-body .center table {
width: fit-content;
margin-left: auto;
margin-right: auto;
}&lt;/p&gt;
&lt;p&gt;.markdown-body code {
color: #ef5350;
}
&amp;lt;/style&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;/css/cutefont.css&quot; /&amp;gt;&lt;/p&gt;
</content:encoded></item><item><title>原神-相遇之缘(蓝球)获取方式汇总</title><link>https://blog.doracoin.cc/posts/2022/2022-09-08-%E5%8E%9F%E7%A5%9E-%E7%9B%B8%E9%81%87%E4%B9%8B%E7%BC%98-%E8%93%9D%E7%90%83-%E8%8E%B7%E5%8F%96%E6%96%B9%E5%BC%8F%E6%B1%87%E6%80%BB/</link><guid isPermaLink="true">https://blog.doracoin.cc/posts/2022/2022-09-08-%E5%8E%9F%E7%A5%9E-%E7%9B%B8%E9%81%87%E4%B9%8B%E7%BC%98-%E8%93%9D%E7%90%83-%E8%8E%B7%E5%8F%96%E6%96%B9%E5%BC%8F%E6%B1%87%E6%80%BB/</guid><pubDate>Thu, 08 Sep 2022 14:39:01 GMT</pubDate><content:encoded>&lt;p&gt;刚入坑时啥也不懂，氪金买蓝球&amp;lt;!--more--&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;div style=&quot;text-align:center;font-size:1.1rem;margin-top:0.8rem;margin-bottom:0.8rem;&quot;&amp;gt;
&amp;lt;img src=&quot;/images/mihoyo-divider.png&quot;/&amp;gt;
&amp;lt;/div&amp;gt;&lt;/p&gt;
&lt;h3&gt;来源获取表&lt;/h3&gt;
&lt;p&gt;&amp;lt;div class=&quot;center&quot;&amp;gt;&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;说明&lt;/th&gt;
&lt;th&gt;数量&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;角色等级突破 20级&lt;/td&gt;
&lt;td&gt;每角色突破一次 1 个&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;角色等级突破 50级&lt;/td&gt;
&lt;td&gt;每角色突破一次 1 个&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;角色等级突破 70级&lt;/td&gt;
&lt;td&gt;每角色突破一次 1 个&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;龙脊雪山忍冬之树奖励&lt;/td&gt;
&lt;td&gt;共 4 个&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;稻妻神樱树奖励&lt;/td&gt;
&lt;td&gt;共 20 个&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;游戏商城-星尘75兑换&lt;/td&gt;
&lt;td&gt;每月 5 个&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;游戏商城-星辉5兑换&lt;/td&gt;
&lt;td&gt;每月 5 个&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;游戏商城-原石160购买&lt;/td&gt;
&lt;td&gt;N 个&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&amp;lt;/div&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;style type=&quot;text/css&quot;&amp;gt;
.markdown-body h3 {
text-align: center;
margin-top: 0;
}
.center {
width: auto;
display: table;
margin-left: auto;
margin-right: auto;
}
&amp;lt;/style&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;/css/cutefont.css&quot; /&amp;gt;&lt;/p&gt;
</content:encoded></item><item><title>枫之谷繁花森林活动</title><link>https://blog.doracoin.cc/posts/2022/2022-09-01-%E6%9E%AB%E4%B9%8B%E8%B0%B7%E7%B9%81%E8%8A%B1%E6%A3%AE%E6%9E%97%E6%B4%BB%E5%8A%A8/</link><guid isPermaLink="true">https://blog.doracoin.cc/posts/2022/2022-09-01-%E6%9E%AB%E4%B9%8B%E8%B0%B7%E7%B9%81%E8%8A%B1%E6%A3%AE%E6%9E%97%E6%B4%BB%E5%8A%A8/</guid><pubDate>Thu, 01 Sep 2022 10:10:13 GMT</pubDate><content:encoded>&lt;h3&gt;一图流活动指引 &lt;a href=&quot;https://mp.weixin.qq.com/s?__biz=MzI2NzAyNDE2MA==&amp;amp;mid=2247496688&amp;amp;idx=1&amp;amp;sn=ede1f6a0b82ff4f0d0fd328fd2b583a9&amp;amp;chksm=ea8791bfddf018a9155062d926fa4e8e34be4f498f7a00d4b9cb30a9f5c651f7c05058ec644a&quot;&gt;Link&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;./2022-09-01-%E6%9E%AB%E4%B9%8B%E8%B0%B7%E7%B9%81%E8%8A%B1%E6%A3%AE%E6%9E%97%E6%B4%BB%E5%8A%A8/%E7%B9%81%E8%8A%B1%E6%A3%AE%E6%9E%97%E4%B8%80%E5%9B%BE%E6%B5%81%E6%94%BB%E7%95%A5.jpg&quot; alt=&quot;繁花森林一图流攻略&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;./2022-09-01-%E6%9E%AB%E4%B9%8B%E8%B0%B7%E7%B9%81%E8%8A%B1%E6%A3%AE%E6%9E%97%E6%B4%BB%E5%8A%A8/%E7%B9%81%E8%8A%B1%E6%A3%AE%E6%9E%97%E6%97%B6%E8%A3%85%E9%A2%84%E8%A7%88.jpg&quot; alt=&quot;繁花森林时装预览&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;/css/cutefont.css&quot; /&amp;gt;&lt;/p&gt;
</content:encoded></item><item><title>问道起号攻略</title><link>https://blog.doracoin.cc/posts/2021/2021-10-13-%E9%97%AE%E9%81%93%E8%B5%B7%E5%8F%B7%E6%94%BB%E7%95%A5/</link><guid isPermaLink="true">https://blog.doracoin.cc/posts/2021/2021-10-13-%E9%97%AE%E9%81%93%E8%B5%B7%E5%8F%B7%E6%94%BB%E7%95%A5/</guid><pubDate>Wed, 13 Oct 2021 15:19:51 GMT</pubDate><content:encoded>&lt;p&gt;这篇文章是根据一位游戏内结识的热心大佬的通话记录整理的游戏攻略指南。
&amp;lt;!--more--&amp;gt;&lt;/p&gt;
&lt;p&gt;这位大佬是一位对游戏理解比较深的玩家，这款游戏年代比较久远了，对游戏规则理解深入的玩家有很多很多，我只是恰巧遇到了这么一位。
其观点并不代表权威性，文章内容仅仅是基于游玩经验丰富的玩家之间的探讨。&lt;/p&gt;
&lt;hr /&gt;
&lt;h3&gt;&lt;strong&gt;一、等级阶段选择建议&lt;/strong&gt;&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;60级阶段（新手友好）&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;优势：系统赠送装备即可满足需求，宝宝培养成本低（5只总成本约37元），适合体验基础玩法。&lt;/li&gt;
&lt;li&gt;策略：锁经验不升级，专注刷7点半活动怪，利用帮派积分兑换资源。&lt;/li&gt;
&lt;li&gt;投资：近乎零成本，会员卡可通过活跃度获取。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;89/99级阶段（养老首选）&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;优势：手势装备便宜，存在专属帮派生态，战力达标后（面板2.8万+）可参与高阶玩法。&lt;/li&gt;
&lt;li&gt;关键：需准备羽化宠物（每只成本约40元），人物属性可通过古城副本白嫖提升。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;110级+阶段（高投入门槛）&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;风险：装备成本陡增（单件超6000万游戏币），需持续投资维持战力，周年庆活动难参与。&lt;/li&gt;
&lt;li&gt;提醒：非重氪玩家易陷入&quot;打不过-无产出-战力停滞&quot;恶性循环。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;hr /&gt;
&lt;h3&gt;&lt;strong&gt;二、核心资源规划策略&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;装备获取&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;低等级：利用仙人指路任务卡经验，系统赠送装备改造+镶嵌属性&lt;/li&gt;
&lt;li&gt;高等级：优先购买成品装备（如&lt;strong&gt;三满武器&lt;/strong&gt;，指装备的蓝色属性：满所有相性、满本系相性、满伤害），通过打金兑换&lt;/li&gt;
&lt;li&gt;http://www.xiaoyingsudai.com/wenda/62928.html&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;宠物培养&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;羽化必需：每日训练营10次加速培养（约1个月/只）&lt;/li&gt;
&lt;li&gt;血量标准：100级以下需14万血，高等级需1.4亿游戏币投入&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;会员体系&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;年费会员需360天卡，优先用于获取免费元宝和双倍经验&lt;/li&gt;
&lt;li&gt;低等级可通过活跃度兑换90天会员卡（需人物战力达标）&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;h3&gt;&lt;strong&gt;三、经济系统深度解析&lt;/strong&gt;&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;项目&lt;/th&gt;
&lt;th&gt;60级&lt;/th&gt;
&lt;th&gt;99级&lt;/th&gt;
&lt;th&gt;110级+&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;单号装备成本&lt;/td&gt;
&lt;td&gt;系统赠送&lt;/td&gt;
&lt;td&gt;500万游戏币&lt;/td&gt;
&lt;td&gt;2亿+游戏币&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;宝宝培养周期&lt;/td&gt;
&lt;td&gt;1个月&lt;/td&gt;
&lt;td&gt;2个月&lt;/td&gt;
&lt;td&gt;需飞升进阶&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;月活跃要求&lt;/td&gt;
&lt;td&gt;10小时/周&lt;/td&gt;
&lt;td&gt;15小时/周&lt;/td&gt;
&lt;td&gt;每日必做任务&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;投资安全线&lt;/td&gt;
&lt;td&gt;＜50元&lt;/td&gt;
&lt;td&gt;200元&lt;/td&gt;
&lt;td&gt;500元+&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr /&gt;
&lt;h3&gt;&lt;strong&gt;四、给不同玩家的路线建议&lt;/strong&gt;&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;情怀休闲党&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;路线：60级→89级卡级&lt;/li&gt;
&lt;li&gt;核心：4木1火阵容，专注挂机玩法，利用系统资源缓慢提升&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;微氪策略党&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;路线：99级长期驻留&lt;/li&gt;
&lt;li&gt;关键：投资5只羽化宝宝，通过仙盟积分兑换高阶首饰&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;重氪战力党&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;警告：130级需持续投入，装备迭代速度快，慎入！&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;hr /&gt;
&lt;h3&gt;&lt;strong&gt;五、版本注意事项&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;周年庆倒计时：3月中旬至4月需基础战力达标&lt;/li&gt;
&lt;li&gt;属性重置机制：110级后可开启双属性页，实现力/法双修&lt;/li&gt;
&lt;li&gt;经济系统暗坑：高等级药水消耗量剧增，需提前储备&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;（攻略总结：建议新人从60级起步，通过系统赠送资源熟悉机制，逐步过渡到89/99级养老，避免盲目冲高等级陷入资源陷阱。）&lt;/p&gt;
&lt;hr /&gt;
&lt;h3&gt;🐉 宝宝点化全攻略&lt;/h3&gt;
&lt;p&gt;宠物点化能显著提升宠物能力，是培养极品宝宝的关键一步。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;点化基础与开启&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;作用&lt;/strong&gt;：宠物点化成功后，其&lt;strong&gt;基础成长值（不包括强化部分）会提升30%&lt;/strong&gt;，是全面的属性增强。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;开启条件&lt;/strong&gt;：
&lt;ul&gt;
&lt;li&gt;宠物不能是&lt;strong&gt;野生、点化状态或限时类&lt;/strong&gt;宠物。&lt;/li&gt;
&lt;li&gt;需要一颗&lt;strong&gt;点化丹&lt;/strong&gt;（商城售价328元宝，也可在集市用游戏币购买）。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;开启方式&lt;/strong&gt;：在游戏中的&lt;strong&gt;达闻散人处（天墉城(120,169)）开启灵窍&lt;/strong&gt;，或者在宠物界面的&lt;strong&gt;成长-点化中，使用点化丹开启&lt;/strong&gt;（手游常用方式）。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;灵气获取与计算&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;点化方式&lt;/strong&gt;：开启点化后，需要通过喂养道具为宠物积累灵气。
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;喂养点化丹&lt;/strong&gt;：每颗固定提供&lt;strong&gt;6000点&lt;/strong&gt;灵气，速度快但成本较高。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;喂养装备&lt;/strong&gt;：喂养&lt;strong&gt;未改造过的非套装装备&lt;/strong&gt;（出售价格需&lt;strong&gt;大于1000文钱&lt;/strong&gt;）来积累灵气。装备提供的灵气值约等于其&lt;strong&gt;商店出售价格的千分之一&lt;/strong&gt;（例如，价值30000的装备提供约30点灵气）。&lt;strong&gt;未鉴定装备&lt;/strong&gt;、&lt;strong&gt;绿色装备&lt;/strong&gt;、&lt;strong&gt;强化过的装备&lt;/strong&gt;或&lt;strong&gt;价值过低&lt;/strong&gt;的装备无法用于喂养。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;灵气需求公式&lt;/strong&gt;：普通宠物点化所需总灵气有一个计算公式：&lt;strong&gt;30 × 宠物携带等级 × 宠物携带等级&lt;/strong&gt;。
&lt;ul&gt;
&lt;li&gt;以&lt;strong&gt;电精（携带等级65级）&lt;/strong&gt; 为例，所需灵气为 30 × 65 × 65 = 126,750点。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;变异宠物&lt;/strong&gt;所需灵气值通常为固定&lt;strong&gt;400,000&lt;/strong&gt;点，远高于普通宠物。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;点化成本与策略&lt;/strong&gt;
点化一只宝宝的成本取决于你选择的方式，以下是点化一只电精的估算（已包含第一颗开启灵窍的点化丹）：&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;点化方式&lt;/th&gt;
&lt;th&gt;估算成本&lt;/th&gt;
&lt;th&gt;说明&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;全部点化丹&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;约 &lt;strong&gt;7216元宝&lt;/strong&gt; (约72元)&lt;/td&gt;
&lt;td&gt;速度快，适合元宝充足的玩家&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;全部装备喂养&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;约 &lt;strong&gt;1.27亿游戏币&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;耗时较长，适合有耐心、游戏币多的玩家&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;混合点化&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;视搭配而定&lt;/td&gt;
&lt;td&gt;平衡速度与成本，例如用点化丹完成大部分，装备补尾&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;装备喂养技巧&lt;/strong&gt;：
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;鉴定更划算&lt;/strong&gt;：将&lt;strong&gt;未鉴定装备先鉴定再喂养&lt;/strong&gt;。因为鉴定出的额外属性会提升装备售价，从而增加提供的灵气值，性价比更高。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;集市淘装备&lt;/strong&gt;：可以在集市寻找售价低但能提供较多灵气的装备，有时能淘到宝。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;点化小贴士&lt;/strong&gt;：
&lt;ul&gt;
&lt;li&gt;点化过程是&lt;strong&gt;渐进提升&lt;/strong&gt;的，灵气积累过程中宠物的成长就会逐步增加，并非必须点满才有效果。&lt;/li&gt;
&lt;li&gt;点化完成后，宠物的&lt;strong&gt;所有属性点和抗性点会被重置&lt;/strong&gt;，可以免费重新分配。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;💎 综合养成路线与资源规划&lt;/h3&gt;
&lt;p&gt;结合之前的讨论和本次搜索，为你梳理一下宝宝培养和副本参与的思路：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;宝宝养成路线图&lt;/strong&gt;：一个完整的极品宝宝养成顺序通常是：&lt;strong&gt;点化 → 羽化 → 强化/进化&lt;/strong&gt;。点化是基础且性价比很高的一步。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;副本与资源循环&lt;/strong&gt;：积极参与如&lt;strong&gt;西域古城&lt;/strong&gt;、&lt;strong&gt;飘渺仙府&lt;/strong&gt;、&lt;strong&gt;烈火涧&lt;/strong&gt;等副本，不仅能获得经验道行，也是&lt;strong&gt;装备&lt;/strong&gt;的重要来源。这些副本产出的装备可以用于宝宝点化，形成资源循环。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;优先级建议&lt;/strong&gt;：对于资源有限的玩家，优先将主力输出宝宝点化，能显著提升战斗效率。日常副本中获得的装备，是点化灵气的重要补充来源。&lt;/li&gt;
&lt;/ol&gt;
&lt;hr /&gt;
</content:encoded></item><item><title>问道隆冬节攻略</title><link>https://blog.doracoin.cc/posts/2021/2021-08-22-%E9%97%AE%E9%81%93%E9%9A%86%E5%86%AC%E8%8A%82%E6%94%BB%E7%95%A5/</link><guid isPermaLink="true">https://blog.doracoin.cc/posts/2021/2021-08-22-%E9%97%AE%E9%81%93%E9%9A%86%E5%86%AC%E8%8A%82%E6%94%BB%E7%95%A5/</guid><pubDate>Sun, 22 Aug 2021 14:03:15 GMT</pubDate><content:encoded>&lt;p&gt;真是个费时间的活动
&amp;lt;!--more--&amp;gt;
注：该活动每周为一个周期，用来抽奖的声望每周不会清零,只会活动彻底结束才清空；其他数值，每周最后一日清零。&lt;/p&gt;
&lt;p&gt;网友开放的攻略链接：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;隆冬节任务安排：http://www.imrookie.cn/game/wendao/longdongrenwu.html&lt;/li&gt;
&lt;li&gt;瑶池诗会在线搜索：http://www.imrookie.cn/game/wendao/longdong.html&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;攻略部分&lt;/h2&gt;
&lt;h3&gt;攻略1&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://img.doracoin.cc/images/2024/02/01/2aba76db680c35387985953c68399fd3.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;用这种方法，每周可以抽三次大额抽奖，并且每天都做水席获得的厨师心得，打开后还有机会可以获得小道具。&lt;/p&gt;
&lt;p&gt;后几天也不是一定全部诗会，可以搭配除魔卫道，只要做除魔减的才情值，可以通过诗会补回来就可以了。&lt;/p&gt;
&lt;p&gt;如果做了除魔就必须做诗会补才情，不然才情值是负的名望就扣的多。&lt;/p&gt;
&lt;p&gt;全做诗会主要是考虑到可以不用战斗，而且数值奖励也比较高，积分理想情况也是最多的，如果自身实力可以除魔比较轻松可以选择搭配着来。&lt;/p&gt;
&lt;p&gt;做云肴水席提高愉悦值，300数值(两天)能领宠物&lt;/p&gt;
&lt;p&gt;Q：懒得作诗，意思可以换着做地魔？
A：中间两天可以聆听仙韵，可以看看后边的图，做除魔只要减的才情能补回来就可以了，不一定全做诗会
A2：我一般是诗会跟听道一起做，可以同时做，不浪费时间&lt;/p&gt;
&lt;p&gt;下边会具体分析还有数据，有什么关于活动的问题可以留言。&lt;/p&gt;
&lt;h3&gt;攻略2&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://img.doracoin.cc/images/2024/02/01/f4f9f0245593da881ed478720f5fd767.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;问答：&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;风尘仆仆 提交时是选高价卖出还是平价卖出？
平价！高价老坑了，10次丟7次，当然赌狗除外&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;每天给的除魔卫道的书吃不吃啊？
需要吃&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;洞天选什么1000的还是存起来买3000的？
肯定先买先享受啊，每周活动周期结束后就清空财富值了&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;宝宝不是限时的吗？有啥用？
宝宝领了过后每天都能得到一些属性，根骨、魅力、愉悦等属性或是名望&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;名望抽大额的还是抽小额的好？
都行，不过大额当托几率大些&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;天马每天只能遇到一次变异吗？
是的&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;为啥全选撼地魔啊？ 3个3个不行吗 ？
因为这样连续做完两天，才有资格抓天马。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;改名卡是不是得聆听道韵才有？
是的，有概率出&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;[^1]: 问道寒假活动-隆冬节攻略 https://www.bilibili.com/read/cv14677191/
[^1]: 隆冬节2024年最新攻略强势来袭 https://tieba.baidu.com/p/8847057282
[^1]: 【隆冬节】明日开启！陈年攻略再度翻出来  https://mp.weixin.qq.com/s/WTPtCRKC4MQy2cajlSm4xA
[^1]: 2021年隆冬节平民详细攻略----想最大化收益的进来看看  https://tieba.baidu.com/p/7187660367&lt;/p&gt;
</content:encoded></item><item><title>问道宠物养成</title><link>https://blog.doracoin.cc/posts/2021/2021-08-21-%E9%97%AE%E9%81%93%E5%AE%A0%E7%89%A9%E5%85%BB%E6%88%90/</link><guid isPermaLink="true">https://blog.doracoin.cc/posts/2021/2021-08-21-%E9%97%AE%E9%81%93%E5%AE%A0%E7%89%A9%E5%85%BB%E6%88%90/</guid><pubDate>Sat, 21 Aug 2021 06:21:18 GMT</pubDate><content:encoded>&lt;p&gt;平民玩家凑不出装备的情况下，就优先依赖宠物&lt;/p&gt;
&lt;p&gt;&amp;lt;!--more--&amp;gt;&lt;/p&gt;
&lt;h2&gt;宠物加点&lt;/h2&gt;
&lt;p&gt;主要分为：体、法、力、敏四种。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;体宝宝：一般都是靠高血量高防御站场给人物拉血，此时主要依靠人物输出。&lt;/li&gt;
&lt;li&gt;法、力宝宝：不用细说，保证攻击最大化，只要选择全灵力、全力量 加点即可。&lt;/li&gt;
&lt;li&gt;敏宝宝：一般是有天生技能的宝宝，比如漫天血舞、神龙罩、如意圈之类的，这种情况需要出手速度快一些。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;升级&lt;/h3&gt;
&lt;p&gt;如果是跟着角色一起升级的话，没什么需要特别注意的。&lt;/p&gt;
&lt;p&gt;如果是后期新买的或者新抓的宠物从1级开始带：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;1-25级：双倍+全局，不到20分钟；然后6次《仙界宠物大逃亡》能到55以上，总共用不了半小时&lt;/li&gt;
&lt;li&gt;有声望的去天墉城贾师爷处给宠物换经验；&lt;/li&gt;
&lt;li&gt;师门任务：小宠物参战，然后做师门任务或者五雷令直接领取，与人物等级相差过大的情况下，宠物给的经验不会太多&lt;/li&gt;
&lt;li&gt;白邦芒：最后交任务的时候切换小宠物参战即可&lt;/li&gt;
&lt;li&gt;每日答题：宠物参战，然后去答题&lt;/li&gt;
&lt;li&gt;仙人指路：同样的，与人物等级相差过大的情况下，宠物获取的经验不多&lt;/li&gt;
&lt;li&gt;修山：55级后打五个系的山神，需要小宠物参战，如果与人物等级相差过大战斗中容易暴毙，在最后一个怪的时候召唤出来也容易暴毙，看情况选择该方法&lt;/li&gt;
&lt;li&gt;宠物训练营：80级后&lt;/li&gt;
&lt;li&gt;居所修炼宝宝&lt;/li&gt;
&lt;li&gt;宝宝经验丹&lt;/li&gt;
&lt;li&gt;小号升级时，带着做主线任务（一般情况下，除了一些神兽、纪念宠之类的特别宠物，都有携带等级限制）&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;抗性点&lt;/h3&gt;
&lt;p&gt;分配抗性点可以增加宝宝的战力，对于冲到C战力很重要；
飞升前，单项抗性最高加30点；飞升后，单项抗性最高加45点；&lt;/p&gt;
&lt;p&gt;物理系的宝宝一般首选抗混乱；法术系宝宝首选抗遗忘；全体血量宝宝首选抗中毒；天技宝宝首选抗遗忘。&lt;a href=&quot;https://zhidao.baidu.com/question/21720920.html&quot;&gt;^1&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;在点满之后法术宝宝优先加抗五行中，相克于自己相性的那门：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;金宝宝加抗火。&lt;/li&gt;
&lt;li&gt;木宝宝加抗金。&lt;/li&gt;
&lt;li&gt;水宝宝加抗土。&lt;/li&gt;
&lt;li&gt;火宝宝加抗水。&lt;/li&gt;
&lt;li&gt;土宝宝加抗木。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;需要注意的是，相性的抗性只能靠分配抗性点获得，而障碍类的抗性，宝宝的武学高了就可以扛住。而玩到后期宝宝的武学都会很高，所以可以在障碍类抗性点上做一些取舍。&lt;/p&gt;
&lt;h3&gt;5.1 天书&lt;/h3&gt;
&lt;p&gt;天书可以增加宝宝的战力，对于冲到C战力很重要，其中金色天书增加的战力较高，增加的战力随着天数等级增长而增长。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;a href=&quot;https://tieba.baidu.com/p/7398837580&quot;&gt;^2&lt;/a&gt;说点个人看法，输出不是成吨的带追袭，准没错，狂暴是必备，物攻高的情况下，溢出伤害非常可观，反击一般情况下用的少，但有些地方不错，比如十绝等。血祭太看脸，不推荐，破天虽然加一部分伤害，但是不如前面的输出高，五行都不错，但配合狂暴效果感觉更好。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;宠物天书技能的等级最高不能超过宠物等级的1.6倍
1、天书散卷有品质的区分，分别为白色、蓝色、金色品质。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;白色品质天书：有灵气、等级属性；&lt;/li&gt;
&lt;li&gt;蓝色品质天书：有灵气、等级、3条基础属性、1条附加属性；&lt;/li&gt;
&lt;li&gt;金色品质天书：有灵气、等级、5条基础属性、1条附加属性；&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;2、每只宠物最多可同时注入&lt;strong&gt;三本&lt;/strong&gt;天书散卷，每本天书散卷都有6000点的初始灵气，宠物每次出场和成功使用天书技能，都会消耗一定数量的灵气值，灵气为0时技能无法使用，&lt;strong&gt;使用其它天书或直接使用元宝可为天书补充灵气&lt;/strong&gt;。不用的天书散卷可以从宠物身上取出。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;物理宠物推荐：三本五行 或 1追袭+2五行
法术宠物推荐：怒击 + 修罗&lt;/p&gt;
&lt;h4&gt;物理系&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;追袭&lt;/strong&gt;：玩家主动使用法术或物理攻击敌方完毕后，宠物有几率对同一目标造成一次物理攻击伤害。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;狂暴&lt;/strong&gt;：物理攻击命中对手的时候，有一定几率将同时使被攻击方周围的几个目标也受到伤害。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;破天&lt;/strong&gt;：使用物理或法术攻击命中对方时，有一定几率破防。&lt;/p&gt;
&lt;p&gt;血祭：宠物使用物理攻击时有一定几率触发，触发时有65%几率对目标造成三倍伤害，35%几率为对方恢复一定气血。&lt;/p&gt;
&lt;p&gt;烈炎：物理攻击命中对手的时候，有一定几率对被攻击方造成附加火系法术伤害。&lt;/p&gt;
&lt;p&gt;惊雷：物理攻击命中对手的时候，有一定几率对被攻击方造成附加金系法术伤害。&lt;/p&gt;
&lt;p&gt;青木：物理攻击命中对手的时候，有一定几率对被攻击方造成附加木系法术伤害。&lt;/p&gt;
&lt;p&gt;碎石：物理攻击命中对手的时候，有一定几率对被攻击方造成附加土系法术伤害。&lt;/p&gt;
&lt;p&gt;寒冰：物理攻击命中对手的时候，有一定几率对被攻击方造成附加水系法术伤害。&lt;/p&gt;
&lt;p&gt;反击：受到物理攻击时，有一定几率物理反击。&lt;/p&gt;
&lt;p&gt;魔引：物理攻击命中对手的时候，有一定几率造成被攻击方的法力消耗。&lt;/p&gt;
&lt;h4&gt;法术系&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;怒击&lt;/strong&gt;：使用法术攻击命中对方时，有一定几率使法术攻击力增强。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;修罗术&lt;/strong&gt;：使用法术攻击对方时，有一定几率出现连击效果。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;破天&lt;/strong&gt;：使用物理或法术攻击命中对方时，有一定几率破防。&lt;/p&gt;
&lt;p&gt;降魔斩：使用法术攻击命中对方时，有一定几率忽视对方的法术抗性。&lt;/p&gt;
&lt;h4&gt;其他&lt;/h4&gt;
&lt;p&gt;云体：宠物在受到必杀攻击时有一定几率触发此效果，该效果触发后，必杀只对该宠物造成普通物理伤害。&lt;/p&gt;
&lt;p&gt;仙风：宠物在受到连击时有一定几率触发此效果，该效果触发后，宠物只受到连击中的第一次伤害，不受到追加的连击伤害。宠物在受到连击死亡后复活，连击也不再继续。&lt;/p&gt;
&lt;p&gt;尽忠：宠物在受到忠诚度降低操作时有一定几率触发此效果，该效果触发后，宠物此次降低的忠诚度有一定比率的降低。&lt;/p&gt;
&lt;p&gt;幽魂：宠物死亡后有几率变为幽魂，无法进行任何操作也不会受到任何攻击、障碍、辅助等效果影响，5回合后复活为正常宠物。&lt;/p&gt;
&lt;p&gt;弑魂：物理或法术攻击携带幽魂天书的宠物时造成的伤害有几率增加150%，如果将此宠物打死，则宠物必定不会触发幽魂效果。&lt;/p&gt;
</content:encoded></item><item><title>问道装备打造</title><link>https://blog.doracoin.cc/posts/2021/2021-08-20-%E9%97%AE%E9%81%93%E8%A3%85%E5%A4%87%E6%89%93%E9%80%A0/</link><guid isPermaLink="true">https://blog.doracoin.cc/posts/2021/2021-08-20-%E9%97%AE%E9%81%93%E8%A3%85%E5%A4%87%E6%89%93%E9%80%A0/</guid><pubDate>Fri, 20 Aug 2021 06:21:18 GMT</pubDate><content:encoded>&lt;p&gt;这部分算是成本最高的投入了&lt;/p&gt;
&lt;p&gt;&amp;lt;!--more--&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;h2 id=&quot;1&quot;&amp;gt;问道装备打造&amp;lt;/h1&amp;gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;不知道新区装备什么价格水平，我在老区防具都是买5000w左右一件的改5，武器有钱可以买好点的，改5或者改6，首饰3000w一个的就行。法号的话，防具重点对比灵力能加多少，我买的平均每件60灵力，武器尽量靠近双相5双伤加本相，尤其伤害尽量高就行。这是买装备的情况
:自己做的话就比较复杂一点，首先每件装备需要收3个尽可能满的黑水，武器是相5、本相5、伤害，鞋子是所属、灵力、速度，其他防具是所属、灵力、敏捷。然后鬼斧神工合成一件蓝装备，然后粉。武器粉出相，防具粉出有用的属性就行，最好是所属。然后是黄，武器黄出伤害，防具也是看着黄
黄完了再绿，武器绿强自己门派法，防具看着绿就行。然后转换属性限制，改造，就可以带了。然后慢慢把武器粉黄往上强，防具非常低的粉黄属性强一下，没太低就别管了。然后封印、共鸣、镶嵌、进化慢慢整就行了
这个游戏的装备和宝宝是全部的前期投入，别指望可以轻松白嫖。我在老区物价便宜，还每个号花了6E以上的币才搞定一身贫民改5，来到B战力，为了5个号的装备我搬砖攒了小半年的钱。一旦有了装备，这个游戏才算真正开始，其他东西都可以比较轻松的白嫖
防具如果区里黑水价格OK可以自己做，武器能买就买，武器粉黄和强化非常烧钱，在我们老区做一件武器的钱够买三件了，新区应该没这么夸张，但是也是亏的，除非人品爆发&lt;/p&gt;
&lt;/blockquote&gt;
</content:encoded></item><item><title>问道游玩指南</title><link>https://blog.doracoin.cc/posts/2021/2021-08-19-%E9%97%AE%E9%81%93%E6%B8%B8%E7%8E%A9%E6%8C%87%E5%8D%97/</link><guid isPermaLink="true">https://blog.doracoin.cc/posts/2021/2021-08-19-%E9%97%AE%E9%81%93%E6%B8%B8%E7%8E%A9%E6%8C%87%E5%8D%97/</guid><pubDate>Thu, 19 Aug 2021 06:21:18 GMT</pubDate><content:encoded>&lt;p&gt;这款游戏运营到如今这个年头，留存的玩家也都算是老手了，也不知这份攻略还有没有意义了&lt;/p&gt;
&lt;p&gt;&amp;lt;!--more--&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;h1 id=&quot;1&quot;&amp;gt;问道游玩指南&amp;lt;/h1&amp;gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;前言：
在问道世界中，影响角色生存能力的主要有以下几项因素：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;宠物&lt;/li&gt;
&lt;li&gt;武器&lt;/li&gt;
&lt;li&gt;装备(防具)&lt;/li&gt;
&lt;li&gt;法宝&lt;/li&gt;
&lt;li&gt;首饰&lt;/li&gt;
&lt;li&gt;道行
……&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;问道有着非常丰富的日常任务，各类任务做下来，人物/宠物等级、技能等级、人物道行/宠物武学 等几项就足够日常使用了。
具体的任务攻略可依据角色强度适当安排，参考&lt;a href=&quot;#2&quot;&gt;日常任务&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;1. 人物/队伍打造&lt;/h2&gt;
&lt;p&gt;以目前拥有的账号、角色来规划
变身卡攻略&lt;a href=&quot;%5B%E5%88%86%E6%9E%90%E4%B8%80%E4%B8%8B%E9%98%9F%E4%BC%8D%E9%80%82%E5%90%88%E7%94%A8%E4%BB%80%E4%B9%88%E5%8F%98%E8%BA%AB%E5%8D%A1-2022-07-23%5D(https://tieba.baidu.com/p/7487022838)&quot;&gt;^2&lt;/a&gt;：混沌卡、震魃卡&lt;/p&gt;
&lt;h3&gt;1.1 五开队伍&lt;/h3&gt;
&lt;p&gt;新角色：金木水火土，组合五行队伍&lt;/p&gt;
&lt;h4&gt;人物加点及用途规划&lt;/h4&gt;
&lt;ol&gt;
&lt;li&gt;新角色法金：4 点灵力，主群体法术攻击，偶尔用辅助技能加攻击力。&lt;/li&gt;
&lt;li&gt;新角色体木：4 点体质，主恢复治疗，附带一个目标的复活功能，偶尔用毒技能打怪。&lt;/li&gt;
&lt;li&gt;新角色敏水：2 灵力 2 敏捷，主加防御技能。加灵力是为了蓝可以足够使用防御技能，敏捷是为了在战斗中能尽快出手。注：不是很喜欢这个门派的法术效果，所以既不玩法也不玩力。最大优势只是加防御。&lt;/li&gt;
&lt;li&gt;新角色法火：4 点灵力，主群体法术攻击，百级技能是真的好看。&lt;/li&gt;
&lt;li&gt;新角色力土：4 点力量，主物理输出，大多时候都是用来眩晕敌手。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;元婴转换&lt;/strong&gt;：&lt;/p&gt;
&lt;p&gt;五个角色全都进行4体质加点，保证站场能力，配合110级可携带的狰兽宝宝输出，狰兽是高血量高物理成长的宝宝，站场输出都很强力。&lt;/p&gt;
&lt;p&gt;声望换到20级，除暴到50级，到了50可以做仙人指路任务一直到130级，进行大飞升，收纳元婴入体开启第二套加点属性，关于这个请多多参考网友们的讨论&lt;a href=&quot;%5B130%E9%A3%9E%E5%8D%87%E5%90%8E%E5%BC%80%E7%AC%AC%E4%BA%8C%E5%A5%97%E5%B1%9E%E6%80%A7%E9%97%AE%E9%A2%98-2021-09-09%5D(https://tieba.baidu.com/p/7531752030)&quot;&gt;^3&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;元婴升级很快&lt;a href=&quot;%5B%E5%85%83%E5%A9%B4%E6%80%8E%E4%B9%88%E5%8D%87%E7%BA%A7%E5%BF%AB%EF%BC%9F%E5%85%83%E5%A9%B4%E4%BB%8E1%E7%BA%A7%E8%A6%81%E6%80%8E%E4%B9%88%E7%BB%83%E5%91%A2%EF%BC%9F-2021-09-26%5D(https://tieba.baidu.com/p/7531752030)&quot;&gt;^4&lt;/a&gt;，我记着有元婴双倍(无名小镇-南华真人-每天4小时)记得领上，寻仙、修山，128一半经验以上开始过地劫就OK，十个任务做完就130了&lt;/p&gt;
&lt;p&gt;如果是单人升级，50级开始做仙人指路任务开四个守护或者浮生录里面的任务具象化出来当打手，大概3天就可以130了。&lt;/p&gt;
&lt;h3&gt;1.2 三开休闲&lt;/h3&gt;
&lt;p&gt;老角色：金木水&lt;/p&gt;
&lt;h4&gt;人物加点及用途规划&lt;/h4&gt;
&lt;ol&gt;
&lt;li&gt;体木：回血 + 复活 + 对敌中毒&lt;/li&gt;
&lt;li&gt;力水：防御 + 物理输出 + 冰冻控制&lt;/li&gt;
&lt;li&gt;法金：法术输出 + 加攻击力 + 法术封锁&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&amp;lt;h2 id=&quot;2&quot;&amp;gt;2. 日常任务 (轻度游玩)&amp;lt;/h2&amp;gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;参考信息：五雷令 328 元宝 300 点耐久，10 元 3 个共 900 耐久，约够一个角色一周的帮派任务
五开举例：5 角色 x10 元 x4 周 = 200 元
当下的物价(2023-07)，200 元够在奇宝斋买个 130 级左右相当不错的武器了，偶尔还会遇到 160~170 级的角色出售
基本上来说氪金是非常不建议的，倒是建议氪金买&apos;问道币&apos;，用来购买游戏内成品的首饰装备、宠物等
如果一个月有两周左右的时间上线，积累出来的 &lt;strong&gt;荣誉值&lt;/strong&gt; 差不多可以在游戏中的 &apos;工资系统&apos; 中给的银元宝购买：血玲珑、法玲珑、血池、法池、训兽诀等便于日常游玩的道具
荣誉值在&lt;code&gt;ESC&lt;/code&gt;菜单中的每日活跃度奖励中获取，50活跃度、100活跃度分别可获得400点共计800点
每天按最低400点计算，400x30=12000&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a href=&quot;https://img.doracoin.cc/images/2023/07/21/7b3011555cbacf0abda3ce2877c75e5a.png&quot;&gt;工资系统说明截图&lt;/a&gt;
&lt;a href=&quot;https://img.doracoin.cc/images/2023/08/11/421172b8ae70dce249d857eeabfc88e9.png&quot;&gt;各等级工资明细&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;2.1 低保攻略&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;游戏内的工资系统很划算，每个月混到25%工资就够买血/法玲珑了
每日最低50活跃度获取400点荣誉值路线：
两轮仙界神捕(悬赏Boss) 20 + 一轮通天塔 20 + 一轮伏魔任务 10 = 50
仙界神捕20分钟 + 通天塔20分钟 + 一轮附魔10分钟 = 每日50分钟就可混到低保
至于一倍标道的要求，每日神捕任务和通天塔都选择道行奖励即可
400 * 10 = 4000 &amp;gt; 3750(25%工资标准)
每月预计能玩10天就足以达成目标了&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;右上角 &lt;strong&gt;福利&lt;/strong&gt; 领取每日奖励、右下角 &lt;strong&gt;领取&lt;/strong&gt; 领取每周720免费三倍点数&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;大胡子的任务&lt;/strong&gt; 1 轮：
多开队伍一定要记得去天墉城做，几分钟就可做完(友好度提高后，将来会有很多附加福利，例如：交易宝宝可以保留亲密度、友好度战斗触发技能等)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;助人为乐&lt;/strong&gt; 1 轮：
&amp;lt;tag blue&amp;gt;6活跃值&amp;lt;/tag&amp;gt; 一星 自己做约 5 分钟，五开一起做加上来回切换窗口的时间大概也就 7~8 分钟左右，时间上比较划算。
&amp;lt;tag blue&amp;gt;9活跃值&amp;lt;/tag&amp;gt; 二星 五雷令 60 点，自己做约 10 分钟；&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;通天塔&lt;/strong&gt; 3 轮：
&amp;lt;tag blue&amp;gt;20活跃值: 完成一轮挑战，上限50&amp;lt;/tag&amp;gt; 单人刷或五开刷，一次约 20 分钟，现在的版本一天可刷 3 轮，适合五开刷&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;仙界神捕&lt;/strong&gt; 6 轮：
&amp;lt;tag blue&amp;gt;20活跃值上限: 一星难度一场战斗2点&amp;lt;/tag&amp;gt; 防水+法金+体木三开 足够快约 20 分钟 2 轮，现在的版本每天可以刷 6 轮，五开一轮大概 10 分钟左右&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;师门任务&lt;/strong&gt; 1 轮 x10：
&amp;lt;tag blue&amp;gt;20活跃值&amp;lt;/tag&amp;gt; 五雷令 50 点，自己做约 10 分钟；同样的，五开也就约 15 分钟左右，时间上比较划算。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;中州争霸战&lt;/strong&gt; x5：
&amp;lt;tag blue&amp;gt;5活跃值: 一次1点&amp;lt;/tag&amp;gt; ESC菜单进入，做完约 10 分钟；&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;探索世界&lt;/strong&gt; 1 轮 x15：
&amp;lt;tag blue&amp;gt;25活跃值: 一次5点&amp;lt;/tag&amp;gt; ESC菜单进入，做完约 10 分钟；&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;帮派日常挑战&lt;/strong&gt; 3 轮：
大多数帮派都有一段时间不上线就踢人的规定，所以其实为了帮派活跃而天天上线很累的，不建议优先做该任务
五雷令每轮 40 点，共计 120，防水+法金+体木三开，一轮约 10 分钟。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;八仙梦境&lt;/strong&gt; 1 轮：
一星 单人任务，二星打不过，自己做约 20 分钟，又不能多开，综合算下来收益不大&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;每天轻度游玩的话，推荐做前 5 项任务就好.&lt;/p&gt;
&lt;p&gt;活跃值以及时间估算：&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://img.doracoin.cc/images/2023/07/21/17ea5a550bd67188fc7fa6d35af7dab3.png&quot; alt=&quot;活跃值计算表&quot; /&gt;&lt;/p&gt;
&lt;p&gt;此外：每月月初(1 日~6 日，可在本系长老处进行门派新旧角色转换操作，需要一张&lt;code&gt;改头换面卡&lt;/code&gt;)&lt;/p&gt;
&lt;h2&gt;3. 进阶计划（重度游玩）&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;伏魔任务&lt;/strong&gt; 3 轮：
点击 ESC 菜单中的&apos;全民刷道&apos;开始，一轮大概 15 分钟，全局双倍时间、三倍点数均生效，别忘记开启&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;仙人指路&lt;/strong&gt; 3 轮：
点击 ESC 菜单中的&apos;全民升级&apos;开始，一轮大概 10 分钟，全局双倍时间、三倍点数均生效，别忘记开启&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;副本任务&lt;/strong&gt; 2 轮：
二星勉强打得过但时间太久，一星收益最大，多开约 15 分钟左右&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;封神榜&lt;/strong&gt;：约 30 分钟&lt;/li&gt;
&lt;li&gt;阵型修炼&lt;/li&gt;
&lt;li&gt;宠物顿悟、强化、幻化等&lt;/li&gt;
&lt;li&gt;强化娃娃&lt;/li&gt;
&lt;li&gt;坐骑+风灵丸&lt;/li&gt;
&lt;li&gt;。。。&lt;/li&gt;
&lt;/ol&gt;
&lt;hr /&gt;
&lt;h2&gt;4. 角色规划&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;体木（主角色）&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;成长目标：充分发挥：高防、高血量、群体恢复等人形 BOSS 特点&lt;/li&gt;
&lt;li&gt;加点方向：4 体力&lt;/li&gt;
&lt;li&gt;等级期望：预计 140+&lt;/li&gt;
&lt;li&gt;装备搭配：已备好 130 套装，水相性（计划使用到 150）&lt;/li&gt;
&lt;li&gt;宠物携带：目的是为了弥补输出不足，建议携带 [秋棠仙子]，基础满血量成长 120+基础满法攻成长 95，法攻成长被卖家强化到 200+的（参考战力 C 级）&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;力水&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;成长目标：充分发挥群体增益防御特性&lt;/li&gt;
&lt;li&gt;加点方向：3 力量 1 敏捷（输出+出手速度）&lt;/li&gt;
&lt;li&gt;等级期望：预计 140（套装特效挺好看的）&lt;/li&gt;
&lt;li&gt;装备搭配：配备 140 套装，土相性（不含首饰）；应注重鞋子的速度属性&lt;/li&gt;
&lt;li&gt;宠物携带：目的只要血量高+攻击高即可，建议携带：物理[云兽]，满血量成长 110 满物攻成长 100，强化过后两项均达到 170+的；法术[秋棠仙子]，基础满血量成长 120+基础满法攻成长 95，法攻成长被卖家强化到 200+的（参考战力 C 级）&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;法金&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;成长目标：充分发挥群体攻击及增益攻击力特性&lt;/li&gt;
&lt;li&gt;加点方向：4 灵力（暴力法术输出，唯一出路）&lt;/li&gt;
&lt;li&gt;等级期望：预计 140（套装特效也不错）&lt;/li&gt;
&lt;li&gt;装备搭配：配备 140 套装，金相性（不含首饰）；套装成套即可&lt;/li&gt;
&lt;li&gt;宠物携带：目的只要血量高+攻击高即可，建议携带：物理[云兽]，满血量成长 110 满物攻成长 100，强化过后两项均达到 170+的；法术[秋棠仙子]，基础满血量成长 120+基础满法攻成长 95，法攻成长被卖家强化到 200+的（参考战力 C 级）&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;敏火（经典男性角色）&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;成长目标：充分发挥群体增益速度特性&lt;/li&gt;
&lt;li&gt;加点方向：4 敏捷（极致速度）&lt;/li&gt;
&lt;li&gt;等级期望：预计 150（套装特效超好看）&lt;/li&gt;
&lt;li&gt;装备搭配：配备 150 套装，火相性（不含首饰）；应非常注重整体的速度属性&lt;/li&gt;
&lt;li&gt;宠物携带：目的是为了弥补输出不足，同时又对宠物的生存能力有较高要求，所以只要高血量+高输出即可，建议携带：物理[云兽]，满血量成长 110 满物攻成长 100，强化过后两项均达到 170+的；法术[秋棠仙子]，基础满血量成长 120+基础满法攻成长 95，法攻成长被卖家强化到 200+的（参考战力 C 级）&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;h3&gt;4.1 攻击、障碍、辅助技能输出目标分析&lt;/h3&gt;
&lt;h4&gt;金&lt;/h4&gt;
&lt;p&gt;攻击技能、⒌ 法演示，输出选择的目标是，从敌方队伍选择 ⒌ 个速度最快的来挨这几把刀。
障碍技能、⒌ 法演示，输出选择的目标是，敌方谁速度快，谁将被障碍。《有几率》
辅助技能、⒌ 法演示，⒎ 把刀来算，队伍按从高到低的物伤来分配刀，物伤高者能优先得到辅助。&lt;/p&gt;
&lt;h4&gt;木&lt;/h4&gt;
&lt;p&gt;攻击技能、⒌ 法演示，输出选择的目标是，《同金》，谁速度快，谁倒霉。
障碍技能、⒌ 法演示，输出选择的目标是，敌方谁物伤高，就会障碍谁，碍不碍的上？《几率》
辅助技能、⒌ 法演示，⒎ 个心来算，队伍里按血最少到高来分配，血高者，没机会享受到木的辅助。&lt;/p&gt;
&lt;h4&gt;水&lt;/h4&gt;
&lt;p&gt;攻击技能、⒌ 法演示，输出选择的目标是，《同金》，谁速度快，谁倒霉。
障碍技能、⒌ 法演示，输出选择的目标是，敌方谁速度快，谁将被障碍，速度快的有可能吃冰棍哦。
辅助技能、⒌ 法演示，队伍按速度从快到慢来分配，速度快者能优先得到水的辅助。&lt;/p&gt;
&lt;h4&gt;火&lt;/h4&gt;
&lt;p&gt;攻击技能、⒌ 法演示，输出选择的目标是，《同金》，谁速度快，谁倒霉。
障碍技能、⒌ 法演示，按敌方速度从快到慢来分配，谁速度快，谁有可能将被火哄睡。
辅助技能、⒌ 法演示，《同水》，速度快者能优先得到火的辅助。&lt;/p&gt;
&lt;h4&gt;土&lt;/h4&gt;
&lt;p&gt;攻击技能、⒌ 法演示，输出选择的目标是，《同金》，谁速度快，谁倒霉。
障碍技能、⒌ 法演示，按敌方速度从快到慢来分配，敌方速度快者，有可能会被土晕，成叛徒哦。
辅助技能、⒌ 法演示，《同水》，速度快者能优先得到土的闪。&lt;/p&gt;
&lt;h2&gt;5. 宠物培养&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;/posts/asktao-chongwu/&quot;&gt;宠物养成篇&lt;/a&gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;h1&gt;附录&lt;/h1&gt;
&lt;h2&gt;附1. 人物等级标准道行表（从 80 级开始）&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;公式：等级 x 等级 x 等级 x 0.29 / 360&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&amp;lt;details&amp;gt;
&amp;lt;summary&amp;gt;JS计算脚本，输入到浏览器控制台即可快速输出&amp;lt;/summary&amp;gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;function cacu(from, to) {
  let result = &quot;\n&quot;;
  for (let i = from; i &amp;lt;= to; i++) {
    if (i &amp;lt; 100) {
      result += &quot; &quot;;
    }
    result += `${i} : ${((i * i * i * 0.29) / 360).toFixed(2)}\n`;
  }
  console.log(result);
}
cacu(80, 199);
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;lt;/details&amp;gt;&lt;/p&gt;
&lt;p&gt;早在120级年代，那时候我经常翻看游戏内帮助手册，曾在某一条目(好像是门派技能说明)中看到过问道规划的最高等级为180级，&amp;lt;span class=&quot;hint--bottom hint--rounded hint--bounce&quot; aria-label=&quot;问道是2006年发行的&quot;&amp;gt;&amp;lt;b&amp;gt;如今(2023)快要20周年了&amp;lt;/b&amp;gt;&amp;lt;/span&amp;gt;，游戏已经开放到179级，估计后续不会再提升等级了&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;等级&lt;/th&gt;
&lt;th&gt;道行(年)&lt;/th&gt;
&lt;th&gt;等级&lt;/th&gt;
&lt;th&gt;道行(年)&lt;/th&gt;
&lt;th&gt;等级&lt;/th&gt;
&lt;th&gt;道行(年)&lt;/th&gt;
&lt;th&gt;等级&lt;/th&gt;
&lt;th&gt;道行(年)&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;80&lt;/td&gt;
&lt;td&gt;412.44&lt;/td&gt;
&lt;td&gt;110&lt;/td&gt;
&lt;td&gt;1072.19&lt;/td&gt;
&lt;td&gt;140&lt;/td&gt;
&lt;td&gt;2210.44&lt;/td&gt;
&lt;td&gt;170&lt;/td&gt;
&lt;td&gt;3957.69&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;81&lt;/td&gt;
&lt;td&gt;428.11&lt;/td&gt;
&lt;td&gt;111&lt;/td&gt;
&lt;td&gt;1101.70&lt;/td&gt;
&lt;td&gt;141&lt;/td&gt;
&lt;td&gt;2258.15&lt;/td&gt;
&lt;td&gt;171&lt;/td&gt;
&lt;td&gt;4027.94&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;82&lt;/td&gt;
&lt;td&gt;444.16&lt;/td&gt;
&lt;td&gt;112&lt;/td&gt;
&lt;td&gt;1131.75&lt;/td&gt;
&lt;td&gt;142&lt;/td&gt;
&lt;td&gt;2306.53&lt;/td&gt;
&lt;td&gt;172&lt;/td&gt;
&lt;td&gt;4099.02&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;83&lt;/td&gt;
&lt;td&gt;460.61&lt;/td&gt;
&lt;td&gt;113&lt;/td&gt;
&lt;td&gt;1162.33&lt;/td&gt;
&lt;td&gt;143&lt;/td&gt;
&lt;td&gt;2355.61&lt;/td&gt;
&lt;td&gt;173&lt;/td&gt;
&lt;td&gt;4170.93&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;84&lt;/td&gt;
&lt;td&gt;477.46&lt;/td&gt;
&lt;td&gt;114&lt;/td&gt;
&lt;td&gt;1193.47&lt;/td&gt;
&lt;td&gt;144&lt;/td&gt;
&lt;td&gt;2405.37&lt;/td&gt;
&lt;td&gt;174&lt;/td&gt;
&lt;td&gt;4243.68&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;85&lt;/td&gt;
&lt;td&gt;494.71&lt;/td&gt;
&lt;td&gt;115&lt;/td&gt;
&lt;td&gt;1225.15&lt;/td&gt;
&lt;td&gt;145&lt;/td&gt;
&lt;td&gt;2455.83&lt;/td&gt;
&lt;td&gt;175&lt;/td&gt;
&lt;td&gt;4317.27&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;86&lt;/td&gt;
&lt;td&gt;512.38&lt;/td&gt;
&lt;td&gt;116&lt;/td&gt;
&lt;td&gt;1257.39&lt;/td&gt;
&lt;td&gt;146&lt;/td&gt;
&lt;td&gt;2506.99&lt;/td&gt;
&lt;td&gt;176&lt;/td&gt;
&lt;td&gt;4391.70&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;87&lt;/td&gt;
&lt;td&gt;530.46&lt;/td&gt;
&lt;td&gt;117&lt;/td&gt;
&lt;td&gt;1290.19&lt;/td&gt;
&lt;td&gt;147&lt;/td&gt;
&lt;td&gt;2558.86&lt;/td&gt;
&lt;td&gt;177&lt;/td&gt;
&lt;td&gt;4466.99&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;88&lt;/td&gt;
&lt;td&gt;548.96&lt;/td&gt;
&lt;td&gt;118&lt;/td&gt;
&lt;td&gt;1323.55&lt;/td&gt;
&lt;td&gt;148&lt;/td&gt;
&lt;td&gt;2611.44&lt;/td&gt;
&lt;td&gt;178&lt;/td&gt;
&lt;td&gt;4543.13&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;89&lt;/td&gt;
&lt;td&gt;567.89&lt;/td&gt;
&lt;td&gt;119&lt;/td&gt;
&lt;td&gt;1357.49&lt;/td&gt;
&lt;td&gt;149&lt;/td&gt;
&lt;td&gt;2664.73&lt;/td&gt;
&lt;td&gt;179&lt;/td&gt;
&lt;td&gt;4620.13&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;90&lt;/td&gt;
&lt;td&gt;587.25&lt;/td&gt;
&lt;td&gt;120&lt;/td&gt;
&lt;td&gt;1392.00&lt;/td&gt;
&lt;td&gt;150&lt;/td&gt;
&lt;td&gt;2718.74&lt;/td&gt;
&lt;td&gt;180&lt;/td&gt;
&lt;td&gt;4697.99&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;91&lt;/td&gt;
&lt;td&gt;607.04&lt;/td&gt;
&lt;td&gt;121&lt;/td&gt;
&lt;td&gt;1427.09&lt;/td&gt;
&lt;td&gt;151&lt;/td&gt;
&lt;td&gt;2773.48&lt;/td&gt;
&lt;td&gt;181&lt;/td&gt;
&lt;td&gt;4776.73&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;92&lt;/td&gt;
&lt;td&gt;627.28&lt;/td&gt;
&lt;td&gt;122&lt;/td&gt;
&lt;td&gt;1462.77&lt;/td&gt;
&lt;td&gt;152&lt;/td&gt;
&lt;td&gt;2828.95&lt;/td&gt;
&lt;td&gt;182&lt;/td&gt;
&lt;td&gt;4856.34&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;93&lt;/td&gt;
&lt;td&gt;647.95&lt;/td&gt;
&lt;td&gt;123&lt;/td&gt;
&lt;td&gt;1499.03&lt;/td&gt;
&lt;td&gt;153&lt;/td&gt;
&lt;td&gt;2885.15&lt;/td&gt;
&lt;td&gt;183&lt;/td&gt;
&lt;td&gt;4936.83&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;94&lt;/td&gt;
&lt;td&gt;669.08&lt;/td&gt;
&lt;td&gt;124&lt;/td&gt;
&lt;td&gt;1535.89&lt;/td&gt;
&lt;td&gt;154&lt;/td&gt;
&lt;td&gt;2942.10&lt;/td&gt;
&lt;td&gt;184&lt;/td&gt;
&lt;td&gt;5018.21&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;95&lt;/td&gt;
&lt;td&gt;690.66&lt;/td&gt;
&lt;td&gt;125&lt;/td&gt;
&lt;td&gt;1573.35&lt;/td&gt;
&lt;td&gt;155&lt;/td&gt;
&lt;td&gt;2999.78&lt;/td&gt;
&lt;td&gt;185&lt;/td&gt;
&lt;td&gt;5100.47&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;96&lt;/td&gt;
&lt;td&gt;712.70&lt;/td&gt;
&lt;td&gt;126&lt;/td&gt;
&lt;td&gt;1611.41&lt;/td&gt;
&lt;td&gt;156&lt;/td&gt;
&lt;td&gt;3058.22&lt;/td&gt;
&lt;td&gt;186&lt;/td&gt;
&lt;td&gt;5183.63&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;97&lt;/td&gt;
&lt;td&gt;735.21&lt;/td&gt;
&lt;td&gt;127&lt;/td&gt;
&lt;td&gt;1650.09&lt;/td&gt;
&lt;td&gt;157&lt;/td&gt;
&lt;td&gt;3117.41&lt;/td&gt;
&lt;td&gt;187&lt;/td&gt;
&lt;td&gt;5267.69&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;98&lt;/td&gt;
&lt;td&gt;758.18&lt;/td&gt;
&lt;td&gt;128&lt;/td&gt;
&lt;td&gt;1689.37&lt;/td&gt;
&lt;td&gt;158&lt;/td&gt;
&lt;td&gt;3177.36&lt;/td&gt;
&lt;td&gt;188&lt;/td&gt;
&lt;td&gt;5352.65&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;99&lt;/td&gt;
&lt;td&gt;781.63&lt;/td&gt;
&lt;td&gt;129&lt;/td&gt;
&lt;td&gt;1729.28&lt;/td&gt;
&lt;td&gt;159&lt;/td&gt;
&lt;td&gt;3238.07&lt;/td&gt;
&lt;td&gt;189&lt;/td&gt;
&lt;td&gt;5438.52&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;100&lt;/td&gt;
&lt;td&gt;805.56&lt;/td&gt;
&lt;td&gt;130&lt;/td&gt;
&lt;td&gt;1769.81&lt;/td&gt;
&lt;td&gt;160&lt;/td&gt;
&lt;td&gt;3299.55&lt;/td&gt;
&lt;td&gt;190&lt;/td&gt;
&lt;td&gt;5525.30&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;101&lt;/td&gt;
&lt;td&gt;829.96&lt;/td&gt;
&lt;td&gt;131&lt;/td&gt;
&lt;td&gt;1810.96&lt;/td&gt;
&lt;td&gt;161&lt;/td&gt;
&lt;td&gt;3361.80&lt;/td&gt;
&lt;td&gt;191&lt;/td&gt;
&lt;td&gt;5613.00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;102&lt;/td&gt;
&lt;td&gt;854.86&lt;/td&gt;
&lt;td&gt;132&lt;/td&gt;
&lt;td&gt;1852.75&lt;/td&gt;
&lt;td&gt;162&lt;/td&gt;
&lt;td&gt;3424.84&lt;/td&gt;
&lt;td&gt;192&lt;/td&gt;
&lt;td&gt;5701.63&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;103&lt;/td&gt;
&lt;td&gt;880.25&lt;/td&gt;
&lt;td&gt;133&lt;/td&gt;
&lt;td&gt;1895.18&lt;/td&gt;
&lt;td&gt;163&lt;/td&gt;
&lt;td&gt;3488.65&lt;/td&gt;
&lt;td&gt;193&lt;/td&gt;
&lt;td&gt;5791.18&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;104&lt;/td&gt;
&lt;td&gt;906.14&lt;/td&gt;
&lt;td&gt;134&lt;/td&gt;
&lt;td&gt;1938.25&lt;/td&gt;
&lt;td&gt;164&lt;/td&gt;
&lt;td&gt;3553.26&lt;/td&gt;
&lt;td&gt;194&lt;/td&gt;
&lt;td&gt;5881.67&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;105&lt;/td&gt;
&lt;td&gt;932.53&lt;/td&gt;
&lt;td&gt;135&lt;/td&gt;
&lt;td&gt;1981.97&lt;/td&gt;
&lt;td&gt;165&lt;/td&gt;
&lt;td&gt;3618.65&lt;/td&gt;
&lt;td&gt;195&lt;/td&gt;
&lt;td&gt;5973.09&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;106&lt;/td&gt;
&lt;td&gt;959.43&lt;/td&gt;
&lt;td&gt;136&lt;/td&gt;
&lt;td&gt;2026.34&lt;/td&gt;
&lt;td&gt;166&lt;/td&gt;
&lt;td&gt;3684.84&lt;/td&gt;
&lt;td&gt;196&lt;/td&gt;
&lt;td&gt;6065.45&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;107&lt;/td&gt;
&lt;td&gt;986.84&lt;/td&gt;
&lt;td&gt;137&lt;/td&gt;
&lt;td&gt;2071.37&lt;/td&gt;
&lt;td&gt;167&lt;/td&gt;
&lt;td&gt;3751.84&lt;/td&gt;
&lt;td&gt;197&lt;/td&gt;
&lt;td&gt;6158.77&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;108&lt;/td&gt;
&lt;td&gt;1014.77&lt;/td&gt;
&lt;td&gt;138&lt;/td&gt;
&lt;td&gt;2117.06&lt;/td&gt;
&lt;td&gt;168&lt;/td&gt;
&lt;td&gt;3819.64&lt;/td&gt;
&lt;td&gt;198&lt;/td&gt;
&lt;td&gt;6253.03&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;109&lt;/td&gt;
&lt;td&gt;1.43.22&lt;/td&gt;
&lt;td&gt;139&lt;/td&gt;
&lt;td&gt;2163.42&lt;/td&gt;
&lt;td&gt;169&lt;/td&gt;
&lt;td&gt;3888.26&lt;/td&gt;
&lt;td&gt;199&lt;/td&gt;
&lt;td&gt;6348.26&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
</content:encoded></item><item><title>Java jar包后台运行控制脚本Linux+Windows</title><link>https://blog.doracoin.cc/posts/2019/2019-03-10-java-jar%E5%8C%85%E5%90%8E%E5%8F%B0%E8%BF%90%E8%A1%8C%E6%8E%A7%E5%88%B6%E8%84%9A%E6%9C%AClinux-windows/</link><guid isPermaLink="true">https://blog.doracoin.cc/posts/2019/2019-03-10-java-jar%E5%8C%85%E5%90%8E%E5%8F%B0%E8%BF%90%E8%A1%8C%E6%8E%A7%E5%88%B6%E8%84%9A%E6%9C%AClinux-windows/</guid><pubDate>Sun, 10 Mar 2019 14:35:41 GMT</pubDate><content:encoded>&lt;p&gt;...
&amp;lt;!--more--&amp;gt;&lt;/p&gt;
&lt;p&gt;参考文章：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://docs.oracle.com/javase/6/docs/platform/jvmti/jvmti.html#tooloptions&quot;&gt;JVM 参数 JAVA_TOOL_OPTIONS&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.csdn.net/lc11535/article/details/115062921&quot;&gt;设置Java JDK的默认编码为UTF-8&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.csdn.net/csdnliuxin123524/article/details/81303711&quot;&gt;JVM原理最全、清晰、通俗讲解，五天40小时吐血整理&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.csdn.net/m0_54356563/article/details/121141150&quot;&gt;史上最全的JVM配置参数大全&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.cnblogs.com/ysocean/p/11109018.html&quot;&gt;Java虚拟机详解（五）JVM参数（持续更新）&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.csdn.net/u014240299/article/details/102989655&quot;&gt;java -jar启动参数里设置file.encoding编码，解决中文乱码的一堆坑&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.csdn.net/m0_54356563/article/details/121141150&quot;&gt;史上最全的JVM配置参数大全&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.cnblogs.com/zhangmeiyan/p/16824822.html&quot;&gt;找不到或无法加载主类 .encoding=utf-8 解决&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.51cto.com/davidwang456/3085622&quot;&gt;使用-Dspring.profiles.active与--spring.profiles.active区别&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.csdn.net/m0_67266787/article/details/124033785&quot;&gt;SpringBoot激活profiles&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;1. &amp;lt;mark&amp;gt;Linux shell 控制脚本的代码&amp;lt;/mark&amp;gt;&lt;/h3&gt;
&lt;p&gt;{% include_code startjar.sh %}&lt;/p&gt;
&lt;hr /&gt;
&lt;h3&gt;2. &amp;lt;mark&amp;gt;Windows bat 控制脚本的代码&amp;lt;/mark&amp;gt;&lt;/h3&gt;
&lt;p&gt;{% include_code startjar.bat %}&lt;/p&gt;
&lt;h3&gt;3. &amp;lt;mark&amp;gt;Windows bat 控制脚本的代码&amp;lt;/mark&amp;gt;（使用 javaw）&lt;/h3&gt;
&lt;p&gt;使用 javaw 运行jar包，无法获得控制台输出信息&lt;/p&gt;
&lt;p&gt;{% include_code startjarw.bat %}&lt;/p&gt;
</content:encoded></item><item><title>网易云音乐 - 我的2018</title><link>https://blog.doracoin.cc/posts/2019/2019-01-04-my-netease-music-2018/</link><guid isPermaLink="true">https://blog.doracoin.cc/posts/2019/2019-01-04-my-netease-music-2018/</guid><pubDate>Fri, 04 Jan 2019 13:20:00 GMT</pubDate><content:encoded>&lt;p&gt;Nobody cares about your 听歌报告 &amp;lt;!--more--&amp;gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://img.doracoin.cc/images/2019/05/15/eb927d2d6a0cad481dfc7ea045f1e74c.md.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://img.doracoin.cc/images/2019/05/15/d5980de11a46c275a2156c2bc1dad050.md.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://img.doracoin.cc/images/2019/05/15/1e2eb4558131e6b87d5c8cb8c90e6e82.md.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://img.doracoin.cc/images/2019/05/15/d4e56150a4e2fac05ed05b373c2c48aa.md.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://img.doracoin.cc/images/2019/05/15/60ce5a053bf3540146b6a380a7d79436.md.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://img.doracoin.cc/images/2019/05/15/7e090b034a432160ea8d011e11b6cee0.md.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://img.doracoin.cc/images/2019/05/15/62195853b5c510a745449764445481e6.md.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://img.doracoin.cc/images/2019/05/15/5689c2ce6e9b62defba869138915ab78.md.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://img.doracoin.cc/images/2019/05/15/984f218c32b9300dea611c56522818b5.md.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://img.doracoin.cc/images/2019/05/15/5ee44d7708c881f9b0ed7fbd9f2b0e08.md.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://img.doracoin.cc/images/2019/05/15/0cc7f4613e5358692b90bfae25b2a78e.md.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://img.doracoin.cc/images/2019/05/15/410bd6573be7bacaa6b56641ede97e9b.md.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://img.doracoin.cc/images/2019/05/15/312bc41522a17663a5c5791db4ab9406.md.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://img.doracoin.cc/images/2019/05/15/c20c9880fcd1531677225a0877f798cc.md.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://img.doracoin.cc/images/2019/05/15/5ccbfde417bccd6bb5007785808c6b7e.md.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://img.doracoin.cc/images/2019/05/15/ba25d8b7fdd03b243b667e4bb62388bb.md.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
</content:encoded></item><item><title>Linux 修改 rm 命令防止误操作</title><link>https://blog.doracoin.cc/posts/2018/2018-07-18-linux-%E4%BF%AE%E6%94%B9-rm-%E5%91%BD%E4%BB%A4%E9%98%B2%E6%AD%A2%E8%AF%AF%E6%93%8D%E4%BD%9C/</link><guid isPermaLink="true">https://blog.doracoin.cc/posts/2018/2018-07-18-linux-%E4%BF%AE%E6%94%B9-rm-%E5%91%BD%E4%BB%A4%E9%98%B2%E6%AD%A2%E8%AF%AF%E6%93%8D%E4%BD%9C/</guid><pubDate>Wed, 18 Jul 2018 18:02:00 GMT</pubDate><content:encoded>&lt;p&gt;一直以来 &lt;strong&gt;rm&lt;/strong&gt; 就是一个危险的操作，关于这个命令还有不少幽默段子以及真实经历，为了自己的人生不戏剧化，所以我决定对它进行改造改造。&amp;lt;!--more--&amp;gt;&lt;/p&gt;
&lt;p&gt;思路上最简单的就是两种：&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;1.&lt;/strong&gt; 一是修改系统登录用户根目录下的&lt;code&gt;~/.bashrc&lt;/code&gt;文件,这种方式定制性强，只针对单独用户生效。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;2.&lt;/strong&gt; 二是修改&lt;code&gt;/etc/bashrc&lt;/code&gt;文件，这种方式对系统中所有用户有效。&lt;/p&gt;
&lt;p&gt;两种方式的区别仅为&lt;strong&gt;是否所有用户生效&lt;/strong&gt;，所使用的代码是一致的，本文以第二种方式说明。&lt;/p&gt;
&lt;p&gt;其实有很多桌面发行版已经做好了对 &lt;strong&gt;rm&lt;/strong&gt; 命令的限制，比如判读一下删除目录是不是**&lt;code&gt;/&lt;/code&gt;**根目录啥的，所以想到这里就先去网上搜一搜看看有没有轮子，&lt;strong&gt;不重复造轮子可以节约你人生的很多时间&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;于是乎找到了一位网游分享出来的成果，链接在文章底部附上，本文代码笔者略有优化：&lt;/p&gt;
&lt;p&gt;执行以下命令对&lt;code&gt;bashrc&lt;/code&gt;文件进行编辑，建议先备份原文件：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;#备份文件
cp /etc/bashrc /etc/bashrc.bak
#使用vi编辑文件，替代品很多例nano,vim，哪个顺手用哪个即可
vi /etc/bashrc
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;在文件最底部输入如下代码：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# replace &apos;rm&apos; with &apos;saferm&apos;
TRASH_PATH=/.trash
saferm()
{
    if [ ! -d ${TRASH_PATH} ]
    then
        mkdir -p ${TRASH_PATH}
        chmod 777 ${TRASH_PATH}
        if [ $? -ne 0 ]
        then
            echo &quot;Error: &apos;saferm&apos; failed to create path ${TRASH_PATH}&quot;
            echo &quot;If you do it convinced, please use &apos;/bin/rm&apos; to continue.&quot;
            echo &quot;If you want disable &apos;saferm&apos;,please &apos;vi /etc/bashrc&apos; and &apos;source /etc/bashrc&apos; to make it valid.&quot;
        fi
    fi

    local dst=`mktemp -d -p ${TRASH_PATH}`
    local arg=`echo $* | sed &quot;s/\(^-\w\+\)\|\(\s-\w\+\)/ /g&quot;`
    echo &quot;safe-rm ${arg} to ${dst}&quot;
    mv ${arg} ${dst}
}
alias rm=&apos;saferm&apos;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;其中&lt;code&gt;TRASH_PATH&lt;/code&gt;可以指定为你喜欢的目录，退出编辑后执行&lt;code&gt;source&lt;/code&gt;命令来让文件生效：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;source /etc/bashrc
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;同理判断删除路径是否为&lt;code&gt;/&lt;/code&gt;也可以在该方法中判断，建议自己完善，当作学习Linux的课后作业。&lt;/p&gt;
&lt;p&gt;参考链接：https://www.cnblogs.com/aslongas/p/6015454.html&lt;/p&gt;
</content:encoded></item><item><title>《刺客信条》直至目前的所有发行版以及发行日期归纳</title><link>https://blog.doracoin.cc/posts/2018/2018-07-18-%E5%88%BA%E5%AE%A2%E4%BF%A1%E6%9D%A1%E7%9B%B4%E8%87%B3%E7%9B%AE%E5%89%8D%E7%9A%84%E6%89%80%E6%9C%89%E5%8F%91%E8%A1%8C%E7%89%88%E4%BB%A5%E5%8F%8A%E5%8F%91%E8%A1%8C%E6%97%A5%E6%9C%9F%E5%BD%92%E7%BA%B3/</link><guid isPermaLink="true">https://blog.doracoin.cc/posts/2018/2018-07-18-%E5%88%BA%E5%AE%A2%E4%BF%A1%E6%9D%A1%E7%9B%B4%E8%87%B3%E7%9B%AE%E5%89%8D%E7%9A%84%E6%89%80%E6%9C%89%E5%8F%91%E8%A1%8C%E7%89%88%E4%BB%A5%E5%8F%8A%E5%8F%91%E8%A1%8C%E6%97%A5%E6%9C%9F%E5%BD%92%E7%BA%B3/</guid><pubDate>Wed, 18 Jul 2018 15:36:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;本人很喜欢刺客信条，打算将所有刺客信条的发行版全部玩一遍，因此自己整理了一份目录。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&amp;lt;!--more--&amp;gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;注：以下信息全部来源于Steam搜索，以发行日期从旧到新排序&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;部分更新包和DLC相关信息还没有收录，实在是一时半会找不全，文章会慢慢更新&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;文章发布日期：2018-07-18&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;2026-08-31：最近几年游戏时间锐减，奥德赛之后的版本都是云游戏的。个人体验，觉得英灵殿之后的版本都不那么好玩了&lt;/strong&gt;&lt;/p&gt;
&lt;h1&gt;Assassin&apos;s Creed 所有发行版本&lt;/h1&gt;
&lt;h3&gt;Assassin&apos;s Creed™: Director&apos;s Cut Edition「刺客信条」&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://img.doracoin.cc/images/2019/05/15/b62378d713edf7487af56238b08a0ecc.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;ul&gt;
&lt;li&gt;发行时间：2008年4月10日&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;hr /&gt;
&lt;h3&gt;Assassin&apos;s Creed 2 Deluxe Edition「刺客信条 2」&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://img.doracoin.cc/images/2019/05/15/e624c2e63b7c15cd46530e97483c0808.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;ul&gt;
&lt;li&gt;发行时间：2010年3月5日&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;hr /&gt;
&lt;h3&gt;Assassin’s Creed® Brotherhood「刺客信条：兄弟会」&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://img.doracoin.cc/images/2019/05/15/80e1d757f8a7b2f974afac06e9ee94f8.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;ul&gt;
&lt;li&gt;发行时间：2011年3月18日&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;hr /&gt;
&lt;h3&gt;Assassin&apos;s Creed® Revelations「刺客信条：启示录」&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://img.doracoin.cc/images/2019/05/15/aecd0d922bc3e8fdb0e0a998f2d91b50.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;ul&gt;
&lt;li&gt;发行时间：2011年12月1日&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;hr /&gt;
&lt;h3&gt;Assassin’s Creed® III「刺客信条 3」&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://img.doracoin.cc/images/2019/05/15/9059665f4519e11b6fd5697a402e940a.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;ul&gt;
&lt;li&gt;发行时间：2012年11月22日&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;hr /&gt;
&lt;h3&gt;Assassin’s Creed® IV Black Flag™「刺客信条 4：黑旗」&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://img.doracoin.cc/images/2019/05/15/059beb393426c50cb3d4df45fddea601.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;ul&gt;
&lt;li&gt;发行时间：2013年11月29日&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;hr /&gt;
&lt;h3&gt;Assassin’s Creed® Liberation HD「刺客信条：解放」&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://img.doracoin.cc/images/2019/05/15/a85194d3fa72aaebee123846c20418aa.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;ul&gt;
&lt;li&gt;发行时间：2014年1月16日&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;hr /&gt;
&lt;h3&gt;Assassin&apos;s Creed Freedom Cry「刺客信条：自由呐喊」&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://img.doracoin.cc/images/2019/05/15/d3d99f07e5bedb6cb83b4eb0ee73f6c1.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;ul&gt;
&lt;li&gt;发行时间：2014年2月25日&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;hr /&gt;
&lt;h3&gt;Assassin&apos;s Creed® Unity「刺客信条：大革命」&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://img.doracoin.cc/images/2019/05/15/26685261785fc33969200396d65ef051.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;ul&gt;
&lt;li&gt;发行时间：2014年11月13日&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;hr /&gt;
&lt;h3&gt;Assassin’s Creed® Rogue「刺客信条：叛变」&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://img.doracoin.cc/images/2019/05/15/e6d8df7b0398f75ae8f8e8c9aa4d0be8.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;ul&gt;
&lt;li&gt;发行时间：2015年3月10日&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;hr /&gt;
&lt;h3&gt;Assassin’s Creed® Chronicles: China「刺客信条编年史：中国」&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://img.doracoin.cc/images/2019/05/15/9e94831ce5bb0d427e6f2e8111028b84.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;ul&gt;
&lt;li&gt;发行时间：2015年4月22日&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;hr /&gt;
&lt;h3&gt;Assassin&apos;s Creed® Syndicate「刺客信条：枭雄」&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://img.doracoin.cc/images/2019/05/15/97076cc3e52484d163e6aa117e989885.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;ul&gt;
&lt;li&gt;发行时间：2015年11月19日&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;hr /&gt;
&lt;h3&gt;Assassin’s Creed® Chronicles: India「刺客信条编年史：印度」&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://img.doracoin.cc/images/2019/05/15/1ee527e2817bb66df612f54484ca5eff.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;ul&gt;
&lt;li&gt;发行时间：2016年1月12日&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;hr /&gt;
&lt;h3&gt;Assassin’s Creed® Chronicles: Russia「刺客信条编年史：俄罗斯」&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://img.doracoin.cc/images/2019/05/15/3893394ac902606ae2f318e7772cb66b.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;ul&gt;
&lt;li&gt;发行时间：2016年2月9日&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;hr /&gt;
&lt;h3&gt;Assassin&apos;s Creed® Origins「刺客信条：起源」&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://img.doracoin.cc/images/2019/05/15/85a0a896808a3903348ca901b508de1f.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;ul&gt;
&lt;li&gt;发行时间：2017年10月27日&lt;/li&gt;
&lt;li&gt;更新包：2018年2月21日 「Discovery Tour」&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;hr /&gt;
&lt;h3&gt;Assassin&apos;s Creed® Odyssey「刺客信条：奥德赛」&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://img.doracoin.cc/images/2019/05/15/6849b7f3c7d29668c68a11959c318c4e.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;ul&gt;
&lt;li&gt;发行时间：2018年10月5日&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;hr /&gt;
&lt;h3&gt;Assassin&apos;s Creed Valhalla「刺客信条：英灵殿」&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://img.doracoin.cc/images/2023/01/04/1766583fce01f51a42937da907dfc8fc.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;ul&gt;
&lt;li&gt;发行时间：2020年11月10日&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;h3&gt;Assassin’s Creed Mirage「刺客信条：幻景」&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://img.doracoin.cc/images/2023/01/04/a39aa310943f6b699cf6b5cf9722fdb6.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;ul&gt;
&lt;li&gt;发行时间：2023年1月10日&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
</content:encoded></item><item><title>Linuxmint 安装输入法后部分字体变成楷体的解决办法</title><link>https://blog.doracoin.cc/posts/2018/2018-07-05-linuxmint-%E5%AE%89%E8%A3%85%E8%BE%93%E5%85%A5%E6%B3%95%E5%90%8E%E9%83%A8%E5%88%86%E5%AD%97%E4%BD%93%E5%8F%98%E6%88%90%E6%A5%B7%E4%BD%93%E7%9A%84%E8%A7%A3%E5%86%B3%E5%8A%9E%E6%B3%95/</link><guid isPermaLink="true">https://blog.doracoin.cc/posts/2018/2018-07-05-linuxmint-%E5%AE%89%E8%A3%85%E8%BE%93%E5%85%A5%E6%B3%95%E5%90%8E%E9%83%A8%E5%88%86%E5%AD%97%E4%BD%93%E5%8F%98%E6%88%90%E6%A5%B7%E4%BD%93%E7%9A%84%E8%A7%A3%E5%86%B3%E5%8A%9E%E6%B3%95/</guid><pubDate>Thu, 05 Jul 2018 13:00:00 GMT</pubDate><content:encoded>&lt;p&gt;新玩具
&amp;lt;!--more--&amp;gt;&lt;/p&gt;
&lt;p&gt;这两天开始体验了Linuxmint，在折腾输入法的过程中遇到了部分系统字体变成楷体的情况，看起来不清楚不说，而且跟常用的黑体外观比怎么看怎么别扭，于是搜索了一下，发现遇到这种情况的人不少。&lt;/p&gt;
&lt;p&gt;看网友的讨论，解决办法很简单，删除掉系统中的楷体字体就可以了：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# 删除系统字体路径下的`arphic`文件夹
sudo rm -rf /usr/share/fonts/truetype/arphic/

# 但建议还是保留一份，所以可以选择将该文件夹移动到其他路径
mv /usr/share/fonts/truetype/arphic/ /targetpath/
#将{targetpath}替换为你想要移动到的路径即可
&lt;/code&gt;&lt;/pre&gt;
&lt;hr /&gt;
&lt;h4&gt;参考链接&lt;/h4&gt;
&lt;ol&gt;
&lt;li&gt;http://tieba.baidu.com/p/4845852278&lt;/li&gt;
&lt;li&gt;http://www.pc0359.cn/article/jiaocheng/79353.html&lt;/li&gt;
&lt;li&gt;https://bugs.launchpad.net/ubuntukylin/+bug/1227034&lt;/li&gt;
&lt;/ol&gt;
</content:encoded></item><item><title>Atom设置代理</title><link>https://blog.doracoin.cc/posts/2018/2018-05-05-atom%E8%AE%BE%E7%BD%AE%E4%BB%A3%E7%90%86/</link><guid isPermaLink="true">https://blog.doracoin.cc/posts/2018/2018-05-05-atom%E8%AE%BE%E7%BD%AE%E4%BB%A3%E7%90%86/</guid><pubDate>Sat, 05 May 2018 14:26:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;strong&gt;论仔细阅读官方文档的重要性，给自己长个记性。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;!--more--&amp;gt;&lt;/p&gt;
&lt;p&gt;Atom是款GitHub出品的非常好用的文本编辑器，由于最近使用它的频率有所提升，所以开始折腾了它的一些插件，结果国内的网络环境大家应该都了解的，每次安装都因为网络环境失败，所以开始想办法看看能不能设置代理什么的。&lt;/p&gt;
&lt;p&gt;由于最初就没有好好阅读官方的Readme文档，才导致自己乱折腾耗费了好多精力，&lt;/p&gt;
&lt;p&gt;https://github.com/atom/apm#using-a-proxy&lt;/p&gt;
&lt;p&gt;官方明确说明了使用如下指令：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;apm config set https-proxy https://9.0.2.1:0
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;不过代理服务器使用https会有记录遇到&lt;code&gt;SSL 782&lt;/code&gt;问题，这时只要将代理地址的&lt;code&gt;https&lt;/code&gt;的&lt;code&gt;s&lt;/code&gt;去掉即可，或者试试：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# 是否启用ssl
apm config set strict-ssl=false

# 设置软件源为国内的淘宝镜像代理
apm config set registry http://registry.npm.taobao.org
&lt;/code&gt;&lt;/pre&gt;
</content:encoded></item><item><title>Linux 安装VerySync微力同步教程</title><link>https://blog.doracoin.cc/posts/2018/2018-04-13-linux-%E5%AE%89%E8%A3%85verysync%E5%BE%AE%E5%8A%9B%E5%90%8C%E6%AD%A5%E6%95%99%E7%A8%8B/</link><guid isPermaLink="true">https://blog.doracoin.cc/posts/2018/2018-04-13-linux-%E5%AE%89%E8%A3%85verysync%E5%BE%AE%E5%8A%9B%E5%90%8C%E6%AD%A5%E6%95%99%E7%A8%8B/</guid><pubDate>Fri, 13 Apr 2018 18:26:00 GMT</pubDate><content:encoded>&lt;ul&gt;
&lt;li&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;lt;!--more--&amp;gt;&lt;/p&gt;
&lt;h2&gt;1.下载解压&lt;/h2&gt;
&lt;p&gt;下载&lt;a href=&quot;http://verysync.com/&quot;&gt;verysync&lt;/a&gt;，解压到 &lt;code&gt;/home/verysync&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;编辑 &lt;code&gt;/etc/profile&lt;/code&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;vim /etc/profile
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;添加verysync的路径，在最后一行加入如下内容&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;export PATH=&quot;/home/verysync:$PATH&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;保存、退出后执行&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;source /etc/profile
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;2.创建verysync.service服务启动&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;vim /usr/lib/systemd/system/verysync.service
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;添加如下内容&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;[Unit]
Description=verysync
After=network.target

[Service]
Type=forking
ExecStart=/home/verysync/vsserver.sh start
ExecReload=/home/verysync/vsserver.sh restart
ExecStop=/home/verysync/vsserver.sh stop
PrivateTmp=true

[Install]
WantedBy=multi-user.target
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;退出保存，执行&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;systemctl enable verysync
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;3.创建/vsserver.sh启动命令&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;vi /home/verysync/vsserver.sh
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;添加如下内容:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;#!/bin/bash
cd `dirname $0`

# Your program
APP_NAME=verysync
ARGS=&apos;-gui-address 0.0.0.0:8886&apos;
LOG_FILE=./running.log

help(){
    echo &quot;Usage: [start|stop|restart|status]&quot;
    exit 1
}

is_exist(){
  pid=`ps -ef|grep $APP_NAME|grep -v grep|awk &apos;{print $2}&apos;`
  # if progress is exist then return 1,else return 0
  if [ -z &quot;${pid}&quot; ]; then
    return 1
  else
    return 0
  fi
}

start(){
  is_exist
  if [ $? -eq 0 ]; then
    echo &quot;${APP_NAME} is already running. pid=${pid}&quot;
  else
    nohup ./${APP_NAME} ${ARGS} &amp;gt; ${LOG_FILE} 2&amp;gt;&amp;amp;1 &amp;amp;
    echo &quot;${APP_NAME} is start successfully, use &apos;log&apos; option to print more info.&quot;
  fi
}

stop(){
  is_exist
  if [ $? -eq &quot;0&quot; ]; then
    kill -9 $pid
    echo &quot;${APP_NAME} is stoped&quot;
  else
    echo &quot;${APP_NAME} is not running&quot;
  fi
}

status(){
  is_exist
  if [ $? -eq &quot;0&quot; ]; then
    echo &quot;${APP_NAME} is running. Pid is ${pid}&quot;
  else
    echo &quot;${APP_NAME} is NOT running.&quot;
  fi
}

restart(){
  stop
  sleep 2
  start
}

log(){
  tail -n 100 -f ${LOG_FILE}
}

case &quot;$1&quot; in
  &quot;start&quot;)
    start
    ;;
  &quot;stop&quot;)
    stop
    ;;
  &quot;status&quot;)
    status
    ;;
  &quot;restart&quot;)
    restart
    ;;
  &quot;log&quot;)
    log
    ;;
  *)
    help
    ;;
esac
&lt;/code&gt;&lt;/pre&gt;
&lt;h1&gt;附录&lt;/h1&gt;
&lt;p&gt;&lt;strong&gt;解决“/bin/bash^M: bad interpreter: No such file or directory”&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;在执行shell脚本时提示这样的错误主要是由于shell脚本文件是dos格式，即每一行结尾以&lt;code&gt;\r\n&lt;/code&gt;来标识，而unix格式的文件行尾则以&lt;code&gt;\n&lt;/code&gt;来标识。
查看脚本文件是dos格式还是unix格式的几种办法。
（1）&lt;code&gt;cat -A filename&lt;/code&gt;  从显示结果可以判断，dos格式的文件行尾为 &lt;code&gt;^M$&lt;/code&gt; ，unix格式的文件行尾为 &lt;code&gt;$&lt;/code&gt;。
（2）&lt;code&gt;od -t x1 filename&lt;/code&gt; 如果看到输出内容中存在0d 0a的字符，那么文件是dos格式，如果只有0a，则是unix格式。
（3）&lt;code&gt;vi filename&lt;/code&gt; 打开文件，执行 : &lt;code&gt;set ff&lt;/code&gt;，如果文件为dos格式在显示为&lt;code&gt;fileformat=dos&lt;/code&gt;，如果是unxi则显示为&lt;code&gt;fileformat=unix&lt;/code&gt;。&lt;/p&gt;
&lt;p&gt;解决方法：
（1）使用linux命令&lt;code&gt;dos2unix filename&lt;/code&gt;，直接把文件转换为unix格式
（2）使用sed命令&lt;code&gt;sed -i &quot;s/\r//&quot; filename&lt;/code&gt;  或者 &lt;code&gt;sed -i &quot;s/^M//&quot; filename&lt;/code&gt;直接替换结尾符为unix格式
（3）&lt;code&gt;vi filename&lt;/code&gt;打开文件，执行 : &lt;code&gt;set ff=unix&lt;/code&gt; 设置文件为unix，然后执行&lt;code&gt;:wq&lt;/code&gt;，保存成unix格式。&lt;/p&gt;
</content:encoded></item><item><title>ASF Linux挂卡教程</title><link>https://blog.doracoin.cc/posts/2018/2018-02-23-asf-linux%E6%8C%82%E5%8D%A1%E6%95%99%E7%A8%8B/</link><guid isPermaLink="true">https://blog.doracoin.cc/posts/2018/2018-02-23-asf-linux%E6%8C%82%E5%8D%A1%E6%95%99%E7%A8%8B/</guid><pubDate>Fri, 23 Feb 2018 16:16:00 GMT</pubDate><content:encoded>&lt;p&gt;ASF是由C#编写，能同时挂载多个Steam账号的挂卡工具。其不像Idle Master那样：同一时间只能为一个账号挂卡，需要后台运行Steam客户端，需启动额外进程模拟‘正在游戏’状态。ASF不需要后台运行任何Steam客户端，不需要启动额外进程，而且能为不限数目的Steam账号同时挂卡。不仅如此，该软件还能在服务器和其他非桌面电脑上运行，并拥有完整支持Mono的特性，这能让其在Windows、Linux以及OS X等任何支持Mono的操作系统上运行。ASF存在的基础要归功于SteamKit2。&lt;/p&gt;
&lt;p&gt;&amp;lt; --more--&amp;gt;&lt;/p&gt;
&lt;p&gt;从这段官方描述可以看出，ASF是一款“狙击”Idle Master的挂卡工具，除了上述介绍当中提到的几点特征，官方总结的ASF核心特性如下：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;能为任意数目账号进行自动化挂卡。&lt;/li&gt;
&lt;li&gt;无需运行甚至安装Steam官方客户端。&lt;/li&gt;
&lt;li&gt;能确保不违反VAC机制。&lt;/li&gt;
&lt;li&gt;精细的错误汇报机制，能让ASF即便在出现Steam或是网络故障时也能智能延续挂卡。&lt;/li&gt;
&lt;li&gt;可定制的挂卡算法能让挂卡效率达到最高。&lt;/li&gt;
&lt;li&gt;离线挂卡，让你的游戏状态不会误导朋友。&lt;/li&gt;
&lt;li&gt;对于小号的进阶支持，通过简单的Steam聊天窗口就能实现包括激活密钥、接受礼物、接受交易的功能。&lt;/li&gt;
&lt;li&gt;支持Steam最新的安全特性，包括Steam令牌、Steam家长控制以及二步验证。&lt;/li&gt;
&lt;li&gt;独特的ASF 2FA机制，让ASF扮演手机认证器的角色（看需求）。&lt;/li&gt;
&lt;li&gt;集成SteamTradeMatcher，能让ASF帮助你交换重复卡牌合成勋章。&lt;/li&gt;
&lt;li&gt;完整支持Mono，拥有跨系统兼容性，为Windows、Linux以及OS X提供官方支持。&lt;/li&gt;
&lt;li&gt;……此外还有更多惊喜！&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;这些特性有没有让你心动的呢？在我来看，ASF最大的优势在于“掌控”，相比其他挂卡工具单纯的功能，ASF能实现更多可能性。除了强大的多账号联合收割机外，即便是对小号不感冒的玩家，也可以体验到手机端远程查看并控制挂卡进度，挂载指定游戏（比如别TM饿死联机版），远程及批量激活Steam密钥。有点基础的玩家还可将ASF丢到服务器上实现24小时不间断挂卡与控制操作。&lt;/p&gt;
&lt;h3&gt;整个过程分析下来就四步：&lt;/h3&gt;
&lt;p&gt;1.安装.NTE Core依赖，windows为vc++2015运行时，其他系统很可能已经安装&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;如果不清楚是否已经安装.NTE Core依赖，你可以跳过这步直接运行ASF测试是否正常
如果你没有使用特定系统包，还需要安装.NTE Core运行时，请参考文后给出的链接&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;2.下载对应平台的ASF程序包，解压，赋予运行权限（linux）
3.配置&lt;code&gt;config&lt;/code&gt;文件夹中的配置文件(&lt;a href=&quot;https://justarchi.github.io/ArchiSteamFarm/#/&quot;&gt;官方提供的在线配置生成器&lt;/a&gt;)
4.运行&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;下载ASF&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/JustArchi/ArchiSteamFarm/releases/latest&quot;&gt;https://github.com/JustArchi/ArchiSteamFarm/releases/latest&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;在github releases页面下载你对应平台的版本&lt;/p&gt;
&lt;p&gt;如果你基于各种原因选择基本包（ASF-generic.zip），那么还需要安装.NTE Core运行时（文后会给出链接）&lt;/p&gt;
&lt;h3&gt;配置ASF&lt;/h3&gt;
&lt;p&gt;开发者提到可以将V2的config文件拖过去覆盖（楼下已测试可行）
或者使用在线生成器生成&lt;a href=&quot;https://justarchi.github.io/ArchiSteamFarm/#/&quot;&gt;https://justarchi.github.io/ArchiSteamFarm/#/&lt;/a&gt;
注意Protected data for current user密码加密方式只支持windows&lt;/p&gt;
&lt;h3&gt;运行ASF&lt;/h3&gt;
&lt;p&gt;windows直接运行即可；linux需要先给可执行文件赋权&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo chmod +x ./ArchiSteamFarm
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;或&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo chmod 755 ./ArchiSteamFarm
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;这里注意相对路径和绝对路径，然后直接运行即可&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;./ArchiSteamFarm
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;对于windows .NTE Core依赖&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;安装vc++2015运行时即可&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Visual C++ Redistributable for Visual Studio 2015 - x86
Visual C++ Redistributable for Visual Studio 2015 - x64
&lt;/code&gt;&lt;/pre&gt;
&lt;hr /&gt;
&lt;h4&gt;对于linux&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;主流linux发行版本（RHEL/Ubuntu/Fedora/CentOS/SUSE）&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;.NTE Core依赖主要为libunwind8 可以参考这里
&lt;a href=&quot;https://github.com/dotnet/core/blob/master/Documentation/prereqs.md&quot;&gt;https://github.com/dotnet/core/blob/master/Documentation/prereqs.md&lt;/a&gt;
&lt;a href=&quot;https://docs.microsoft.com/zh-cn/dotnet/core/linux-prerequisites?tabs=netcore2x&quot;&gt;https://docs.microsoft.com/zh-cn/dotnet/core/linux-prerequisites?tabs=netcore2x&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;若要安装.NTE Core环境可以参考微软官方教程
&lt;a href=&quot;https://www.microsoft.com/net/learn/get-started/linuxredhat&quot;&gt;https://www.microsoft.com/net/learn/get-started/linuxredhat&lt;/a&gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;h4&gt;树莓派等arm架构系统&lt;/h4&gt;
&lt;p&gt;.NTE Core运行时可以在这里找到
https://github.com/dotnet/core-setup（所有系统的运行时都在这，建议下载2.0.1版）
即https://dotnetcli.blob.core.wind ... st-linux-arm.tar.gz
安装语句&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo apt-get install curl libunwind8 gettext
mkdir -p ~/dotnet &amp;amp;&amp;amp; tar zxf ./dotnet-runtime-latest-linux-arm.tar.gz -C ~/dotnet
export PATH=$PATH:$HOME/dotnet
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;参考文章：&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;https://steamcn.com/t187703-1-1&lt;/li&gt;
&lt;li&gt;https://steamcn.com/t300500-1-1&lt;/li&gt;
&lt;/ul&gt;
</content:encoded></item><item><title>[Wordpress] 使用 UpdraftPlus 插件备份你的博客</title><link>https://blog.doracoin.cc/posts/2018/2018-02-05-wordpress-%E4%BD%BF%E7%94%A8-updraftplus-%E6%8F%92%E4%BB%B6%E5%A4%87%E4%BB%BD%E4%BD%A0%E7%9A%84%E5%8D%9A%E5%AE%A2/</link><guid isPermaLink="true">https://blog.doracoin.cc/posts/2018/2018-02-05-wordpress-%E4%BD%BF%E7%94%A8-updraftplus-%E6%8F%92%E4%BB%B6%E5%A4%87%E4%BB%BD%E4%BD%A0%E7%9A%84%E5%8D%9A%E5%AE%A2/</guid><pubDate>Mon, 05 Feb 2018 18:05:00 GMT</pubDate><content:encoded>&lt;p&gt;这款备份插件支持第三方云、FTP、SFTP、Email、本地备份(文件存放在你的服务器)等形式。&amp;lt;!--more--&amp;gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;[2018-02-05] 我刚刚使用这个插件的时候，使用GoogleDrive备份还需要一个非常麻烦的手动配置过程，今天发现最新版本使用GoogleDrive已经可以通过OAuth进行授权了，本来这里打算把官方的手动配置教程翻译一下的，看来不用了(本文原计划要编写的干货内容就在这部分啊，可惜可惜)。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;建这个小站已经一年多了，但由于工作忙又时间紧，加上这个站主要是给自己看，所以一直处于一种能用就行的状态，没有考虑过好好优化它。时逢春节前真空期，趁着这段时间折腾了一下，首先考虑到的就是数据备份问题，今天就来介绍一款叫做&lt;strong&gt;Updraftplus&lt;/strong&gt;的备份神器。&lt;/p&gt;
&lt;p&gt;这个插件在Wordpress后台插件管理页面就可以搜索到，或者访问: 插件页面&lt;code&gt;https://wordpress.org/plugins/updraftplus/&lt;/code&gt;进行下载安装。&lt;/p&gt;
&lt;p&gt;安装完成后，可以通过 &lt;code&gt;后台管理 -&amp;gt; 设置 -&amp;gt; UpdraftPlus&lt;/code&gt;点击进到插件的设置页面&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://img.doracoin.cc/images/2018/10/11/8e58d1001d6f6a32365512bd22034fa4.jpg&quot; alt=&quot;&quot; title=&quot;UpdraftPlus快捷入口&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://img.doracoin.cc/images/2018/10/11/975b738b1ee158068a3306dc86f94dc3.jpg&quot; alt=&quot;&quot; title=&quot;UpdraftPlus设置页面预览&quot; /&gt;&lt;/p&gt;
&lt;p&gt;插件的设置首页就是几个主要功能的大按钮，很直观。&lt;/p&gt;
&lt;p&gt;点击&lt;code&gt;备份&lt;/code&gt;就会弹出一个选项框，让你选择需要备份的内容&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://img.doracoin.cc/images/2018/10/11/2c3198aeeac1e000b7dcc9447afac82b.jpg&quot; alt=&quot;&quot; title=&quot;Updraft备份操作&quot; /&gt;&lt;/p&gt;
&lt;p&gt;第一项是选择备份数据库；
第二项是多选项，可以对你的博客内容分别进行备份；
第三项，是将你的备份文件同步到第三方存储(如果你已经配置过的话，后面会讲)。备份文件都会保存在你的服务器上，可以进行下载。&lt;/p&gt;
&lt;p&gt;点击&lt;code&gt;还原&lt;/code&gt;按钮就会跳转到已备份的列表中，在该页面可以对已经备份的文档进行管理，如下图所示：&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://img.doracoin.cc/images/2018/10/11/558b98ececcf65682e1e0a592f2c06c1.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;迁移&lt;/code&gt;按钮点击后会弹出一个小窗，里面并没有什么操作，但是给出了一个官方的教程链接，有需要的同学可以去看一看，我没有使用过该功能，这里就不介绍了。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;设置&lt;/code&gt;页面，可以分别选择数据库、网站文件的备份频率，以及保存最近备份的数量，和第三方服务的配置等。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://img.doracoin.cc/images/2018/10/11/4dd9007f05af4df8d0d51235e03b8059.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;这里最简便的方法就是选择Email方式，默认会使用你网站管理员配置的邮箱身份发送一封带有备份附件的邮件，不过当你的网站很大的时候，用这种方式就很不方便了。
还有一种比较简便的方式就是FTP了，只要你配置以下三项就可以往你的FTP服务器传送备份文件了：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;FTP_Server  #服务器地址&lt;/li&gt;
&lt;li&gt;FTP_Username  #登录名&lt;/li&gt;
&lt;li&gt;FTP_Password  #密码&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;这里推荐一个小妙招：可以将你的FTPServer搭建到你的家的电脑，然后通过“动态域名”映射等手段将你的电脑映射到外网(如果你的网络环境是独享IP，那么就不用这么折腾了)，这样备份文件就直接存到你家中的电脑了。&lt;/p&gt;
&lt;p&gt;关于备份时间，免费版是以你最近一次手动备份的操作时间做参考的。
例：如果你今天中午12:00手动备份了一次，而你设置的备份周期为一天一次，那么第二天中午12:00就会自动备份一次。同理每周每月，更明确的定时任务在收费版中可以购买。&lt;/p&gt;
&lt;p&gt;其他的服务我并没有使用，有需求的同学就自己探索探索吧。&lt;/p&gt;
&lt;p&gt;目前看来，这款插件的免费版已经可以满足大部分小型站点的备份需求了，如果有其他需求可以看看付费版提供的功能，或者看看文末官方给出的&lt;code&gt;同类型插件功能比较&lt;/code&gt;的文章。&lt;/p&gt;
&lt;p&gt;最后附上备份效果。
&lt;img src=&quot;https://img.doracoin.cc/images/2018/10/11/3854b8e8df1f7d5fb74c75217981c998.jpg&quot; alt=&quot;&quot; title=&quot;UpdraftPlus 备份邮件通知&quot; /&gt;&lt;/p&gt;
&lt;p&gt;这次就先记录这些吧。&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;&lt;a href=&quot;http://updraftplus.com/support/configuring-google-drive-api-access-in-updraftplus/&quot;&gt;官方：DraftPlus设置GoogleDrive指南&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://updraftplus.com/wordpress-backup-plugin-comparison/&quot;&gt;官方：其他相似插件比较&lt;/a&gt;&lt;/p&gt;
</content:encoded></item><item><title>申请msn.com、live.com、live.cn等后缀的微软邮箱</title><link>https://blog.doracoin.cc/posts/2018/2018-01-24-%E7%94%B3%E8%AF%B7msn-comlive-comlive-cn%E7%AD%89%E5%90%8E%E7%BC%80%E7%9A%84%E5%BE%AE%E8%BD%AF%E9%82%AE%E7%AE%B1/</link><guid isPermaLink="true">https://blog.doracoin.cc/posts/2018/2018-01-24-%E7%94%B3%E8%AF%B7msn-comlive-comlive-cn%E7%AD%89%E5%90%8E%E7%BC%80%E7%9A%84%E5%BE%AE%E8%BD%AF%E9%82%AE%E7%AE%B1/</guid><pubDate>Wed, 24 Jan 2018 19:03:26 GMT</pubDate><content:encoded>&lt;p&gt;2021-10-17 更新: 方法已失效，但文章内容仍可作为技术学习使用。&lt;/p&gt;
&lt;p&gt;本文教你通过控制台输入脚本的方式更改微软的邮箱后缀。文章记录于&lt;strong&gt;2018-01-24&lt;/strong&gt;，文中提到的技术手段具有时效性。
&amp;lt;!--more--&amp;gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;说明：&lt;code&gt;live&lt;/code&gt;和&lt;code&gt;msn&lt;/code&gt;后缀的邮箱貌似只有早期才能注册到，现在新注册的邮箱只能选择&lt;code&gt;hotmail&lt;/code&gt;和&lt;code&gt;outlook&lt;/code&gt;。
我的live邮箱是好多年前注册的，当时并没有觉得怎么样，后来发现这个后缀不能注册了而网上貌似挺多人还喜欢这个后缀的，心里这个满足啊~不过一时兴起还是去搜了搜有没有什么解决办法，于是有了这篇文章。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;1.打开微软账户登录页面：&amp;lt;a href=&quot;https://account.microsoft.com/&quot; target=&quot;_blank&quot;&amp;gt;https://account.microsoft.com/&amp;lt;/a&amp;gt;&lt;/p&gt;
&lt;p&gt;2.登录你的微软账号，如果没有，那就注册一个&lt;/p&gt;
&lt;p&gt;3.登录成功后直接访问：&amp;lt;a href=&quot;https://account.live.com/AddAssocId&quot;&amp;gt;https://account.live.com/AddAssocId&amp;lt;/a&amp;gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;别名管理页面：&lt;a href=&quot;https://account.live.com/names/Manage&quot;&gt;https://account.live.com/names/Manage&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;4.进入这个页面后，按&lt;code&gt;F12&lt;/code&gt;打开调试工具，切换到控制台标签页，粘贴以下代码：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;var sub = window.prompt(&apos;输入域名: live.com,msn.com,live.cn等等\r\n更多后缀请访问：http://51.ruyo.net/p/3194.html\r\n&apos;,&apos;live.com&apos;);
if (sub) {
    document.getElementById(&quot;SingleDomain&quot;).value = sub;
    document.getElementById(&quot;idSingleDomain&quot;).innerText = &quot;@&quot;+sub;
};
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;img src=&quot;https://img.doracoin.cc/images/2018/10/11/4951dc9fabe67d7e7ac34c1cc057f1f9.jpg&quot; alt=&quot;4951dc9fabe67d7e7ac34c1cc057f1f9.jpg&quot; /&gt;&lt;/p&gt;
&lt;p&gt;5.按回车输入，会弹出如下弹窗&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://img.doracoin.cc/images/2018/10/11/98c8fd9d421e57a716f2c37cf3a724ba.jpg&quot; alt=&quot;98c8fd9d421e57a716f2c37cf3a724ba.jpg&quot; /&gt;&lt;/p&gt;
&lt;p&gt;6.中国区支持的域名有：&lt;code&gt;live.com&lt;/code&gt;, &lt;code&gt;msn.com&lt;/code&gt;, &lt;code&gt;live.cn&lt;/code&gt;，更多域名的支持请访问弹窗中的链接。这一步点击&quot;确认&quot;，输入框右边的&lt;code&gt;@outlook.com&lt;/code&gt;就会被替换成你想要的后缀了&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://img.doracoin.cc/images/2018/10/11/a6d714756ef2df499267b4a0fc307aa4.jpg&quot; alt=&quot;a6d714756ef2df499267b4a0fc307aa4.jpg&quot; /&gt;&lt;/p&gt;
&lt;p&gt;7.接下来在输入框填入你要用的用户名点击“添加别名”提交就可以了。&lt;/p&gt;
&lt;p&gt;**注：**我在测试过程中发现第一次提交时会提示“该别名已经绑定”的弹窗提示，关闭弹窗再提交一次就成功了，原因我没有深究，因为我已经沉浸在后缀拿到手的喜悦中了~&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;2018年8月15日 15:35更新：突然这个方法不好用了&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;strong&gt;参考文章&lt;/strong&gt;
&lt;a href=&quot;http://51.ruyo.net/1327.html&quot;&gt;如何申请msn.com、live.com、live.cn等后缀邮箱&lt;/a&gt;
&lt;a href=&quot;http://51.ruyo.net/3194.html&quot;&gt;微软邮箱后缀一网打尽&lt;/a&gt;
&lt;a href=&quot;https://www.chiser.cc/312.html&quot;&gt;注册微软MSN/LIVE邮箱&lt;/a&gt;&lt;/p&gt;
</content:encoded></item><item><title>网易云音乐 - 我的2017</title><link>https://blog.doracoin.cc/posts/2018/2018-01-02-my-netease-music-2017/</link><guid isPermaLink="true">https://blog.doracoin.cc/posts/2018/2018-01-02-my-netease-music-2017/</guid><pubDate>Tue, 02 Jan 2018 11:28:10 GMT</pubDate><content:encoded>&lt;p&gt;Nobody cares about your 听歌报告 &amp;lt;!--more--&amp;gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;2017年过去了，本想自己写年终总结来着，由于写了半年的工作文档，实在是不想再写了，就这么拖延着。在以为自己这一年的总结就要错过的时候，&lt;a href=&quot;https://music.163.com&quot;&gt;网易云音乐&lt;/a&gt;发来了温暖的慰问，我爱网易云音乐~~~&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;img src=&quot;https://img.doracoin.cc/images/2019/05/15/18f5f2df380065a3736bcb6044a44d4a.md.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://img.doracoin.cc/images/2019/05/15/3a3358536e893b544c8e74b4d1b8dc82.md.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://img.doracoin.cc/images/2019/05/15/d3d1ba3a65e6dbaa3793a7214dee5e4c.md.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://img.doracoin.cc/images/2019/05/15/8d54d64057ec9358bff06ed88b20b5e3.md.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://img.doracoin.cc/images/2019/05/15/ea4b8eb7a373de48b9190b07b17ca5e4.md.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://img.doracoin.cc/images/2019/05/15/a1e1386f4de66b982eaaaccfce9ca144.md.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://img.doracoin.cc/images/2019/05/15/a529784d6a5c527e09a54ae3883687a9.md.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://img.doracoin.cc/images/2019/05/15/8bc0b5640f30c23c5b49501bd11cfee5.md.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://img.doracoin.cc/images/2019/05/15/06712315a005bd1a939a9c10345ba535.md.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://img.doracoin.cc/images/2019/05/15/07c3172f580f64cab6b298cbaf81b8c7.md.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://img.doracoin.cc/images/2019/05/15/abf23ec332fda196445fec42d3982c0d.md.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://img.doracoin.cc/images/2019/05/15/01dac3eaf3756648ee1cee05943a8b3a.md.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://img.doracoin.cc/images/2019/05/15/edb166e3c8841e32f0d084fd3b40d662.md.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;看看你一年的音乐历程吧(移动端打开) → &lt;strong&gt;&lt;a href=&quot;http://music.163.com/nact/year2017_37?uid=8FBF7A3EAC62410017265EA763A5E33C&amp;amp;from=timeline&quot;&gt;2017, 我的网易云音乐听歌日记&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
</content:encoded></item><item><title>nginx配置location总结及rewrite规则写法</title><link>https://blog.doracoin.cc/posts/2017/2017-12-27-nginx%E9%85%8D%E7%BD%AElocation%E6%80%BB%E7%BB%93%E5%8F%8Arewrite%E8%A7%84%E5%88%99%E5%86%99%E6%B3%95/</link><guid isPermaLink="true">https://blog.doracoin.cc/posts/2017/2017-12-27-nginx%E9%85%8D%E7%BD%AElocation%E6%80%BB%E7%BB%93%E5%8F%8Arewrite%E8%A7%84%E5%88%99%E5%86%99%E6%B3%95/</guid><pubDate>Wed, 27 Dec 2017 15:56:42 GMT</pubDate><content:encoded>&lt;h1&gt;1. location正则写法&lt;/h1&gt;
&lt;p&gt;&lt;strong&gt;一个示例&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;location  = / {
  # 精确匹配 / ，主机名后面不能带任何字符串
  [ configuration A ] 
}

location  / {
  # 因为所有的地址都以 / 开头，所以这条规则将匹配到所有请求
  # 但是正则和最长字符串会优先匹配
  [ configuration B ] 
}

location /documents/ {
  # 匹配任何以 /documents/ 开头的地址，匹配符合以后，还要继续往下搜索
  # 只有后面的正则表达式没有匹配到时，这一条才会采用这一条
  [ configuration C ] 
}

location ~ /documents/Abc {
  # 匹配任何以 /documents/ 开头的地址，匹配符合以后，还要继续往下搜索
  # 只有后面的正则表达式没有匹配到时，这一条才会采用这一条
  [ configuration CC ] 
}

location ^~ /images/ {
  # 匹配任何以 /images/ 开头的地址，匹配符合以后，停止往下搜索正则，采用这一条。
  [ configuration D ] 
}

location ~* \.(gif|jpg|jpeg)$ {
  # 匹配所有以 gif,jpg或jpeg 结尾的请求
  # 然而，所有请求 /images/ 下的图片会被 config D 处理，因为 ^~ 到达不了这一条正则
  [ configuration E ] 
}

location /images/ {
  # 字符匹配到 /images/，继续往下，会发现 ^~ 存在
  [ configuration F ] 
}

location /images/abc {
  # 最长字符匹配到 /images/abc，继续往下，会发现 ^~ 存在
  # F与G的放置顺序是没有关系的
  [ configuration G ] 
}

location ~ /images/abc/ {
  # 只有去掉 config D 才有效：先最长匹配 config G 开头的地址，继续往下搜索，匹配到这一条正则，采用
  [ configuration H ] 
}

location ~* /js/.*/\.js

&lt;/code&gt;&lt;/pre&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;=&lt;/code&gt; 开头表示精确匹配
如 A 中只匹配根目录结尾的请求，后面不能带任何字符串。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;^~&lt;/code&gt; 开头表示uri以某个常规字符串开头，不是正则匹配&lt;/li&gt;
&lt;li&gt;&lt;code&gt;~&lt;/code&gt; 开头表示区分大小写的正则匹配;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;~*&lt;/code&gt; 开头表示不区分大小写的正则匹配&lt;/li&gt;
&lt;li&gt;&lt;code&gt;/&lt;/code&gt; 通用匹配, 如果没有其它匹配,任何请求都会匹配到&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;顺序 or优先级：
(location =) &amp;gt; (location 完整路径) &amp;gt; (location ^~ 路径) &amp;gt; (location ~,~* 正则顺序) &amp;gt; (location 部分起始路径) &amp;gt; (/)&lt;/p&gt;
&lt;p&gt;上面的匹配结果
按照上面的location写法，以下的匹配示例成立：&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;语法&lt;/th&gt;
&lt;th&gt;说明&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;/ -&amp;gt; config A&lt;/td&gt;
&lt;td&gt;精确完全匹配，即使/index.html也匹配不了&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;/downloads/download.html -&amp;gt; config B&lt;/td&gt;
&lt;td&gt;匹配B以后，往下没有任何匹配，采用B&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;/images/1.gif -&amp;gt; configuration D&lt;/td&gt;
&lt;td&gt;匹配到F，往下匹配到D，停止往下&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;/images/abc/def -&amp;gt; config D&lt;/td&gt;
&lt;td&gt;最长匹配到G，往下匹配D，停止往下&amp;lt;br /&amp;gt;你可以看到 任何以/images/开头的都会匹配到D并停止，FG写在这里是没有任何意义的，H是永远轮不到的，这里只是为了说明匹配顺序&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;/documents/document.html -&amp;gt; config C&lt;/td&gt;
&lt;td&gt;匹配到C，往下没有任何匹配，采用C&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;/documents/1.jpg -&amp;gt; configuration E&lt;/td&gt;
&lt;td&gt;匹配到C，往下正则匹配到E&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;/documents/Abc.jpg -&amp;gt; config CC&lt;/td&gt;
&lt;td&gt;最长匹配到C，往下正则顺序匹配到CC，不会往下到E&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2&gt;实际使用建议&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;所以实际使用中，个人觉得至少有三个匹配规则定义，如下：
#直接匹配网站根，通过域名访问网站首页比较频繁，使用这个会加速处理，官网如是说。
#这里是直接转发给后端应用服务器了，也可以是一个静态首页
# 第一个必选规则
location = / {
    proxy_pass http://tomcat:8080/index
}
# 第二个必选规则是处理静态文件请求，这是nginx作为http服务器的强项
# 有两种配置模式，目录匹配或后缀匹配,任选其一或搭配使用
location ^~ /static/ {
    root /webroot/static/;
}
location ~* \.(gif|jpg|jpeg|png|css|js|ico)$ {
    root /webroot/res/;
}
#第三个规则就是通用规则，用来转发动态请求到后端应用服务器
#非静态文件请求就默认是动态请求，自己根据实际把握
#毕竟目前的一些框架的流行，带.php,.jsp后缀的情况很少了
location / {
    proxy_pass http://tomcat:8080/
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;参考链接：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;http://tengine.taobao.org/book/chapter_02.html&lt;/li&gt;
&lt;li&gt;http://nginx.org/en/docs/http/ngx_http_rewrite_module.html&lt;/li&gt;
&lt;/ul&gt;
&lt;h1&gt;2. Rewrite规则&lt;/h1&gt;
&lt;p&gt;ewrite功能就是，使用nginx提供的全局变量或自己设置的变量，结合正则表达式和标志位实现url重写以及重定向。rewrite只能放在server{},location{},if{}中，并且只能对域名后边的除去传递的参数外的字符串起作用，例如 http://seanlook.com/a/we/index.php?id=1&amp;amp;u=str 只对/a/we/index.php重写。语法rewrite regex replacement [flag];&lt;/p&gt;
&lt;p&gt;如果相对域名或参数字符串起作用，可以使用全局变量匹配，也可以使用proxy_pass反向代理。&lt;/p&gt;
&lt;p&gt;表明看rewrite和location功能有点像，都能实现跳转，主要区别在于rewrite是在同一域名内更改获取资源的路径，而location是对一类路径做控制访问或反向代理，可以proxy_pass到其他机器。很多情况下rewrite也会写在location里，它们的执行顺序是：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;执行server块的rewrite指令&lt;/li&gt;
&lt;li&gt;执行location匹配&lt;/li&gt;
&lt;li&gt;执行选定的location中的rewrite指令&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;如果其中某步URI被重写，则重新循环执行1-3，直到找到真实存在的文件；循环超过10次，则返回500 Internal Server Error错误。&lt;/p&gt;
&lt;h2&gt;2.1 flag标志位&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;last&lt;/code&gt; : 相当于Apache的[L]标记，表示完成rewrite&lt;/li&gt;
&lt;li&gt;&lt;code&gt;break&lt;/code&gt; : 停止执行当前虚拟主机的后续rewrite指令集&lt;/li&gt;
&lt;li&gt;&lt;code&gt;redirect&lt;/code&gt; : 返回302临时重定向，地址栏会显示跳转后的地址&lt;/li&gt;
&lt;li&gt;&lt;code&gt;permanent&lt;/code&gt; : 返回301永久重定向，地址栏会显示跳转后的地址&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;因为301和302不能简单的只返回状态码，还必须有重定向的URL，这就是return指令无法返回301,302的原因了。这里 last 和 break 区别有点难以理解：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;last一般写在server和if中，而break一般使用在location中&lt;/li&gt;
&lt;li&gt;last不终止重写后的url匹配，即新的url会再从server走一遍匹配流程，而break终止重写后的匹配&lt;/li&gt;
&lt;li&gt;break和last都能组织继续执行后面的rewrite指令&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;2.2 if 指令与全局变量&lt;/h2&gt;
&lt;h4&gt;if判断指令&lt;/h4&gt;
&lt;p&gt;语法为 &lt;code&gt;if(condition){...}&lt;/code&gt; ，对给定的条件condition进行判断。如果为真，大括号内的rewrite指令将被执行，if条件(conditon)可以是如下任何内容：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;当表达式只是一个变量时，如果值为空或任何以0开头的字符串都会当做false&lt;/li&gt;
&lt;li&gt;直接比较变量和内容时，使用 &lt;code&gt;=&lt;/code&gt; 或 &lt;code&gt;!=&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;~&lt;/code&gt; 正则表达式匹配， &lt;code&gt;~*&lt;/code&gt; 不区分大小写的匹配， &lt;code&gt;!~&lt;/code&gt; 区分大小写的不匹配&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;-f&lt;/code&gt; 和 &lt;code&gt;!-f&lt;/code&gt; 用来判断是否存在文件&lt;/strong&gt;
&lt;strong&gt;&lt;code&gt;-d&lt;/code&gt; 和 &lt;code&gt;!-d&lt;/code&gt; 用来判断是否存在目录&lt;/strong&gt;
&lt;strong&gt;&lt;code&gt;-e&lt;/code&gt; 和 &lt;code&gt;!-e&lt;/code&gt; 用来判断是否存在文件或目录&lt;/strong&gt;
&lt;strong&gt;&lt;code&gt;-x&lt;/code&gt; 和 &lt;code&gt;!-x&lt;/code&gt; 用来判断文件是否可执行&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;例如：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;//如果UA包含&quot;MSIE&quot;，rewrite请求到/msid/目录下
if ($http_user_agent ~ MSIE) {
    rewrite ^(.*)$ /msie/$1 break;
}

//如果cookie匹配正则，设置变量$id等于正则引用部分
if ($http_cookie ~* &quot;id=([^;]+)(?:;|$)&quot;) {
    set $id $1;
}

//如果提交方法为POST，则返回状态405（Method not allowed）。return不能返回301,302
if ($request_method = POST) {
    return 405;
}

//限速，$slow可以通过 set 指令设置
if ($slow) {
    limit_rate 10k;
}

//如果请求的文件名不存在，则反向代理到localhost 。这里的break也是停止rewrite检查
if (!-f $request_filename){
    break;
    proxy_pass  http://127.0.0.1;
}

//如果query string中包含&quot;post=140&quot;，永久重定向到example.com
if ($args ~ post=140){
    rewrite ^ http://example.com/ permanent;
}

//防盗链
location ~* \.(gif|jpg|png|swf|flv)$ {
    valid_referers none blocked www.jefflei.com www.leizhenfang.com;
    if ($invalid_referer) {
        return 404;
    }
}
&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;全局变量&lt;/h4&gt;
&lt;p&gt;下面是可以用作if判断的全局变量&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;$args&lt;/code&gt; ： #这个变量等于请求行中的参数，同$query_string&lt;/li&gt;
&lt;li&gt;&lt;code&gt;$content_length&lt;/code&gt; ： 请求头中的Content-length字段。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;$content_type&lt;/code&gt; ： 请求头中的Content-Type字段。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;$document_root&lt;/code&gt; ： 当前请求在root指令中指定的值。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;$host&lt;/code&gt; ： 请求主机头字段，否则为服务器名称。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;$http_user_agent&lt;/code&gt; ： 客户端agent信息&lt;/li&gt;
&lt;li&gt;&lt;code&gt;$http_cookie&lt;/code&gt; ： 客户端cookie信息&lt;/li&gt;
&lt;li&gt;&lt;code&gt;$limit_rate&lt;/code&gt; ： 这个变量可以限制连接速率。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;$request_method&lt;/code&gt; ： 客户端请求的动作，通常为GET或POST。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;$remote_addr&lt;/code&gt; ： 客户端的IP地址。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;$remote_port&lt;/code&gt; ： 客户端的端口。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;$remote_user&lt;/code&gt; ： 已经经过Auth Basic Module验证的用户名。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;$request_filename&lt;/code&gt; ： 当前请求的文件路径，由root或alias指令与URI请求生成。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;$scheme&lt;/code&gt; ： HTTP方法（如http，https）。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;$server_protocol&lt;/code&gt; ： 请求使用的协议，通常是HTTP/1.0或HTTP/1.1。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;$server_addr&lt;/code&gt; ： 服务器地址，在完成一次系统调用后可以确定这个值。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;$server_name&lt;/code&gt; ： 服务器名称。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;$server_port&lt;/code&gt; ： 请求到达服务器的端口号。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;$request_uri&lt;/code&gt; ： 包含请求参数的原始URI，不包含主机名，如：”/foo/bar.php?arg=baz”。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;$uri&lt;/code&gt; ： 不带请求参数的当前URI，$uri不包含主机名，如”/foo/bar.html”。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;$document_uri&lt;/code&gt; ： 与$uri相同。&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;p&gt;例：&lt;code&gt;http://localhost:88/test1/test2/test.php?arg=test&lt;/code&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;$host = &lt;code&gt;localhost&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;$server_port = &lt;code&gt;88&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;$request_uri = &lt;code&gt;/test1/test2/test.php?arg=test&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;$document_uri = &lt;code&gt;/test1/test2/test.php&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;$document_root = &lt;code&gt;/var/www/html&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;$request_filename = &lt;code&gt;/var/www/html/test1/test2/test.php&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;2.3 常用正则&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;.&lt;/code&gt; ： 匹配除换行符以外的任意字符&lt;/li&gt;
&lt;li&gt;&lt;code&gt;?&lt;/code&gt; ： 重复0次或1次&lt;/li&gt;
&lt;li&gt;&lt;code&gt;+&lt;/code&gt; ： 重复1次或更多次&lt;/li&gt;
&lt;li&gt;&lt;code&gt;*&lt;/code&gt; ： 重复0次或更多次&lt;/li&gt;
&lt;li&gt;&lt;code&gt;\d&lt;/code&gt; ：匹配数字&lt;/li&gt;
&lt;li&gt;&lt;code&gt;^&lt;/code&gt; ： 匹配字符串的开始&lt;/li&gt;
&lt;li&gt;&lt;code&gt;$&lt;/code&gt; ： 匹配字符串的介绍&lt;/li&gt;
&lt;li&gt;&lt;code&gt;{n}&lt;/code&gt; ： 重复n次&lt;/li&gt;
&lt;li&gt;&lt;code&gt;{n,}&lt;/code&gt; ： 重复n次或更多次&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[c]&lt;/code&gt; ： 匹配单个字符c&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[a-z]&lt;/code&gt; ： 匹配a-z小写字母的任意一个&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;小括号 &lt;code&gt;()&lt;/code&gt; 之间匹配的内容，可以在后面通过 &lt;code&gt;$1&lt;/code&gt; 来引用， &lt;code&gt;$2&lt;/code&gt; 表示的是前面第二个 &lt;code&gt;()&lt;/code&gt; 里的内容。正则里面容易让人困惑的是 &lt;code&gt;\&lt;/code&gt; 转义特殊字符。&lt;/p&gt;
&lt;h2&gt;2.4 rewrite实例&lt;/h2&gt;
&lt;p&gt;例1：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;http {
    # 定义image日志格式
    log_format imagelog &apos;[$time_local] &apos; $image_file &apos; &apos; $image_type &apos; &apos; $body_bytes_sent &apos; &apos; $status;
    # 开启重写日志
    rewrite_log on;
    server {
        root /home/www;
        location / {
            # 重写规则信息
            error_log logs/rewrite.log notice;
            # 注意这里要用‘’单引号引起来，避免{}
            rewrite &apos;^/images/([a-z]{2})/([a-z0-9]{5})/(.*)\.(png|jpg|gif)$&apos; /data?file=$3.$4;
            # 注意不能在上面这条规则后面加上“last”参数，否则下面的set指令不会执行
            set $image_file $3;
            set $image_type $4;
        }
        location /data {
            # 指定针对图片的日志格式，来分析图片类型和大小
            access_log logs/images.log mian;
            root /data/images;
            # 应用前面定义的变量。判断首先文件在不在，不在再判断目录在不在，如果还不在就跳转到最后一个url里
            try_files /$arg_file /image404.html;
        }
        location = /image404.html {
            # 图片不存在返回特定的信息
            return 404 &quot;image not found\n&quot;;
        }
    }
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;对形如 &lt;code&gt;/images/ef/uh7b3/test.png&lt;/code&gt; 的请求，重写到 &lt;code&gt;/data?file=test.png&lt;/code&gt;，于是匹配到 &lt;code&gt;location /data&lt;/code&gt; ，先看 &lt;code&gt;/data/images/test.png&lt;/code&gt; 文件存不存在，如果存在则正常响应，如果不存在则重写tryfiles到新的image404 location，直接返回404状态码。&lt;/p&gt;
&lt;p&gt;例2：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;rewrite ^/images/(.*)_(\d+)x(\d+)\.(png|jpg|gif)$ /resizer/$1.$4?width=$2&amp;amp;height=$3? last;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;对形如 &lt;code&gt;/images/bla_500x400.jpg&lt;/code&gt; 的文件请求，重写到 &lt;code&gt;/resizer/bla.jpg?width=500&amp;amp;height=400&lt;/code&gt; 地址，并会继续尝试匹配location。&lt;/p&gt;
&lt;p&gt;例3：&lt;/p&gt;
&lt;p&gt;见 &lt;strong&gt;&lt;a href=&quot;http://seanlook.com/2015/05/28/nginx-ssl&quot;&gt;ssl部分页面加密&lt;/a&gt;&lt;/strong&gt; 。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;参考&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;http://www.nginx.cn/216.html&lt;/li&gt;
&lt;li&gt;http://www.ttlsa.com/nginx/nginx-rewriting-rules-guide/&lt;/li&gt;
&lt;li&gt;http://fantefei.blog.51cto.com/2229719/919431&lt;/li&gt;
&lt;/ul&gt;
</content:encoded></item><item><title>申请 Let&apos;s Encrypt 证书 为你的网站开启原谅锁</title><link>https://blog.doracoin.cc/posts/2017/2017-11-30-%E7%94%B3%E8%AF%B7-let-s-encrypt-%E8%AF%81%E4%B9%A6-%E4%B8%BA%E4%BD%A0%E7%9A%84%E7%BD%91%E7%AB%99%E5%BC%80%E5%90%AF%E5%8E%9F%E8%B0%85%E9%94%81/</link><guid isPermaLink="true">https://blog.doracoin.cc/posts/2017/2017-11-30-%E7%94%B3%E8%AF%B7-let-s-encrypt-%E8%AF%81%E4%B9%A6-%E4%B8%BA%E4%BD%A0%E7%9A%84%E7%BD%91%E7%AB%99%E5%BC%80%E5%90%AF%E5%8E%9F%E8%B0%85%E9%94%81/</guid><pubDate>Thu, 30 Nov 2017 16:23:00 GMT</pubDate><content:encoded>&lt;p&gt;原谅锁就是浏览器地址栏中，对Https的网站进行一个绿色 “安全锁” 的提示，对于Https不了解的同学请自行搜索引擎。&lt;/p&gt;
&lt;p&gt;&amp;lt;!--more--&amp;gt;&lt;/p&gt;
&lt;p&gt;2026-08-31：后来大概在2018年下半年，https已经普及，各个主流浏览器逐渐将该功能去掉了。&lt;/p&gt;
&lt;p&gt;参考文章：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;http://www.laozuo.org/7676.html&lt;/li&gt;
&lt;li&gt;https://segmentfault.com/a/1190000011224813&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;注意：&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;文章中涉及到的&lt;code&gt;letsencrypt-auto&lt;/code&gt; 等地址，官方已经更新&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;新的地址：&lt;strong&gt;&lt;a href=&quot;https://github.com/certbot/certbot&quot;&gt;https://github.com/certbot/certbot&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;使用方式没有基本没有大的变动，只需要将命令换为 &lt;code&gt;certbot-auto&lt;/code&gt; 即可。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;在申请证书前，请先将你的服务程序停掉(如果你的服务监听了443端口)，否则验证过程中会遇到以下问题：&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Problem binding to port 443: Could not bind to IPv4 or IPv6&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;本文为转载文章，为自己做备份笔记，目标是面向对Linux操作有一定基础的人员，所以操作过程中的命令不会张贴的特别全面，如果遇到问题请多多搜索、学习来提升自己，不要只做伸手党&lt;/strong&gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;Let&apos;s Encrypt作为一个公共且免费SSL的项目逐渐被广大用户传播和使用，是由Mozilla、Cisco、Akamai、IdenTrust、EFF等组织人员发起，主要的目的也是为了推进网站从HTTP向HTTPS过度的进程，目前已经有越来越多的商家加入和赞助支持。&lt;/p&gt;
&lt;p&gt;Let&apos;s Encrypt免费SSL证书的出现，也会对传统提供付费SSL证书服务的商家有不小的打击。到目前为止，Let&apos;s Encrypt获得IdenTrust交叉签名，这就是说可以应用且支持包括FireFox、Chrome在内的主流浏览器的兼容和支持，虽然目前是公测阶段，但是也有不少的用户在自有网站项目中正式使用起来。&lt;/p&gt;
&lt;p&gt;实战申请Let&apos;s Encrypt永久免费SSL证书过程教程及常见问题&lt;/p&gt;
&lt;p&gt;在今年黑色星期五的时候，Namecheap各种促销活动中也包括年费0.88美元的SSL证书，当时老左也有购买了2个备用学习和适当的放到一些网站中看看效果（据说英文网站谷歌会很喜欢），当时冷雨同学就建议到时候直接使用Let&apos;s Encrypt免费SSL，毕竟有很多大公司支持的，比一些小公司提供的免费SSL证书靠谱很多。&lt;/p&gt;
&lt;p&gt;虽然目前Let&apos;s Encrypt免费SSL证书默认是90天有效期，但是我们也可以到期自动续约，不影响我们的尝试和使用，为了考虑到文章的真实性和以后的实战性，老左准备利用一些时间分篇幅的展现在应用Let&apos;s Encrypt证书的过程，这篇文章分享申请的方法教程。&lt;/p&gt;
&lt;p&gt;第一、安装Let&apos;s Encrypt前的准备工作&lt;/p&gt;
&lt;p&gt;根据官方的要求，我们在VPS、服务器上部署Let&apos;s Encrypt免费SSL证书之前，需要系统支持Python2.7以上版本以及支持GIT工具。这个需要根据我们不同的系统版本进行安装和升级，因为有些服务商提供的版本兼容是完善的，尤其是debian环境兼容性比CentOS好一些。&lt;/p&gt;
&lt;p&gt;比如CentOS 6 64位环境不支持GIT，我们还可以参考&quot;Linux CentOS 6 64位系统安装Git工具环境教程&quot;和&quot;9步骤升级CentOS5系统Python版本到2.7&quot;进行安装和升级。最为 简单的就是Debian环境不支持，可以运行&quot;apt-get -y install git&quot;直接安装支持，如果是CentOS直接运行&quot;yum -y install git-core&quot;支持。这个具体遇到问题在讨论和搜索解决方案，因为每个环境、商家发行版都可能不同。在这篇文章中，老左采用的是debian 7 环境。&lt;/p&gt;
&lt;p&gt;第二、快速获取Let&apos;s Encrypt免费SSL证书&lt;/p&gt;
&lt;p&gt;在之前的博文中老左也分享过几篇关于SSL部署的过程，我自己也搞的晕乎晕乎的，获取证书和布局还是比较复杂的，Let&apos;s Encrypt肯定是考虑到推广HTTPS的普及型会让用户简单的获取和部署SSL证书，所以可以采用下面简单的一键部署获取证书。&lt;/p&gt;
&lt;p&gt;PS：在获取某个站点证书文件的时候，我们需要在安装PYTHON2.7以及GIT，更需要将域名解析到当前VPS主机IP中。&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;git clone https://github.com/letsencrypt/letsencrypt
cd letsencrypt
./letsencrypt-auto certonly --standalone --email admin@laozuo.org -d laozuo.org -d www.laozuo.org
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;然后执行上面的脚本，我们需要根据自己的实际站点情况将域名更换成自己需要部署的。&lt;/p&gt;
&lt;p&gt;快速获取Let&apos;s Encrypt免费SSL证书&lt;/p&gt;
&lt;p&gt;看到这个界面，直接Agree回车。&lt;/p&gt;
&lt;p&gt;Let&apos;s Encrypt安装成功&lt;/p&gt;
&lt;p&gt;然后看到这个界面表示部署成功。目前根据大家的反馈以及老左的测试，如果域名是用的国内DNS，包括第三那方DNSPOD等，都可能获取不到域名信息。&lt;/p&gt;
&lt;p&gt;Let&apos;s Encrypt国内域名DNS不支持&lt;/p&gt;
&lt;p&gt;这里我们可以看到有&quot;The server could not connect to the client to verify the  domain&quot;的错误提示信息，包括也有其他提示错误，&quot;The server experienced an internal error :: Error creating new registration&quot;我们在邮局的时候不要用国内免费邮局。所以，如果我们是海外域名就直接先用域名自带的DNS。&lt;/p&gt;
&lt;p&gt;第三、Let&apos;s Encrypt免费SSL证书获取与应用&lt;/p&gt;
&lt;p&gt;在完成Let&apos;s Encrypt证书的生成之后，我们会在&quot;/etc/letsencrypt/live/laozuo.org/&quot;域名目录下有4个文件就是生成的密钥证书文件。&lt;/p&gt;
&lt;p&gt;cert.pem  - Apache服务器端证书
chain.pem  - Apache根证书和中继证书
fullchain.pem  - Nginx所需要ssl_certificate文件
privkey.pem - 安全证书KEY文件&lt;/p&gt;
&lt;p&gt;如果我们使用的Nginx环境，那就需要用到fullchain.pem和privkey.pem两个证书文件，在部署Nginx的时候需要用到（参考：LNMP一键包环境安装SSL安全证书且部署HTTPS网站URL过程）。在这篇文章中老左就不详细演示Let&apos;s Encrypt证书证书的安装，后面再重新折腾一篇文章详细的部署证书的安装Nginx和Apache。&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;ssl_certificate /etc/letsencrypt/live/laozuo.org/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/laozuo.org/privkey.pem;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;比如我们在Nginx环境中，只要将对应的ssl_certificate和ssl_certificate_key路径设置成我们生成的2个文件就可以，最好不要移动和复制文件，因为续期的时候直接续期生成的目录文件就可以，不需要再手工复制。&lt;/p&gt;
&lt;p&gt;第四、解决Let&apos;s Encrypt免费SSL证书有效期问题&lt;/p&gt;
&lt;p&gt;我们从生成的文件中可以看到，Let&apos;s Encrypt证书是有效期90天的，需要我们自己手工更新续期才可以。&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;./letsencrypt-auto certonly --renew-by-default --email admin@laozuo.org -d laozuo.org -d www.laozuo.org
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;这样我们在90天内再去执行一次就可以解决续期问题，这样又可以继续使用90天。如果我们怕忘记的话也可以制作成定时执行任务，比如每个月执行一次。&lt;/p&gt;
&lt;p&gt;第五、关于Let&apos;s Encrypt免费SSL证书总结&lt;/p&gt;
&lt;p&gt;通过以上几个步骤的学习和应用，我们肯定学会了利用Let&apos;s Encrypt免费生成和获取SSL证书文件，随着Let&apos;s Encrypt的应用普及，SSL以后直接免费不需要购买，因为大部分主流浏览器都支持且有更多的主流商家的支持和赞助，HTTPS以后看来也是趋势。在Let&apos;s Encrypt执行过程在中我们需要解决几个问题。&lt;/p&gt;
&lt;p&gt;A - 域名DNS和解析问题。在配置Let&apos;s Encrypt免费SSL证书的时候域名一定要解析到当前VPS服务器，而且DNS必须用到海外域名DNS，如果用国内免费DNS可能会导致获取不到错误。&lt;/p&gt;
&lt;p&gt;B - 安装Let&apos;s Encrypt部署之前需要服务器支持PYTHON2.7以及GIT环境，要不无法部署。&lt;/p&gt;
&lt;p&gt;C - Let&apos;s Encrypt默认是90天免费，需要手工或者自动续期才可以继续使用。&lt;/p&gt;
</content:encoded></item><item><title>Windows 下配置 Aria 2</title><link>https://blog.doracoin.cc/posts/2017/2017-11-29-windows-%E4%B8%8B%E9%85%8D%E7%BD%AE-aria-2/</link><guid isPermaLink="true">https://blog.doracoin.cc/posts/2017/2017-11-29-windows-%E4%B8%8B%E9%85%8D%E7%BD%AE-aria-2/</guid><pubDate>Wed, 29 Nov 2017 16:11:00 GMT</pubDate><content:encoded>&lt;p&gt;Aria 2 是一款高速下载工具，支持目前所有主流的操作系统。 它具有强劲的下载功能，可实现断点续传，多线程多资源下载高效提升下载速度，同时也是BT/PT下载的利器。 最重要的是 QNAP 帮助你通过 QPKG 安装方式实现广大用户所关心的支持迅雷离线下载取回的功能，让你的 NAS 摇身变为一台迅雷离线下载机，尽享迅雷海量下载资源，赶快来体验吧！&lt;/p&gt;
&lt;p&gt;&amp;lt;!--more--&amp;gt;&lt;/p&gt;
&lt;h3&gt;Aria2 下载与安装&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;进入 Aria2 官方下载页面： &lt;a href=&quot;https://aria2.github.io/&quot;&gt;Aria2&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;下载最新版本的 Aria2 ，目前的最新版本是： &lt;a href=&quot;https://github.com/aria2/aria2/releases/tag/release-1.33.1&quot;&gt;1.33.1&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;自己选择一个路径进行解压，例：&lt;code&gt;D:\Program Files\D:\Program Files\aria2-1.33.1-win-64bit-build1&lt;/code&gt;，然后在该目录下新建四个文件：&lt;/li&gt;
&lt;/ol&gt;
&lt;ul&gt;
&lt;li&gt;aria2.log（日志，空文件就行）&lt;/li&gt;
&lt;li&gt;aria2.session（下载历史，空文件就行）&lt;/li&gt;
&lt;li&gt;aria2.conf（配置文件）&lt;/li&gt;
&lt;li&gt;startrun.vbs（隐藏cmd窗口运行用到的）&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Aria2 的配置&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;打开 aria2.conf ，复制以下内容到该文件：&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;&lt;code&gt;# 默认全局下载路径
dir=D:\Download\
log=.\aria2.log
input-file=.\aria2.session
save-session=.\aria2.session
save-session-interval=60
force-save=true
log-level=error

# see --split option
max-concurrent-downloads=5
continue=true
max-overall-download-limit=0
max-overall-upload-limit=50K
max-upload-limit=20

# Http/FTP options
connect-timeout=120
lowest-speed-limit=10K
max-connection-per-server=10
max-file-not-found=2
min-split-size=1M
split=5
check-certificate=false
http-no-cache=true

# FTP Specific Options

# BT/PT Setting
bt-enable-lpd=true
#bt-max-peers=55
follow-torrent=true
enable-dht6=false
bt-seed-unverified
rpc-save-upload-metadata=true
bt-hash-check-seed
bt-remove-unselected-file
bt-request-peer-speed-limit=100K
seed-ratio=0.0

# Metalink Specific Options

# RPC Options
enable-rpc=true
pause=false
rpc-allow-origin-all=true
rpc-listen-all=true
rpc-save-upload-metadata=true
rpc-secure=false

# Advanced Options
daemon=true
disable-ipv6=true
enable-mmap=true
file-allocation=falloc 
max-download-result=120
#no-file-allocation-limit=32M
force-sequential=true
parameterized-uri=true
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;注意修改以下选项：&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;dir=D:\Download\&lt;/code&gt; （下载文件保存路径，改为你想要的）&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;2.&lt;strong&gt;编辑 &lt;code&gt;startrun.vbs&lt;/code&gt;，并复制以下内容，注意修改你的aria2安装路径，这里填写为相对路径：&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;CreateObject(&quot;WScript.Shell&quot;).Run &quot;.\aria2c.exe --conf-path=aria2.conf&quot;,0
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;使用&lt;code&gt;aria2c.exe&lt;/code&gt;启动aria2会有一个控制台窗口一直在前台，并且不能关闭，否则会导致aria2进程也随之关闭；使用这个脚本启动aria2不会有控制台窗口，并且进程会一直在后台存活。&lt;/p&gt;
&lt;p&gt;如果想要让aria2开机启动，创建一个 &lt;code&gt;startrun.vbs&lt;/code&gt; 的快捷方式，放在 &lt;code&gt;C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp&lt;/code&gt; 中即可。&lt;/p&gt;
&lt;p&gt;3.管理Aria 2 下载任务&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;首先我们要打开Aria2 的 &lt;a href=&quot;http://aria2c.com/&quot;&gt;WebUI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;然后再页面的设置中将JSON-RPC Path设置为 &lt;code&gt;http://localhost:6800/jsonrpc&lt;/code&gt; (默认情况下不用设置该项)&lt;/li&gt;
&lt;li&gt;点击保存，即可正常使用。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;顺便在此推荐一款基于Aira2的图形界面工具，该工具支持多个平台：Windows,MacOS,Linux
该项目已开源，基于QT5&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/persepolisdm/persepolis&quot;&gt;persepolis&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;参考：&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://zhuanlan.zhihu.com/p/21831960&quot;&gt;Windows 下如何配置Aira2&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://www.appinn.com/aria2-in-windows-setup/&quot;&gt;下载神器 aria2 懒人安装教程 [Windows]&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
</content:encoded></item><item><title>如何写好一个开源项目的 README</title><link>https://blog.doracoin.cc/posts/2017/2017-11-08-how-to-write-beautiful-github-readme/</link><guid isPermaLink="true">https://blog.doracoin.cc/posts/2017/2017-11-08-how-to-write-beautiful-github-readme/</guid><pubDate>Wed, 08 Nov 2017 18:18:51 GMT</pubDate><content:encoded>&lt;p&gt;README 是一个项目的门面。如果你想让更多人使用你的项目或者给你的贡献 PR、丢 star，你就应该写一个吸引人的 README。&lt;/p&gt;
&lt;h1&gt;Logo&lt;/h1&gt;
&lt;p&gt;无论如何，项目有一个 logo 是一个加分项。一个生动活泼的 logo 能吸引很多人的注意。如果没有 logo，那么就学习 Material 主题、把一张漂亮的预览图丢在 README 开头吧~&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;就像这样 ↓↓&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;img src=&quot;https://i.loli.net/2018/11/08/5be40e61e075e.png&quot; alt=&quot;0000180.png&quot; /&gt;&lt;/p&gt;
&lt;p&gt;logo 当然需要居中放置，所以我们不能使用 markdown 语法来添加图片，而应该使用 html。正确做法就像这样：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;p align=&quot;center&quot;&amp;gt;
&amp;lt;img src=&quot;https://i.loli.net/2017/09/07/59b1367f76fdb.png&quot; alt=&quot;Material Render Phone&quot;&amp;gt;
&amp;lt;/p&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;h1&gt;项目名称&lt;/h1&gt;
&lt;p&gt;同样的，如果想要突出项目的名称，应该同样让其居中。带上 &lt;code&gt;&amp;lt;a&amp;gt;&lt;/code&gt; 标签链接到项目的官网（如果有的话）那也是极好的。&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;h1 align=&quot;center&quot;&amp;gt;&amp;lt;a href=&quot;https://material.viosey.com&quot; target=&quot;_blank&quot;&amp;gt;Material Theme&amp;lt;/a&amp;gt;&amp;lt;/h1&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;h1&gt;Slogan&lt;/h1&gt;
&lt;p&gt;然后是 slogan。slogan 要么耍帅要么优雅。我列举几个项目的 slogan 吧~&lt;/p&gt;
&lt;blockquote&gt;
&lt;ul&gt;
&lt;li&gt;Nature, Source | 原之质，物之渊 —— &lt;a href=&quot;https://github.com/viosey/hexo-theme-material/tree/2.x-develop&quot;&gt;hexo-theme-material&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;🍭Wow, such a powerful music API framework —— &lt;a href=&quot;https://github.com/metowolf/Meting&quot;&gt;Meting&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;A magical documentation site generator. —— &lt;a href=&quot;https://github.com/QingWei-Li/docsify&quot;&gt;docsify&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;p&gt;需要注意的是，你的项目 README 中的 Logo 和名称应该要能够完整地出现在手机版 GitHub 页面内。当然，如果 slogan 也在那就更好了。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.loli.net/2018/11/08/5be40ea7796f7.png&quot; alt=&quot;0000181.png&quot; /&gt;&lt;/p&gt;
&lt;h1&gt;Badge&lt;/h1&gt;
&lt;p&gt;README 里面一定不能缺少 Badge。Badge 可以形象的把大部分项目的信息、比如版本号、依赖、构建状态等等展示出来。
比如说，hexo-theme-material 添加了这几个 badge：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Version&lt;/li&gt;
&lt;li&gt;Author&lt;/li&gt;
&lt;li&gt;Hexo Version&lt;/li&gt;
&lt;li&gt;NodeJS Version&lt;/li&gt;
&lt;li&gt;Travis Build Status&lt;/li&gt;
&lt;li&gt;Download&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;https://i.loli.net/2018/11/08/5be40ee7630ee.png&quot; alt=&quot;img&quot; /&gt;&lt;/p&gt;
&lt;p&gt;这里当然要推荐 &lt;a href=&quot;https://shields.io&quot;&gt;Shields.io&lt;/a&gt;，绝大部分常见的 GitHub Badge 都是用这个网站生成的。&lt;/p&gt;
&lt;h1&gt;介绍&lt;/h1&gt;
&lt;p&gt;接下来就应该是对项目的介绍了。README 需要解答下面这些问题：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;这个开源项目是做什么的&lt;/li&gt;
&lt;li&gt;项目维护、CI、依赖更新状态&lt;/li&gt;
&lt;li&gt;项目可用版本及其他版本、并且应该如何下载它们&lt;/li&gt;
&lt;li&gt;Demo 或官网地址（如果有）&lt;/li&gt;
&lt;li&gt;License&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;这就是对项目的简单介绍。当然，除了需要上述信息能对用户对你的项目有一个简单的印象，你还需要在 README 中写一些关于项目的介绍。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;如何下载这个项目&lt;/li&gt;
&lt;li&gt;项目依赖&lt;/li&gt;
&lt;li&gt;安装方式&lt;/li&gt;
&lt;li&gt;部署方法（如果项目可以被部署的话）&lt;/li&gt;
&lt;li&gt;Debug 方法&lt;/li&gt;
&lt;li&gt;文档&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;由于 Material 是 Hexo 的一个主题，所以我们在 README 中只介绍了下载方式，然后我们提供了一个链接通往我们的文档。&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;基本这就是一个 README 需要包括的内容了。当然，书写项目 README 时候还需要遵守排版规范。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;转载请注明出处并注意转载协议
原文作者：neoFelhz
原文链接：&lt;a href=&quot;https://web.archive.org/web/20190511140044/https://blog.nfz.moe/archives/how-to-write-beautiful-github-readme.html&quot;&gt;如何写好一个开源项目的 README &lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
</content:encoded></item><item><title>Linux crontab 使用说明</title><link>https://blog.doracoin.cc/posts/2017/2017-10-17-linux-crontab-%E4%BD%BF%E7%94%A8%E8%AF%B4%E6%98%8E/</link><guid isPermaLink="true">https://blog.doracoin.cc/posts/2017/2017-10-17-linux-crontab-%E4%BD%BF%E7%94%A8%E8%AF%B4%E6%98%8E/</guid><pubDate>Tue, 17 Oct 2017 03:46:28 GMT</pubDate><content:encoded>&lt;p&gt;附赠一个 Cron 测试网站：https://crontab.guru/&lt;/p&gt;
&lt;p&gt;&lt;code&gt;crontab&lt;/code&gt;是一个大部分Linux发行版中自带的一个定时器，可以定时执行一些操作，支持指定脚本。 &lt;strong&gt;命令参数&lt;/strong&gt; ：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Usage:
 crontab [options] file
 crontab [options]
 crontab -n [hostname]

Options:
 -u &amp;lt;user&amp;gt;  define user
 -e         edit user&apos;s crontab
 -l         list user&apos;s crontab
 -r         delete user&apos;s crontab
 -i         prompt before deleting
 -n &amp;lt;host&amp;gt;  set host in cluster to run users&apos; crontabs
 -c         get host in cluster to run users&apos; crontabs
 -s         selinux context
 -x &amp;lt;mask&amp;gt;  enable debugging

Default operation is replace, per 1003.2
&lt;/code&gt;&lt;/pre&gt;
&lt;ol&gt;
&lt;li&gt;-e 编辑配置&lt;/li&gt;
&lt;li&gt;-l 列出当前配置&lt;/li&gt;
&lt;li&gt;-r 删除配置&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;语法&lt;/strong&gt; ：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# For details see man 4 crontabs

# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  * user-name  command to be executed
&lt;/code&gt;&lt;/pre&gt;
&lt;ol&gt;
&lt;li&gt;分钟，取值&lt;code&gt;0-59&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;小时，取值&lt;code&gt;0-23&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;日期，取值&lt;code&gt;1-31&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;月份，取值&lt;code&gt;1-12&lt;/code&gt;，或者月份缩写&lt;code&gt;jan,feb,mar,apr ...&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;星期/周，取值&lt;code&gt;0-6&lt;/code&gt;，该值中，默认一周的第一天为周日，即 0 或 7 都为周日，或者可以输入缩写&lt;code&gt;sun,mon,tue,wed,thu,fri,sat&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;user-name 执行用户&lt;/li&gt;
&lt;li&gt;命令，支持自定义脚本&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;其中第6项可不填，本人测试环境为CentOS 7.x，发现在设置该项后反而会失效，原因不明。&lt;/p&gt;
</content:encoded></item><item><title>Android 网络感叹号</title><link>https://blog.doracoin.cc/posts/2017/2017-09-14-android-captive-portal/</link><guid isPermaLink="true">https://blog.doracoin.cc/posts/2017/2017-09-14-android-captive-portal/</guid><pubDate>Thu, 14 Sep 2017 13:38:10 GMT</pubDate><content:encoded>&lt;p&gt;从 Android L 开始，原生和 CM 的 ROM 用户就会发现，状态栏的网络信号莫名多了一个感叹号。而且，有的时候明明连着 WIFI 用得好好的，却突然跳到数据流量。&lt;/p&gt;
&lt;p&gt;&amp;lt;!--more--&amp;gt;&lt;/p&gt;
&lt;p&gt;转自：&lt;a href=&quot;https://blog.nfz.moe/archives/android-captive-portal.html&quot;&gt;neoFelhz&apos;s - Android 的网络感叹号&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;“感叹号”出现的原因和作用&lt;/h2&gt;
&lt;p&gt;Android 5.0 开始引入了一种新的网络评估机制来评估网络状况，当你有网络请求时会自动选择网络连接条件最好的一个网络进行连接（也就是 WIFI 和数据之间自动切换）。自然，验证方法是连接到 Google 自家的服务器进行检查。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;这个检测的作用除了可以检查该网络是否能够使用以外，还能检查该网络是否需要登陆（就是运营商的 WiFi 如 CCMC，或者其它公共场所的免费 WiFi 的那个认证）。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr /&gt;
&lt;p&gt;正是这个 google 被 Wall 掉了以后导致安卓没有办法评估网络。所以，系统每隔一定时间都会重新尝试连接，就在不知不觉中消耗了数据流量。更恐怖的就是 Android 认为在 WiFi 下无法连接互联网，就让联网的程序通通走流量。于是这样就导致了那个蛋碎的感叹号一直存在，以及 WiFi 用着用着突然自动连回数据连接了。&lt;/p&gt;
&lt;h2&gt;解决方法&lt;/h2&gt;
&lt;h3&gt;Android 5.0-6.0&lt;/h3&gt;
&lt;h4&gt;直接禁用验证&lt;/h4&gt;
&lt;p&gt;手机连接电脑开启 USB 调试，输入以下 ADB 命令：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;adb shell &quot;settings put global captive_portal_detection_enabled 0&quot;

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;重启设备或者开关一下飞行模式就行。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;但是，还记得我说过么，这个感叹号可以用来判断网络可用性，还可以用来判断网络是否需要登录。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h4&gt;更换验证地址&lt;/h4&gt;
&lt;p&gt;当然还有另外一个方法，就是直接把这个服务地址切换到国内的可用的地址就行了。这样既可以去除叹号，也可以检查网络可用情况。&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;adb shell &quot;settings put global captive_portal_server your.domain&quot;

&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;恢复方法&lt;/h4&gt;
&lt;p&gt;如果你用的是第一种方法，恢复方法是：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;adb shell &quot;settings put global captive_portal_detection_enabled 1&quot;

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;如果你用的是第二种方法，那么你需要输入的是：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;adb shell &quot;settings delete global captive_portal_server&quot;

&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Android 7.0-7.1.0&lt;/h3&gt;
&lt;p&gt;与 Android 5.0-6.0 所用的方法相同，只是验证要求从 443 端口进行，也就是说必须要支持通过 HTTPS 正常访问。&lt;/p&gt;
&lt;p&gt;也可以通过 ADB 输入以下指令禁用 HTTPS：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;adb shell &quot;settings put global captive_portal_use_https 0&quot;

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;恢复 HTTPS 的方法是用 ADB 输入以下指令：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;adb shell &quot;settings put global captive_portal_use_https 1&quot;

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;或者&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;adb shell &quot;settings delete global captive_portal_use_https&quot;

&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Android 7.1+&lt;/h3&gt;
&lt;p&gt;从 Android 7.1.1 开始，系统在验证时不会自动加入 &lt;code&gt;generate_204&lt;/code&gt; 的后缀了，这意味着 url 可以设计的更加灵活，同时也意味着在设置的时候需要填入完整的 url，即需要在现有的 url 验证地址后面加上 &lt;code&gt;/generate_204&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;同时也默认要求使用 HTTPS 的方法进行验证。禁用和恢复 HTTPS 检查的方法同 &lt;a href=&quot;https://blog.nfz.moe/archives/android-captive-portal.html#Android-7-0-7-1-0&quot;&gt;Android 7.0 ~ 7.1.0&lt;/a&gt; 的方法。&lt;/p&gt;
&lt;p&gt;在 Android 7.1+ 上配置 Captive Portal 地址需要两行指令：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;adb shell &quot;settings put global captive_portal_http_url http://yourdomain&quot;;
adb shell &quot;settings put global captive_portal_https_url https://yourdomain&quot;;

&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;手机端应用&lt;/h3&gt;
&lt;p&gt;&lt;a href=&quot;https://blog.nfz.moe/archives/www.noisyfox.cn&quot;&gt;小狐狸&lt;/a&gt; 开发了这款“叹号杀手”应用实现了这个：&lt;a href=&quot;http://www.coolapk.com/apk/org.foxteam.noisyfox.noexclamation&quot;&gt;酷安下载地址&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;用这款应用可以快速设置禁用验证或者更换验证地址。&lt;s&gt;可能&lt;/s&gt; 需要 root，如果没 root &lt;s&gt;可能&lt;/s&gt; 会导致修改失败。&lt;/p&gt;
&lt;h2&gt;架设自己的验证服务&lt;/h2&gt;
&lt;p&gt;这个验证机制是访问所给地址的 &lt;code&gt;generate_204&lt;/code&gt; 子目录看返回值，所以可以这么解决：&lt;/p&gt;
&lt;h3&gt;Apache&lt;/h3&gt;
&lt;p&gt;开启 Rewrite 模块（大部分虚拟主机商都会帮你开好），在 &lt;code&gt;.htaccess&lt;/code&gt; 文件中最末写入以下值：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;IfModule mod_rewrite.c&amp;gt;
  RewriteEngine On
  RewriteCond %{REQUEST_URI} /generate_204$
  RewriteRule $ / [R=204]
&amp;lt;/IfModule&amp;gt;

&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Nignx&lt;/h3&gt;
&lt;p&gt;直接在配置文件中写入：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;location /generate_204 {return 204;}

&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Workaround&lt;/h3&gt;
&lt;p&gt;&lt;s&gt;如果你没有服务器（比如你只用 pages 服务），或者上述设置方法全部无效，还有一个 workaround 的方法——直接建立一个名字叫做“generate_204”的空文件，因为空文件也会被 Android 当做是 204 返回（毕竟空文件绝对不会是网络登录验证咯）&lt;/s&gt; 经测试，这种方法已经不能生效了。&lt;/p&gt;
&lt;h3&gt;验证服务地址&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;www.qualcomm.com/generate_204（高通）&lt;/li&gt;
&lt;li&gt;noisyfox.cn/generate_204（小狐狸）&lt;/li&gt;
&lt;li&gt;&lt;s&gt;www.v2ex.com&lt;/s&gt;（V2EX 旧 Captive 地址，已弃用）&lt;/li&gt;
&lt;li&gt;captive.v2ex.co/generate_204（V2EX 新 Captive 地址）&lt;/li&gt;
&lt;li&gt;&lt;s&gt;bbs.mfunz.com&lt;/s&gt;（魔趣开源项目，已弃用）&lt;/li&gt;
&lt;li&gt;g.cn/generate_204（谷歌中国，一个不存在的网站）&lt;/li&gt;
&lt;li&gt;google.cn&lt;/li&gt;
&lt;li&gt;developer.google.cn/generate_204（谷歌开发者文档中国）&lt;/li&gt;
&lt;li&gt;http204.sinaapp.com/generate_204（Tink 提供，运行在 SAE 上）&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;分析 NetWorkMonitor 的工作原理&lt;/h2&gt;
&lt;h3&gt;Android 5.0~6.0&lt;/h3&gt;
&lt;p&gt;以下代码摘自 &lt;a href=&quot;https://android.googlesource.com/platform/frameworks/base/+/android-6.0.1_r70/services/core/java/com/android/server/connectivity/NetworkMonitor.java&quot;&gt;Android 6.0.1_r70 分支&lt;/a&gt; 的 &lt;code&gt;NetworkMonitor&lt;/code&gt; 第 384 行至第 425 行&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;@Override
public boolean processMessage(Message message) {
    switch (message.what) {
        case CMD_REEVALUATE:
            if (message.arg1 != mReevaluateToken || mUserDoesNotWant)
                return HANDLED;
            // Don&apos;t bother validating networks that don&apos;t satisify the default request.
            // This includes:
            //  - VPNs which can be considered explicitly desired by the user and the
            //    user&apos;s desire trumps whether the network validates.
            //  - Networks that don&apos;t provide internet access.  It&apos;s unclear how to
            //    validate such networks.
            //  - Untrusted networks.  It&apos;s unsafe to prompt the user to sign-in to
            //    such networks and the user didn&apos;t express interest in connecting to
            //    such networks (an app did) so the user may be unhappily surprised when
            //    asked to sign-in to a network they didn&apos;t want to connect to in the
            //    first place.  Validation could be done to adjust the network scores
            //    however these networks are app-requested and may not be intended for
            //    general usage, in which case general validation may not be an accurate
            //    measure of the network&apos;s quality.  Only the app knows how to evaluate
            //    the network so don&apos;t bother validating here.  Furthermore sending HTTP
            //    packets over the network may be undesirable, for example an extremely
            //    expensive metered network, or unwanted leaking of the User Agent string.
            if (!mDefaultRequest.networkCapabilities.satisfiedByNetworkCapabilities(mNetworkAgentInfo.networkCapabilities)) {transitionTo(mValidatedState);
                return HANDLED;
            }
            mAttempts++;
            // Note: This call to isCaptivePortal() could take up to a minute. Resolving the
            // server&apos;s IP addresses could hit the DNS timeout, and attempting connections
            // to each of the server&apos;s several IP addresses (currently one IPv4 and one
            // IPv6) could each take SOCKET_TIMEOUT_MS.  During this time this StateMachine
            // will be unresponsive. isCaptivePortal() could be executed on another Thread
            // if this is found to cause problems.
            int httpResponseCode = isCaptivePortal();
            if (httpResponseCode == 204) {transitionTo(mValidatedState);
            } else if (httpResponseCode &amp;gt;= 200 &amp;amp;&amp;amp; httpResponseCode &amp;lt;= 399) {transitionTo(mCaptivePortalState);
            } else {
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;当安卓设备联网后，如果该网络是 VPN，那么直接使用这个网络进行连接，否则调用 &lt;code&gt;isCaptivePortal()&lt;/code&gt; 函数进行网络状况的判定，再根据判定结果决定是否选用此网络。这个函数就会先访问系统内指定的网址并根据返回结果来判断网络状况，而这个网址如字面所说，会产生一个 204 返回值。204 返回值的意思就是空内容。如果当 WiFi 是需要登录才可以连接，那么当试图访问 google 的服务器的链接就一定会自动跳转到一个登录页面，这个时候 http 请求的返回值就必然不是 204。就是通过这一机制，便可以区分当前 WiFi 是否需要验证，不得不佩服想出这个办法的人来。&lt;/p&gt;
&lt;h3&gt;Android 7.0-7.1.0&lt;/h3&gt;
&lt;p&gt;以下代码摘自 &lt;a href=&quot;https://android.googlesource.com/platform/frameworks/base/+/android-7.1.0_r2/services/core/java/com/android/server/connectivity/NetworkMonitor.java&quot;&gt;Android 7.1.0_r2 分支&lt;/a&gt; 的 &lt;code&gt;NetworkMonitor&lt;/code&gt; 第 336 行至第 386 行。&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;@Override
public boolean processMessage(Message message) {
    switch (message.what) {
        case CMD_LAUNCH_CAPTIVE_PORTAL_APP:
            final Intent intent = new Intent(ConnectivityManager.ACTION_CAPTIVE_PORTAL_SIGN_IN);
            intent.putExtra(ConnectivityManager.EXTRA_NETWORK, mNetworkAgentInfo.network);
            intent.putExtra(ConnectivityManager.EXTRA_CAPTIVE_PORTAL,
                    new CaptivePortal(new ICaptivePortal.Stub() {
                        @Override
                        public void appResponse(int response) {if (response == APP_RETURN_WANTED_AS_IS) {
                                mContext.enforceCallingPermission(
                                        android.Manifest.permission.CONNECTIVITY_INTERNAL,
                                        &quot;CaptivePortal&quot;);
                            }
                            sendMessage(CMD_CAPTIVE_PORTAL_APP_FINISHED, response);
                        }
                    }));
            intent.setFlags(Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT | Intent.FLAG_ACTIVITY_NEW_TASK);
            mContext.startActivityAsUser(intent, UserHandle.CURRENT);
            return HANDLED;
        default:
            return NOT_HANDLED;
    }
}
@Override
public void exit() {
    Message message = obtainMessage(EVENT_PROVISIONING_NOTIFICATION, 0,
            mNetworkAgentInfo.network.netId, null);
    mConnectivityServiceHandler.sendMessage(message);
}

/**
* Result of calling isCaptivePortal().
* @hide
*/
@VisibleForTesting
public static final class CaptivePortalProbeResult {
    static final CaptivePortalProbeResult FAILED = new CaptivePortalProbeResult(599, null);
    final int mHttpResponseCode; // HTTP response code returned from Internet probe.
    final String mRedirectUrl;   // Redirect destination returned from Internet probe.
    public CaptivePortalProbeResult(int httpResponseCode, String redirectUrl) {
        mHttpResponseCode = httpResponseCode;
        mRedirectUrl = redirectUrl;
    }
    boolean isSuccessful() { 
        return mHttpResponseCode == 204;
    }

    boolean isPortal() {
        return !isSuccessful() &amp;amp;&amp;amp; mHttpResponseCode &amp;gt;= 200 &amp;amp;&amp;amp; mHttpResponseCode &amp;lt;= 399;
    }
}

&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Android 7.1.1&lt;/h3&gt;
&lt;p&gt;以下代码摘自 &lt;a href=&quot;https://android.googlesource.com/platform/frameworks/base/+/android-7.1.1_r4/services/core/java/com/android/server/connectivity/NetworkMonitor.java&quot;&gt;Android 7.1.1_r4 分支&lt;/a&gt; 的 &lt;code&gt;NetworkMonitor&lt;/code&gt; 第 611 行至第 631 行。
可以看到 Android 7.1.1 开始已经不会再自动给验证 url 加上 &lt;code&gt;generate_204&lt;/code&gt;。&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;private static String getCaptivePortalServerHttpsUrl(Context context) {
    return getSetting(context, Settings.Global.CAPTIVE_PORTAL_HTTPS_URL, DEFAULT_HTTPS_URL);
}
public static String getCaptivePortalServerHttpUrl(Context context) {
    return getSetting(context, Settings.Global.CAPTIVE_PORTAL_HTTP_URL, DEFAULT_HTTP_URL);
}
private static String getCaptivePortalFallbackUrl(Context context) {
    return getSetting(context, Settings.Global.CAPTIVE_PORTAL_FALLBACK_URL, DEFAULT_FALLBACK_URL);
}
private static String getCaptivePortalUserAgent(Context context) {
    return getSetting(context, Settings.Global.CAPTIVE_PORTAL_USER_AGENT, DEFAULT_USER_AGENT);
}
private static String getSetting(Context context, String symbol, String defaultValue) {
    final String value = Settings.Global.getString(context.getContentResolver(), symbol);
    return value != null ? value : defaultValue;
}
&lt;/code&gt;&lt;/pre&gt;
</content:encoded></item><item><title>CentOS 7 firewall-cmd 防火墙常用命令</title><link>https://blog.doracoin.cc/posts/2017/2017-09-08-centos-7-firewalld-%E9%98%B2%E7%81%AB%E5%A2%99%E5%B8%B8%E7%94%A8%E5%91%BD%E4%BB%A4/</link><guid isPermaLink="true">https://blog.doracoin.cc/posts/2017/2017-09-08-centos-7-firewalld-%E9%98%B2%E7%81%AB%E5%A2%99%E5%B8%B8%E7%94%A8%E5%91%BD%E4%BB%A4/</guid><pubDate>Fri, 08 Sep 2017 06:26:04 GMT</pubDate><content:encoded>&lt;h4&gt;1、firewalld的基本使用&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;启动： systemctl start firewalld&lt;/li&gt;
&lt;li&gt;查看状态： systemctl status firewalld&lt;/li&gt;
&lt;li&gt;停止： systemctl disable firewalld&lt;/li&gt;
&lt;li&gt;禁用： systemctl stop firewalld&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;2.systemctl是CentOS7的服务管理工具中主要的工具，它融合之前service和chkconfig的功能于一体。&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;启动一个服务：systemctl start firewalld.service&lt;/li&gt;
&lt;li&gt;关闭一个服务：systemctl stop firewalld.service&lt;/li&gt;
&lt;li&gt;重启一个服务：systemctl restart firewalld.service&lt;/li&gt;
&lt;li&gt;显示一个服务的状态：systemctl status firewalld.service&lt;/li&gt;
&lt;li&gt;在开机时启用一个服务：systemctl enable firewalld.service&lt;/li&gt;
&lt;li&gt;在开机时禁用一个服务：systemctl disable firewalld.service&lt;/li&gt;
&lt;li&gt;查看服务是否开机启动：systemctl is-enabled firewalld.service&lt;/li&gt;
&lt;li&gt;查看已启动的服务列表：systemctl list-unit-files|grep enabled&lt;/li&gt;
&lt;li&gt;查看启动失败的服务列表：systemctl --failed&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;3.配置firewalld-cmd&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;查看版本： firewall-cmd --version&lt;/li&gt;
&lt;li&gt;查看帮助： firewall-cmd --help&lt;/li&gt;
&lt;li&gt;显示状态： firewall-cmd --state&lt;/li&gt;
&lt;li&gt;查看所有打开的端口： firewall-cmd --zone=public --list-ports&lt;/li&gt;
&lt;li&gt;更新防火墙规则： firewall-cmd --reload&lt;/li&gt;
&lt;li&gt;查看区域信息: firewall-cmd --get-active-zones&lt;/li&gt;
&lt;li&gt;查看指定接口所属区域： firewall-cmd --get-zone-of-interface=eth0&lt;/li&gt;
&lt;li&gt;拒绝所有包：firewall-cmd --panic-on&lt;/li&gt;
&lt;li&gt;取消拒绝状态： firewall-cmd --panic-off&lt;/li&gt;
&lt;li&gt;查看是否拒绝： firewall-cmd --query-panic&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;那怎么开启一个端口呢&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;添加&lt;/p&gt;
&lt;p&gt;#（--permanent永久生效，没有此参数重启后失效）
firewall-cmd --zone=public --add-port=80/tcp --permanent #tcp
firewall-cmd --zone=public --add-port=80/udp --permanent #udp
firewall-cmd --zone=public --add-port=80-443/udp --permanent #区间添加&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;重新载入&lt;/p&gt;
&lt;p&gt;firewall-cmd --reload&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;查看&lt;/p&gt;
&lt;p&gt;firewall-cmd --zone= public --query-port=80/tcp&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;删除&lt;/p&gt;
&lt;p&gt;firewall-cmd --zone= public --remove-port=80/tcp --permanent&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;将接口添加到区域，默认接口都在public，永久生效再加上 &lt;code&gt;--permanent&lt;/code&gt; 然后reload防火墙&lt;/p&gt;
&lt;p&gt;firewall-cmd --zone=public --add-interface=eth0&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;打开一个服务，类似于将端口可视化，服务需要在配置文件中添加，/etc/firewalld 目录下有services文件夹，这个不详细说了，详情参考文档&lt;/p&gt;
&lt;p&gt;firewall-cmd --zone=work --add-service=smtp&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;移除服务&lt;/p&gt;
&lt;p&gt;firewall-cmd --zone=work --remove-service=smtp&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h6&gt;一、管理端口&lt;/h6&gt;
&lt;p&gt;列出 dmz 级别的被允许的进入端口&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;firewall-cmd --zone=dmz --list-ports
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;允许 tcp 端口 8080 至 dmz 级别&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;firewall-cmd --zone=dmz --add-port=8080/tcp
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;允许某范围的 udp 端口至 public 级别，并永久生效&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;firewall-cmd --zone=public --add-port=5060-5059/udp --permanent
&lt;/code&gt;&lt;/pre&gt;
&lt;h6&gt;二、 网卡接口&lt;/h6&gt;
&lt;p&gt;列出 public zone 所有网卡&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;firewall-cmd --zone=public --list-interfaces
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;将 eth0 添加至 public zone，永久&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;firewall-cmd --zone=public --permanent --add-interface=eth0
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;eth0 存在与 public zone，将该网卡添加至 work zone，并将之从 public zone 中删除&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;firewall-cmd --zone=work --permanent --change-interface=eth0
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;删除 public zone 中的 eth0，永久&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;firewall-cmd --zone=public --permanent --remove-interface=eth0
&lt;/code&gt;&lt;/pre&gt;
&lt;h6&gt;三、 管理服务&lt;/h6&gt;
&lt;p&gt;添加 smtp 服务至 work zone&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;firewall-cmd --zone=work --add-service=smtp
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;移除 work zone 中的 smtp 服务&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;firewall-cmd --zone=work --remove-service=smtp
&lt;/code&gt;&lt;/pre&gt;
&lt;h6&gt;四、 配置 external zone 中的 ip 地址伪装&lt;/h6&gt;
&lt;p&gt;查看&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;firewall-cmd --zone=external --query-masquerade
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;打开伪装&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;firewall-cmd --zone=external --add-masquerade
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;关闭伪装&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;firewall-cmd --zone=external --remove-masquerade
&lt;/code&gt;&lt;/pre&gt;
&lt;h6&gt;五、 配置 public zone 的端口转发&lt;/h6&gt;
&lt;p&gt;要打开端口转发，则需要先&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;firewall-cmd --zone=public --add-masquerade
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;然后转发 tcp 22 端口至 3753&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;firewall-cmd --zone=public --add-forward-port=port=22:proto=tcp:toport=3753
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;转发 22 端口数据至另一个 ip 的相同端口上&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;firewall-cmd --zone=public --add-forward-port=port=22:proto=tcp:toaddr=192.168.1.100
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;转发 22 端口数据至另一 ip 的 2055 端口上&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;firewall-cmd --zone=public --add-forward-port=port=22:proto=tcp:toport=2055:toaddr=192.168.1.100
&lt;/code&gt;&lt;/pre&gt;
&lt;h6&gt;六 、配置 public zone 的 icmp&lt;/h6&gt;
&lt;p&gt;查看所有支持的 icmp 类型&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;firewall-cmd --get-icmptypes
destination-unreachable echo-reply echo-request parameter-problem redirect router-advertisement router-solicitation source-quench time-exceeded
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;列出&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;firewall-cmd --zone=public --list-icmp-blocks
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;添加 echo-request 屏蔽&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;firewall-cmd --zone=public --add-icmp-block=echo-request [--timeout=seconds]
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;移除 echo-reply 屏蔽&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;firewall-cmd --zone=public --remove-icmp-block=echo-reply
&lt;/code&gt;&lt;/pre&gt;
&lt;h6&gt;七、 IP 封禁 （这个是我们平时用得最多的）&lt;/h6&gt;
&lt;pre&gt;&lt;code&gt;firewall-cmd --permanent --add-rich-rule=&quot;rule family=&apos;ipv4&apos; source address=&apos;222.222.222.222&apos; reject&quot;  单个IP
firewall-cmd --permanent --add-rich-rule=&quot;rule family=&apos;ipv4&apos; source address=&apos;222.222.222.0/24&apos; reject&quot; IP段
firewall-cmd --permanent --add-rich-rule=&quot;rule family=ipv4 source address=192.168.1.2 port port=80  protocol=tcp  accept&quot; 单个IP的某个端口
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;这个是我们用得最多的。封一个IP，和一个端口   reject 拒绝   accept 允许&lt;/p&gt;
&lt;p&gt;当然，我们仍然可以通过 ipset 来封禁 ip&lt;/p&gt;
&lt;p&gt;封禁 ip&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;firewall-cmd --permanent --zone=public --new-ipset=blacklist --type=hash:ip
firewall-cmd --permanent --zone=public --ipset=blacklist --add-entry=222.222.222.222
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;封禁网段&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;firewall-cmd --permanent --zone=public --new-ipset=blacklist --type=hash:net
firewall-cmd --permanent --zone=public --ipset=blacklist --add-entry=222.222.222.0/24
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;倒入 ipset 规则&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;firewall-cmd --permanent --zone=public --new-ipset-from-file=/path/blacklist.xml
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;然后封禁 blacklist&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;firewall-cmd --permanent --zone=public --add-rich-rule=&apos;rule source ipset=blacklist drop&apos;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;七、IP封禁和端口&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;firewall-cmd --permanent --add-rich-rule=&quot;rule family=ipv4 source address=192.168.1.2 port port=80  protocol=tcp  accept&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;只对192.168.1.2这个IP只能允许80端口访问  （拒绝访问只需把  accept 换成 &lt;code&gt;reject&lt;/code&gt;、删除该规则把 –add-rich-rule 改成 –remove-rich-rule即可）&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;firewall-cmd --permanent --add-rich-rule=&quot;rule family=ipv4 source address=192.168.1.2/24 port port=80  protocol=tcp  accept&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;只对192.168.1.2这个IP段只能允许80端口访问（拒绝访问只需把  accept 换成 &lt;code&gt;reject&lt;/code&gt;、删除该规则把 –add-rich-rule 改成 –remove-rich-rule即可）&lt;/p&gt;
&lt;p&gt;八、双网卡内网网卡不受防火墙限制&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;firewall-cmd --permanent --zone=public --add-interface=eth1   
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;公网网卡–zone=public默认区域&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;firewall-cmd --permanent --zone=trusted --add-interface=eth2
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;内网网卡–zone=trusted是受信任区域 可接受所有的网络连接&lt;/p&gt;
&lt;p&gt;九、重新载入以生效&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;firewall-cmd --reload
&lt;/code&gt;&lt;/pre&gt;
&lt;hr /&gt;
&lt;p&gt;本文参考链接：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://www.cnblogs.com/zqifa/p/linux-firewall-1.html&quot;&gt;centos7下Firewall使用详解(推荐该篇文章)&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;http://www.cnblogs.com/moxiaoan/p/5683743.html&quot;&gt;CentOS7使用firewalld打开关闭防火墙与端口&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://www.zhaokeli.com/Article/6321.html&quot;&gt;Centos7防火墙firewalld开放80端口&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;http://www.itlnmp.com/401.html&lt;/li&gt;
&lt;/ul&gt;
</content:encoded></item><item><title>Laverna - 同步Dropbox配置教程</title><link>https://blog.doracoin.cc/posts/2017/2017-09-07-laverna-config/</link><guid isPermaLink="true">https://blog.doracoin.cc/posts/2017/2017-09-07-laverna-config/</guid><pubDate>Thu, 07 Sep 2017 16:31:00 GMT</pubDate><content:encoded>&lt;p&gt;Laverna 是支持调用Dropbox API进行文档同步的，只需要填写一个APPKEY即可，接下来讲讲配置过程&lt;/p&gt;
&lt;p&gt;&amp;lt;!--more--&amp;gt;&lt;/p&gt;
&lt;h3&gt;登录Dropbox&lt;/h3&gt;
&lt;p&gt;登录这一步无需说明，没有账号的注册一个，有的直接登录。&lt;/p&gt;
&lt;hr /&gt;
&lt;h3&gt;创建APP&lt;/h3&gt;
&lt;p&gt;访问 &lt;strong&gt;&lt;a href=&quot;https://www.dropbox.com/developers/apps&quot;&gt;Dropbox Developers&lt;/a&gt;&lt;/strong&gt;,创建你的应用。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://img.doracoin.cc/images/2019/05/15/30a8a24b914b238f6e0ec026e5bd2a5d.jpg&quot; alt=&quot;创建APP&quot; /&gt;&lt;/p&gt;
&lt;p&gt;其中，&lt;code&gt;app key&lt;/code&gt;是你需要用到的内容，红框画出的 &lt;code&gt; Redirect URIs&lt;/code&gt; 部分是验证用的定向链接，填写你的Laverna所在的页面链接即可。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://img.doracoin.cc/images/2019/05/15/83afd5adde9a1d8a89f59030eb043383.jpg&quot; alt=&quot;填写验证链接&quot; /&gt;&lt;/p&gt;
&lt;p&gt;不过需要注意的是此处的要求：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Non-local OAuth 2 redirect URIs may not start with &quot;http:&quot; or &quot;javascript:&quot;&lt;/code&gt;
http协议和javascript协议是不支持的，也就是说这里只能用https的协议，看来是为了链接的安全性。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;https://img.doracoin.cc/images/2019/05/15/615bc8bf3652b48fc95ae082894bc9e0.jpg&quot; alt=&quot;填入appkey&quot; /&gt;&lt;/p&gt;
&lt;p&gt;然后到你的 &lt;strong&gt;Laverna&lt;/strong&gt; 设置里填入刚刚在 &lt;code&gt;Dropbox&lt;/code&gt; 后台找到的 &lt;code&gt;appkey&lt;/code&gt; ，点击保存后会跳转到 &lt;strong&gt;Laverna&lt;/strong&gt; 首页，然后会弹出一个弹窗，要求你做 &lt;code&gt;Dropbox&lt;/code&gt; 的验证，如果你的 &lt;code&gt;appkey&lt;/code&gt; 和 &lt;strong&gt;&lt;code&gt;Redirect URIs&lt;/code&gt;&lt;/strong&gt; 都正确设置了的话，过几秒这个验证窗口就会自动关闭，即为验证成功。&lt;/p&gt;
&lt;p&gt;然后回到首页，你的文章就会同步过来了。&lt;/p&gt;
</content:encoded></item><item><title>Html中通过JS脚本启动Android应用</title><link>https://blog.doracoin.cc/posts/2017/2017-08-31-html%E4%B8%AD%E9%80%9A%E8%BF%87js%E8%84%9A%E6%9C%AC%E5%90%AF%E5%8A%A8android%E5%BA%94%E7%94%A8/</link><guid isPermaLink="true">https://blog.doracoin.cc/posts/2017/2017-08-31-html%E4%B8%AD%E9%80%9A%E8%BF%87js%E8%84%9A%E6%9C%AC%E5%90%AF%E5%8A%A8android%E5%BA%94%E7%94%A8/</guid><pubDate>Thu, 31 Aug 2017 11:54:44 GMT</pubDate><content:encoded>&lt;p&gt;Html中通过JS脚本启动Android应用&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;参考链接&lt;/strong&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;a href=&quot;http://blog.csdn.net/sky_monkey/article/details/22938125&quot;&gt;通过网页的JS代码启动移动APP&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.jb51.net/article/43928.htm&quot;&gt;通过Html网页调用本地安卓(android)app程序代码&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3&gt;一、启动你的APP&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;首先，现在你的APP的&lt;code&gt;Manifest.xml&lt;/code&gt; 文件中配置你想提供给js调用的链接&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;将以下代码添加到你想启动的&lt;code&gt;activity&lt;/code&gt;中&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;intent-filter&amp;gt;
    &amp;lt;action android:name=&quot;android.intent.action.VIEW&quot; /&amp;gt;
    &amp;lt;category android:name=&quot;android.intent.category.DEFAULT&quot; /&amp;gt;
    &amp;lt;category android:name=&quot;android.intent.category.BROWSABLE&quot; /&amp;gt;

    &amp;lt;data
        android:host=&quot;test.app.com&quot;
        android:pathPrefix=&quot;/a&quot;
        android:scheme=&quot;mypackage&quot; /&amp;gt;
&amp;lt;/intent-filter&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;如上所示，则提供的链接为: &lt;code&gt;mypackage://test.app.com/a&lt;/code&gt; ，其中 &lt;code&gt;pathPrefix&lt;/code&gt;
属性是可选项，不使用时，js调用链接就不需要写后面的路径。 &lt;strong&gt;接下来是网页中的配置：&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;html&amp;gt;
    &amp;lt;head&amp;gt;
        &amp;lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=UTF-8&quot;&amp;gt;
        &amp;lt;title&amp;gt;Open APP&amp;lt;/title&amp;gt;
    &amp;lt;/head&amp;gt;

    &amp;lt;!-- 链接形式 --&amp;gt;
    &amp;lt;body&amp;gt;
        &amp;lt;a href=&quot;mypackage://test.app.com/a&quot;&amp;gt;打开app&amp;lt;/a&amp;gt;&amp;lt;br/&amp;gt;
    &amp;lt;/body&amp;gt;

    &amp;lt;!-- 脚本形式 --&amp;gt;
    &amp;lt;script&amp;gt;
        window.location.href = &quot;mypackage://test.app.com/a&quot;;
    &amp;lt;/script&amp;gt;
&amp;lt;/html&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;上面代码中的两种形式，按需求使用其中的一种即可，主要目的就是要打开你的APP &lt;code&gt;Manifest.xml&lt;/code&gt; 文件中配置的自定义路径。&lt;/p&gt;
&lt;h3&gt;二、启动APP同时传入参数&lt;/h3&gt;
&lt;p&gt;只能打开就没什么意思了，最重要的是，我们要传递数据时，怎么去传递数据呢？ 我们可通过链接参数的形式将参数传入到APP中，如下所示：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;html&amp;gt;
    &amp;lt;head&amp;gt;
        &amp;lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=UTF-8&quot;&amp;gt;
        &amp;lt;title&amp;gt;Open APP&amp;lt;/title&amp;gt;
    &amp;lt;/head&amp;gt;

    &amp;lt;!-- 链接形式 --&amp;gt;
    &amp;lt;body&amp;gt;
        &amp;lt;a href=&quot;mypackage://test.app.com/a?username=master&amp;amp;passwd=root&quot;&amp;gt;打开app&amp;lt;/a&amp;gt;&amp;lt;br/&amp;gt;
    &amp;lt;/body&amp;gt;

    &amp;lt;!-- 脚本形式 --&amp;gt;
    &amp;lt;script&amp;gt;
        window.location.href = &quot;mypackage://test.app.com/a?username=master&amp;amp;passwd=root&quot;;
    &amp;lt;/script&amp;gt;
&amp;lt;/html&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;如果你是通过浏览器打开的，那么可以在 &lt;code&gt;onCreate&lt;/code&gt; 或者 &lt;code&gt;onResume&lt;/code&gt; 中添加以下代码：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Uri uri = getIntent().getData();
String name= uri.getQueryParameter(&quot;username&quot;);
String pass= uri.getQueryParameter(&quot;passwd&quot;);
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;如果是通过WebView加载的，那么只要获取到 &lt;code&gt;Url&lt;/code&gt; 地址的字符串即可：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Uri uri=Uri.parse(url);
if (uri.getScheme().equals(&quot;mypackage&quot;)&amp;amp;&amp;amp;uri.getHost().equals(&quot;test.app.com&quot;)) {
    String arg0=uri.getQueryParameter(&quot;username&quot;);
    String arg1=uri.getQueryParameter(&quot;passwd&quot;);
} else {
    view.loadUrl(url);
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;以上就是 &lt;strong&gt;Html中通过JS脚本启动Android应用&lt;/strong&gt; 的方法。&lt;/p&gt;
</content:encoded></item><item><title>CentOS 7 下安装 Nginx</title><link>https://blog.doracoin.cc/posts/2017/2017-08-25-centos-7-%E4%B8%8B%E5%AE%89%E8%A3%85-nginx/</link><guid isPermaLink="true">https://blog.doracoin.cc/posts/2017/2017-08-25-centos-7-%E4%B8%8B%E5%AE%89%E8%A3%85-nginx/</guid><pubDate>Fri, 25 Aug 2017 09:44:09 GMT</pubDate><content:encoded>&lt;p&gt;Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件（IMAP/POP3）代理服务器&lt;/p&gt;
&lt;p&gt;&amp;lt;!--more--&amp;gt;&lt;/p&gt;
&lt;p&gt;Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件（IMAP/POP3）代理服务器，并在一个BSD-like 协议下发行。其特点是占有内存少，并发能力强，事实上nginx的并发能力确实在同类型的网页服务器中表现较好，在中国大陆使已经有很多网站在用nginx&lt;/p&gt;
&lt;h2&gt;安装所需环境&lt;/h2&gt;
&lt;p&gt;Nginx 是 C语言 开发，建议在 Linux 上运行，当然，也可以安装 Windows 版本，本篇则使用 CentOS 7 作为安装环境。&lt;/p&gt;
&lt;h3&gt;一. gcc 安装&lt;/h3&gt;
&lt;p&gt;安装 nginx 需要先将官网下载的源码进行编译，编译依赖 gcc 环境，如果没有 gcc 环境，则需要安装：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;yum install gcc-c++
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;二. PCRE pcre-devel 安装&lt;/h3&gt;
&lt;p&gt;PCRE(Perl Compatible Regular Expressions) 是一个Perl库，包括 perl 兼容的正则表达式库。nginx 的
http 模块使用 pcre 来解析正则表达式，所以需要在 linux 上安装 pcre 库，pcre-devel 是使用 pcre
开发的一个二次开发库。nginx也需要此库。命令：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;yum install -y pcre pcre-devel
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;三. zlib 安装&lt;/h3&gt;
&lt;p&gt;zlib 库提供了很多种压缩和解压缩的方式， nginx 使用 zlib 对 http 包的内容进行 gzip ，所以需要在 Centos 上安装 zlib
库。&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;yum install -y zlib zlib-devel
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;四. OpenSSL 安装&lt;/h3&gt;
&lt;p&gt;OpenSSL 是一个强大的安全套接字层密码库，囊括主要的密码算法、常用的密钥和证书封装管理功能及 SSL 协议，并提供丰富的应用程序供测试或其它目的使用。
nginx 不仅支持 http 协议，还支持 https（即在ssl协议上传输http），所以需要在 Centos 安装 OpenSSL 库。&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;yum install -y openssl openssl-devel
&lt;/code&gt;&lt;/pre&gt;
&lt;hr /&gt;
&lt;h2&gt;官网下载&lt;/h2&gt;
&lt;p&gt;1.直接下载.tar.gz安装包，地址：&lt;a href=&quot;http://nginx.org/en/download.html&quot;&gt;https://nginx.org/en/download.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://img.doracoin.cc/images/2018/10/11/d9b2f7962dd4a123d585f1e8c3daf315.png&quot; alt=&quot;d9b2f7962dd4a123d585f1e8c3daf315.png&quot; /&gt;&lt;/p&gt;
&lt;p&gt;2.使用wget命令下载（推荐）。&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;wget -c https://nginx.org/download/nginx-1.10.1.tar.gz
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;img src=&quot;https://img.doracoin.cc/images/2018/10/11/a93bbe69678efdc6e34bdfad3eca15b7.png&quot; alt=&quot;a93bbe69678efdc6e34bdfad3eca15b7.png&quot; /&gt;&lt;/p&gt;
&lt;p&gt;我下载的是1.10.1版本，这个是目前的稳定版。&lt;/p&gt;
&lt;h2&gt;解压&lt;/h2&gt;
&lt;p&gt;依然是直接命令：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;tar -zxvf nginx-1.10.1.tar.gz
cd nginx-1.10.1
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;配置&lt;/h2&gt;
&lt;p&gt;其实在 nginx-1.10.1 版本中你就不需要去配置相关东西，默认就可以了。当然，如果你要自己配置目录也是可以的。 1.使用默认配置
&lt;code&gt;./configure&lt;/code&gt; 2.自定义配置（不推荐）&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;./configure \
  --prefix=/usr/local/nginx \
  --conf-path=/usr/local/nginx/conf/nginx.conf \
  --pid-path=/usr/local/nginx/conf/nginx.pid \
  --lock-path=/var/lock/nginx.lock \
  --error-log-path=/var/log/nginx/error.log \
  --http-log-path=/var/log/nginx/access.log \
  --with-http_gzip_static_module \
  --http-client-body-temp-path=/var/temp/nginx/client \
  --http-proxy-temp-path=/var/temp/nginx/proxy \
  --http-fastcgi-temp-path=/var/temp/nginx/fastcgi \
  --http-uwsgi-temp-path=/var/temp/nginx/uwsgi \
  --http-scgi-temp-path=/var/temp/nginx/scgi
&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote&gt;
&lt;p&gt;注：将临时文件目录指定为/var/temp/nginx，需要在/var下创建temp及nginx目录&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;编译安装&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;make
make install
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;查找安装路径：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;whereis nginx
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;img src=&quot;https://img.doracoin.cc/images/2018/10/11/1a853aed23881c7ff1720f292b41adb6.png&quot; alt=&quot;1a853aed23881c7ff1720f292b41adb6.png&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;启动、停止nginx&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;cd /usr/local/nginx/sbin/
./nginx 
./nginx -s stop
./nginx -s quit
./nginx -s reload
./nginx -s quit:此方式停止步骤是待nginx进程处理任务完毕进行停止。
./nginx -s stop:此方式相当于先查出nginx进程id再使用kill命令强制杀掉进程。
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;查询nginx进程：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;ps aux|grep nginx
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;重启 nginx&lt;/h2&gt;
&lt;p&gt;1.先停止再启动（推荐）： 对 nginx 进行重启相当于先停止再启动，即先执行停止命令再执行启动命令。如下：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;./nginx -s quit
./nginx
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;2.重新加载配置文件： 当 nginx的配置文件 nginx.conf 修改后，要想让配置生效需要重启 nginx，使用-s reload不用先停止
nginx 再启动 nginx 即可将配置信息在 nginx 中生效，如下：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;./nginx -s reload
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;启动成功后，在浏览器可以看到这样的页面：&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://img.doracoin.cc/images/2018/10/11/86a3fddb697a1ca3bba3845e4d4a4578.png&quot; alt=&quot;86a3fddb697a1ca3bba3845e4d4a4578.png&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;开机自启动&lt;/h2&gt;
&lt;p&gt;即在rc.local增加启动代码就可以了。&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;vi /etc/rc.local
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;增加一行 &lt;code&gt;/usr/local/nginx/sbin/nginx&lt;/code&gt; 设置执行权限：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;chmod 755 rc.local
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;img src=&quot;https://img.doracoin.cc/images/2018/10/11/847df5cbedd26a93124b236ea6acb27d.png&quot; alt=&quot;847df5cbedd26a93124b236ea6acb27d.png&quot; /&gt;&lt;/p&gt;
&lt;p&gt;到这里，nginx就安装完毕了，启动、停止、重启操作也都完成了，当然，你也可以添加为系统服务，我这里就不在演示了。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;文章转自 &lt;strong&gt;&lt;a href=&quot;http://www.linuxidc.com/Linux/2016-09/134907.htm&quot;&gt;CentOS 7 下安装 Nginx&lt;/a&gt;&lt;/strong&gt; 转载请保留出处&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr /&gt;
&lt;h3&gt;Nginx反向代理设置 从80端口转向其他端口&lt;/h3&gt;
&lt;p&gt;找到nginx安装目录的 &lt;code&gt;conf/nginx.conf&lt;/code&gt; 文件，编辑：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;worker_processes  1;

events {
    worker_connections  1024;
}

http {
    include   mime.types;
    default_type  application/octet-stream;

    sendfileon;

    keepalive_timeout  65;

    server {
        listen   80;
        server_name  yourserver.name;

        location / {
            proxy_pass   http://127.0.0.1:8080;
        }
    }

}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;server下的结点：&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;listen：监听80端口&lt;/li&gt;
&lt;li&gt;server_name：转发到哪个地址&lt;/li&gt;
&lt;li&gt;proxy_pass：代理到哪个地址&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;nginx常用命令（要进入到nginx的目录）：&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;开启：start nginx&lt;/li&gt;
&lt;li&gt;重启：nginx -s reload&lt;/li&gt;
&lt;/ul&gt;
</content:encoded></item><item><title>记录一些好用的 Markdown 编辑器</title><link>https://blog.doracoin.cc/posts/2017/2017-08-11-%E8%AE%B0%E5%BD%95%E4%B8%80%E4%BA%9B%E5%A5%BD%E7%94%A8%E7%9A%84-markdown-%E7%BC%96%E8%BE%91%E5%99%A8/</link><guid isPermaLink="true">https://blog.doracoin.cc/posts/2017/2017-08-11-%E8%AE%B0%E5%BD%95%E4%B8%80%E4%BA%9B%E5%A5%BD%E7%94%A8%E7%9A%84-markdown-%E7%BC%96%E8%BE%91%E5%99%A8/</guid><pubDate>Fri, 11 Aug 2017 09:24:52 GMT</pubDate><content:encoded>&lt;p&gt;个人认为目前Windows下最好用的基本上就是Typora了&lt;/p&gt;
&lt;p&gt;&amp;lt;!--more--&amp;gt;&lt;/p&gt;
&lt;h4&gt;Typora 一款纯净的 markdown 编辑器&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;https://typora.io/&quot;&gt;官网链接&lt;/a&gt;&lt;/strong&gt; 该编辑器同时支持 Windows、MacOS、Linux
三种系统。编辑形式并没有跟随时下大多数编辑器那样分为：左编辑+右预览 的形式，而是一种即时编辑，即时解析为 markdown 格式的方案。
该编辑器还支持多种主题方案，软件安装后就已经备好了几个选项，更多方案可以到官网下载，看起来主题还会继续扩充。 支持导出 PDF 和 Html
格式，不像有些编辑器将 “导出为PDF” 设为收费选项，很亲民。&lt;/p&gt;
</content:encoded></item><item><title>Intellij IDEA配置 Maven中央仓库</title><link>https://blog.doracoin.cc/posts/2017/2017-08-01-intellij-idea%E9%85%8D%E7%BD%AE-maven%E4%B8%AD%E5%A4%AE%E4%BB%93%E5%BA%93/</link><guid isPermaLink="true">https://blog.doracoin.cc/posts/2017/2017-08-01-intellij-idea%E9%85%8D%E7%BD%AE-maven%E4%B8%AD%E5%A4%AE%E4%BB%93%E5%BA%93/</guid><pubDate>Tue, 01 Aug 2017 10:26:23 GMT</pubDate><content:encoded>&lt;p&gt;如果是使用的IDEA内置的Maven，那就到你IDEA的安装路径下找以下路径 :&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;.\JetBrains\IntelliJ IDEA Community Edition 2017.2\plugins\maven\lib
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;里面会有你的IDEA内置的maven，我的是 &lt;code&gt;maven2&lt;/code&gt; 和 &lt;code&gt;maven3&lt;/code&gt; 接下来分别配置maven的 &lt;code&gt;settings.xml&lt;/code&gt; 文件&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;.\lib\maven*\conf\settings.xml
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;打开配置文件后，搜索如下key值 &lt;code&gt;mirrors&lt;/code&gt;, 添加 &lt;code&gt;mirror&lt;/code&gt; 节点。 &lt;strong&gt;注:
由于国内访问Maven的仓库连通率非常低，而阿里云提供了一个Maven的国内镜像，使用阿里云的节点速度会快很多&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;mirrors&amp;gt;
  &amp;lt;!--mirror
  | Specifies a repository mirror site to use instead of a given repository. The repository that
  | this mirror serves has an ID that matches the mirrorOf element of this mirror. IDs are used
  | for inheritance and direct lookup purposes, and must be unique across the set of mirrors.
  |
  &amp;lt;mirror&amp;gt;
    &amp;lt;id&amp;gt;mirrorId&amp;lt;/id&amp;gt;
    &amp;lt;mirrorOf&amp;gt;repositoryId&amp;lt;/mirrorOf&amp;gt;
    &amp;lt;name&amp;gt;Human Readable Name for this Mirror.&amp;lt;/name&amp;gt;
    &amp;lt;url&amp;gt;http://my.repository.com/repo/path&amp;lt;/url&amp;gt;
  &amp;lt;/mirror&amp;gt;
  --&amp;gt;
  &amp;lt;mirror&amp;gt;
    &amp;lt;id&amp;gt;alimaven&amp;lt;/id&amp;gt;
    &amp;lt;name&amp;gt;aliyun maven&amp;lt;/name&amp;gt;
    &amp;lt;url&amp;gt;http://maven.aliyun.com/nexus/content/groups/public/&amp;lt;/url&amp;gt;
    &amp;lt;mirrorOf&amp;gt;central&amp;lt;/mirrorOf&amp;gt;
  &amp;lt;/mirror&amp;gt;
&amp;lt;/mirrors&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;就先记这么多，以后会慢慢补充。&lt;/p&gt;
</content:encoded></item><item><title>Wordpress 更换域名</title><link>https://blog.doracoin.cc/posts/2017/2017-07-20-wordpress-%E6%9B%B4%E6%8D%A2%E5%9F%9F%E5%90%8D/</link><guid isPermaLink="true">https://blog.doracoin.cc/posts/2017/2017-07-20-wordpress-%E6%9B%B4%E6%8D%A2%E5%9F%9F%E5%90%8D/</guid><pubDate>Thu, 20 Jul 2017 09:59:39 GMT</pubDate><content:encoded>&lt;h3&gt;问题缘由&lt;/h3&gt;
&lt;p&gt;Wordpress要换域名怎么办？后台的设置-常规里修改里域名后，全站打不开了，这是为什么？怎么办？&lt;/p&gt;
&lt;h3&gt;问题解说&lt;/h3&gt;
&lt;p&gt;其实wordpress换域名需要到数据库进行操作的，首先，来分析一下换域名的几种常见情况；&lt;/p&gt;
&lt;h4&gt;一、换空间换域名&lt;/h4&gt;
&lt;p&gt;1、如果是上述问题，打包备份旧空间ftp内的所有文件，进旧站数据库phpmyadmin里导出你网站的数据库sql文件；&lt;/p&gt;
&lt;p&gt;2、将备份的ftp所有文件上传至新的空间FTP内，将备份的sql上传到新空间的数据库phpmyadmin内；&lt;/p&gt;
&lt;p&gt;3、打开新空间ftp的网站根目录找到wp-config.php文件，编辑它（php文件不要用txt去编辑），进行编辑配置新的数据库连接信息；&lt;/p&gt;
&lt;p&gt;4、去新的空间的数据库phpmyadmin里，做sql批量换域名处理（详见下面教程二）&lt;/p&gt;
&lt;h4&gt;二、仅换域名，没有换空间&lt;/h4&gt;
&lt;p&gt;打开新空间的phpmyadmin（数据库控制面板）&lt;/p&gt;
&lt;p&gt;然后选择新的数据库名，点击后，进入wp_开头的大于等于11个的表，然后选择选项卡里的sql，如图：&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://img.doracoin.cc/images/2018/10/11/5f34ba9c1576bc052ec52752a86160cd.jpg&quot; alt=&quot;5f34ba9c1576bc052ec52752a86160cd.jpg&quot; /&gt;&lt;/p&gt;
&lt;p&gt;然后就是进行sql批量处理的命令了：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;UPDATE wp_options SET option_value = replace( option_value, &apos;http://www.old.com&apos;, &apos;http://www.new.com&apos; ) WHERE option_name = &apos;home&apos; OR option_name = &apos;siteurl&apos;;
UPDATE wp_posts SET post_content = replace( post_content, &apos;http://www.old.com&apos;, &apos;http://www.new.com&apos; ) ;
UPDATE wp_posts SET guid = replace( guid, &apos;http://www.old.com&apos;, &apos;http://www.new.com&apos; ) ;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;old代表旧域名、new代表新域名，将上面的执行语句修改为你们自己的，然后点击执行即可！&lt;/p&gt;
&lt;p&gt;到这一步，就基本全OK了。。。当然换域名的途中也会遇到各种问题，出现问题了可以回帖或者加入我们的技术群群求帮助哈！&lt;/p&gt;
&lt;h3&gt;附录：一键更新域名插件&lt;/h3&gt;
&lt;p&gt;该插件的使用，建议没有代码经验或者连phpmyadmin是什么都不知道的小白用户，用起来超爽的！&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://img.doracoin.cc/images/2018/10/11/6443603d43829593d77802584ea16e1c.jpg&quot; alt=&quot;6443603d43829593d77802584ea16e1c.jpg&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.doracoin.cc/wp/download/635/&quot;&gt;Wordpress更换域名插件&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;点击下载该插件，上传插件，启动插件，去工具-更换域名内进行设置&lt;/p&gt;
&lt;p&gt;全部设置后，提示更换成功后，切勿以为一切已经结束，还需要到WP后台-设置-常规里 将WordPress地址和站点地址换成您的新域名网址即可！！&lt;/p&gt;
</content:encoded></item><item><title>Linux服务端安装libsodium支持chacha20</title><link>https://blog.doracoin.cc/posts/2017/2017-07-20-linux%E6%9C%8D%E5%8A%A1%E7%AB%AF%E5%AE%89%E8%A3%85libsodium%E6%94%AF%E6%8C%81chacha20/</link><guid isPermaLink="true">https://blog.doracoin.cc/posts/2017/2017-07-20-linux%E6%9C%8D%E5%8A%A1%E7%AB%AF%E5%AE%89%E8%A3%85libsodium%E6%94%AF%E6%8C%81chacha20/</guid><pubDate>Thu, 20 Jul 2017 05:58:51 GMT</pubDate><content:encoded>&lt;p&gt;如果要使用 salsa20 或 chacha20 或 chacha20-ietf 算法，请安装 &lt;a href=&quot;https://github.com/jedisct1/libsodium&quot;&gt;libsodium&lt;/a&gt;，否则就算在config.json里面设置成chacha20也会提示 method not supported.&lt;/p&gt;
&lt;p&gt;CentOS:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;yum install epel-release
yum install libsodium
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;如果想自己编译，那么可以用以下的命令:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;yum -y groupinstall &quot;Development Tools&quot;

wget https://github.com/jedisct1/libsodium/releases/download/1.0.12/libsodium-1.0.12.tar.gz

tar xf libsodium-1.0.12.tar.gz &amp;amp;&amp;amp; cd libsodium-1.0.12

./configure &amp;amp;&amp;amp; make -j2 &amp;amp;&amp;amp; make install

echo /usr/local/lib &amp;gt; /etc/ld.so.conf.d/usr_local_lib.conf

ldconfig
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;ubuntu/debian：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;apt-get install build-essential

wget https://github.com/jedisct1/libsodium/releases/download/1.0.12/libsodium-1.0.12.tar.gz

tar xf libsodium-1.0.12.tar.gz &amp;amp;&amp;amp; cd libsodium-1.0.12

./configure &amp;amp;&amp;amp; make -j2 &amp;amp;&amp;amp; make install

ldconfig
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;如果曾经安装过旧版本，亦可重复用以上步骤更新到最新版，仅1.0.4或以上版本支持chacha20-ietf 参考作者原文：
&lt;strong&gt;https://github.com/breakwa11/shadowsocks-rss/wiki/libsodium&lt;/strong&gt;&lt;/p&gt;
</content:encoded></item><item><title>树莓派2B Raspberry Pi 2b 风扇安装方法</title><link>https://blog.doracoin.cc/posts/2017/2017-04-30-%E6%A0%91%E8%8E%93%E6%B4%BE2b-raspberry-pi-2b-%E9%A3%8E%E6%89%87%E5%AE%89%E8%A3%85%E6%96%B9%E6%B3%95/</link><guid isPermaLink="true">https://blog.doracoin.cc/posts/2017/2017-04-30-%E6%A0%91%E8%8E%93%E6%B4%BE2b-raspberry-pi-2b-%E9%A3%8E%E6%89%87%E5%AE%89%E8%A3%85%E6%96%B9%E6%B3%95/</guid><pubDate>Sun, 30 Apr 2017 11:38:50 GMT</pubDate><content:encoded>&lt;p&gt;转载文章，因为我买了和这个博主同样型号的风扇&lt;/p&gt;
&lt;p&gt;&amp;lt;!--more--&amp;gt;&lt;/p&gt;
&lt;p&gt;插图就直接引用人家的照片了，原文章已保留出处：&lt;a href=&quot;http://bbs.shumeipaiba.com/thread-55-1-1.html&quot;&gt;树莓派2B Raspberry Pi 2b 风扇安装方法&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://img.doracoin.cc/images/2018/10/11/27e41ff862269195e08ac16ee15fef7a.jpg&quot; alt=&quot;27e41ff862269195e08ac16ee15fef7a.jpg&quot; /&gt;&lt;/p&gt;
&lt;p&gt;可直接插入树莓派的GPIO使用，具体接线方式如下&lt;/p&gt;
&lt;p&gt;风扇线的接口，看得到金属触片一面，朝外。4脚接风扇红线、6脚接风扇黑线。若不转，金属出片一侧朝内尝试。 实拍图：&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://img.doracoin.cc/images/2018/10/11/a285daf2114e1d77dcffe68797a47417.png&quot; alt=&quot;a285daf2114e1d77dcffe68797a47417.png&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://img.doracoin.cc/images/2018/10/11/b228315f5fc4d543277a505a8629bcb7.jpg&quot; alt=&quot;b228315f5fc4d543277a505a8629bcb7.jpg&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://img.doracoin.cc/images/2018/10/11/13b6b1d587ced7fef0e22ba459bd060d.jpg&quot; alt=&quot;13b6b1d587ced7fef0e22ba459bd060d.jpg&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://img.doracoin.cc/images/2018/10/11/d199c284f123700032d73e0cbca8d3ca.jpg&quot; alt=&quot;d199c284f123700032d73e0cbca8d3ca.jpg&quot; /&gt;&lt;/p&gt;
&lt;p&gt;由于风扇本身性能限制，风力不一定能达到你所预想的那样。更不能跟大型风扇比较。但树莓派足够了。个人认为还是很大风力的。
个人建议风扇方向朝外安装，不过还是各人有各人的见解，评喜好安装就好。&lt;/p&gt;
</content:encoded></item><item><title>Windows下使用批处理配置Java环境变量</title><link>https://blog.doracoin.cc/posts/2017/2017-04-26-windows%E4%B8%8B%E4%BD%BF%E7%94%A8%E6%89%B9%E5%A4%84%E7%90%86%E9%85%8D%E7%BD%AEjava%E7%8E%AF%E5%A2%83%E5%8F%98%E9%87%8F/</link><guid isPermaLink="true">https://blog.doracoin.cc/posts/2017/2017-04-26-windows%E4%B8%8B%E4%BD%BF%E7%94%A8%E6%89%B9%E5%A4%84%E7%90%86%E9%85%8D%E7%BD%AEjava%E7%8E%AF%E5%A2%83%E5%8F%98%E9%87%8F/</guid><pubDate>Wed, 26 Apr 2017 07:42:53 GMT</pubDate><content:encoded>&lt;p&gt;直接贴代码&lt;/p&gt;
&lt;p&gt;&amp;lt;!--more--&amp;gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;@echo off
chcp 65001
    rem --- Base Config ---
    :init 
    set JAVA_HOME_1_8=C:\Program Files\Java\jdk1.8.0_131
    set JAVA_HOME_1_7=C:\Program Files\Java\jdk1.7.0_25
    set JAVA_HOME_1_6=C:\Program Files\Java\jdk1.6.0_43
    
    :start 
    echo JDK 版本: 
    java -version 
    ping 127.0.0.1 -n 2 -w 1000 &amp;gt; nul 
    echo. 
    echo ============================================= 
    echo jdk版本列表 
    echo 1.8 
    echo 1.7 
    echo 1.6 
    echo ============================================= 
    
    :select
    set /p opt=请选择jdk版本： 
    if %opt%==1.8 (
     set TARGET_JAVA_HOME=%JAVA_HOME_1_8%
    )
    if %opt%==1.7 (
     set TARGET_JAVA_HOME=%JAVA_HOME_1_7%
    )
    if %opt%==1.6 (
     set TARGET_JAVA_HOME=%JAVA_HOME_1_6%
    )
    
    echo &quot;当前选择的Java路径:%TARGET_JAVA_HOME%&quot;
    
    wmic ENVIRONMENT where &quot;name=&apos;JAVA_HOME&apos;&quot; delete
    wmic ENVIRONMENT create name=&quot;JAVA_HOME&quot;,username=&quot;&amp;lt;system&amp;gt;&quot;,VariableValue=&quot;%TARGET_JAVA_HOME%&quot;
    
    rem --- set path ---
    set jhb=%TARGET_JAVA_HOME%\bin
    set pt=%Path%
    
    call set pt=%%pt:%jhb%;=%%
    call set pt=%%pt:%jhb%=%%
    
    wmic ENVIRONMENT where &quot;name=&apos;Path&apos; and username=&apos;&amp;lt;system&amp;gt;&apos;&quot; set VariableValue=&quot;%jhb%;%pt%&quot;
    
    rem -- refresh env ---
    call RefreshEnv
    echo 任意键退出...
    pause&amp;gt;nul
    chcp 936
    @echo on
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;粘贴到TXT文本中，另存为 .bat就可以使用了。&lt;/p&gt;
</content:encoded></item><item><title>修改树莓派VNC模式下分辨率过小的问题</title><link>https://blog.doracoin.cc/posts/2017/2017-04-25-%E4%BF%AE%E6%94%B9%E6%A0%91%E8%8E%93%E6%B4%BEvnc%E6%A8%A1%E5%BC%8F%E4%B8%8B%E5%88%86%E8%BE%A8%E7%8E%87%E8%BF%87%E5%B0%8F%E7%9A%84%E9%97%AE%E9%A2%98/</link><guid isPermaLink="true">https://blog.doracoin.cc/posts/2017/2017-04-25-%E4%BF%AE%E6%94%B9%E6%A0%91%E8%8E%93%E6%B4%BEvnc%E6%A8%A1%E5%BC%8F%E4%B8%8B%E5%88%86%E8%BE%A8%E7%8E%87%E8%BF%87%E5%B0%8F%E7%9A%84%E9%97%AE%E9%A2%98/</guid><pubDate>Tue, 25 Apr 2017 16:25:33 GMT</pubDate><content:encoded>&lt;p&gt;首先参考附录文章：&lt;a href=&quot;https://support.realvnc.com/knowledgebase/article/View/523&quot;&gt;Troubleshooting VNC Server on the RaspberryPi&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;一种方法是修改 &lt;code&gt;/boot/config.txt&lt;/code&gt; 文件，找到如下两句话，将前面的注释去掉，并修改为你希望的分辨率，然后重启。&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;framebuffer_width=1920
framebuffer_height=1080
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;这种方法经测试可行，其他方法参考附录文章。&lt;/p&gt;
</content:encoded></item><item><title>推荐Linux/Unix必备的五本书</title><link>https://blog.doracoin.cc/posts/2017/2017-04-20-%E6%8E%A8%E8%8D%90linuxunix%E5%BF%85%E5%A4%87%E7%9A%84%E4%BA%94%E6%9C%AC%E4%B9%A6/</link><guid isPermaLink="true">https://blog.doracoin.cc/posts/2017/2017-04-20-%E6%8E%A8%E8%8D%90linuxunix%E5%BF%85%E5%A4%87%E7%9A%84%E4%BA%94%E6%9C%AC%E4%B9%A6/</guid><pubDate>Thu, 20 Apr 2017 07:49:18 GMT</pubDate><content:encoded>&lt;p&gt;来源： &lt;a href=&quot;https://zhuanlan.zhihu.com/p/19948979&quot;&gt;推荐Linux/Unix必备的五本书 - 知乎专栏&lt;/a&gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;1、鸟哥的Linux私房菜 （基础学习篇 第三版）&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://img.doracoin.cc/images/2018/10/11/ad9110a4e050a3c67b2db48f1091db78.jpg&quot; alt=&quot;ad9110a4e050a3c67b2db48f1091db78.jpg&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;推荐理由：&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;的确是一本非常好的书，入门到精通的经典教程。读起来非常的有吸，不可多得的好书，难得的是作者一直在更新版本，与时俱进啊。加油，鸟哥！！多出好书
实践出真知，但是初学Linux，往往不知从何下手，更别提实践了。这本书里面有好多的例子，帮助我更快的学习了Linux。我是为学嵌入式才学Linux的，看完之后，感觉这本书不太适合我的目标啊。呵呵，虽然它是一本好书，还是应该选择一本专门讲嵌入式Linux的书籍看。这样比较有针对性。&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;2、UNIX环境高级编程（第3版）&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://img.doracoin.cc/images/2018/10/11/befe97bdd8c87447aa4f4de5d64d1802.png&quot; alt=&quot;befe97bdd8c87447aa4f4de5d64d1802.png&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;推荐理由&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://img.doracoin.cc/images/2018/10/11/6ebb1a258e76c4b987e1805c0969b115.png&quot; alt=&quot;6ebb1a258e76c4b987e1805c0969b115.png&quot; /&gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;3、Linux UNIX系统编程手册 套装上下册&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://img.doracoin.cc/images/2018/10/11/2d46e35efb309ed67664024edddf6498.jpg&quot; alt=&quot;2d46e35efb309ed67664024edddf6498.jpg&quot; /&gt;&lt;/p&gt;
&lt;p&gt;推荐理由：&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://img.doracoin.cc/images/2018/10/11/0a27a824b8ccd199fbe224970cbe90ca.png&quot; alt=&quot;0a27a824b8ccd199fbe224970cbe90ca.png&quot; /&gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;4、Linux命令行大全&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://img.doracoin.cc/images/2018/10/11/d8dd6be863cee665430a1f81b8b9bd9f.jpg&quot; alt=&quot;d8dd6be863cee665430a1f81b8b9bd9f.jpg&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;推荐理由：&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://img.doracoin.cc/images/2018/10/11/6ea7f14b735c928017fc5dd0b08a1992.png&quot; alt=&quot;6ea7f14b735c928017fc5dd0b08a1992.png&quot; /&gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;5、Linux就是这个范儿&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://img.doracoin.cc/images/2018/10/11/55bc1d86cc7c61473c68687e80b254a4.png&quot; alt=&quot;55bc1d86cc7c61473c68687e80b254a4.png&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;推荐理由：&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://img.doracoin.cc/images/2018/10/11/399ed26e501889f3db513444055b18c6.png&quot; alt=&quot;399ed26e501889f3db513444055b18c6.png&quot; /&gt;&lt;/p&gt;
</content:encoded></item><item><title>Win10 解决svchost.exe 占用网速</title><link>https://blog.doracoin.cc/posts/2017/2017-03-06-win10-%E8%A7%A3%E5%86%B3svchostexe-%E5%8D%A0%E7%94%A8%E7%BD%91%E9%80%9F/</link><guid isPermaLink="true">https://blog.doracoin.cc/posts/2017/2017-03-06-win10-%E8%A7%A3%E5%86%B3svchostexe-%E5%8D%A0%E7%94%A8%E7%BD%91%E9%80%9F/</guid><pubDate>Mon, 06 Mar 2017 13:23:06 GMT</pubDate><content:encoded>&lt;p&gt;很多网友发现svchost.exe这个系统进程总是在不停的下载数据。以为是中毒，但是使用各种杀毒软件也无法查杀出病毒。其实不必担心中毒，这是微软的一个服务而已，作用是使用空闲的宽带在后台传送文件，例如：windows更新或者MSN Explorer 。只需要在服务中关闭即可&lt;/p&gt;
&lt;p&gt;&amp;lt;!--more--&amp;gt;&lt;/p&gt;
&lt;h6&gt;1.打开任务管理器&lt;/h6&gt;
&lt;p&gt;&lt;img src=&quot;https://img.doracoin.cc/images/2018/10/11/9ec249088e2d871b7f40963314ab56b0.png&quot; alt=&quot;9ec249088e2d871b7f40963314ab56b0.png&quot; /&gt;&lt;/p&gt;
&lt;p&gt;从Win10任务管理器中找到服务&lt;/p&gt;
&lt;hr /&gt;
&lt;h6&gt;2.在服务界面中找到 &lt;strong&gt;Background Intelligent Transfer Service&lt;/strong&gt;&lt;/h6&gt;
&lt;p&gt;&lt;img src=&quot;https://img.doracoin.cc/images/2018/10/11/ced781040d5ff42a2042006203c89d47.png&quot; alt=&quot;ced781040d5ff42a2042006203c89d47.png&quot; /&gt;&lt;/p&gt;
&lt;p&gt;找到服务 Background Intelligent Transfer Service&lt;/p&gt;
&lt;hr /&gt;
&lt;h6&gt;3.在该服务上: 右键→属性→停止服务→将启动类型修改为 手动&lt;/h6&gt;
&lt;p&gt;&lt;img src=&quot;https://img.doracoin.cc/images/2018/10/11/805eb4181883589253773079c4436e43.png&quot; alt=&quot;805eb4181883589253773079c4436e43.png&quot; /&gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;&lt;strong&gt;需要注意的是Win10系统的Windows updata更新服务依赖Background Intelligent Transfer Service服务，禁用后将无法自动更新，所以启动类型建议修改为&quot;手动&quot;&lt;/strong&gt;&lt;/p&gt;
</content:encoded></item><item><title>SourceTree 一款支持多平台的版本控制工具</title><link>https://blog.doracoin.cc/posts/2017/2017-03-06-sourcetree-%E4%B8%80%E6%AC%BE%E6%94%AF%E6%8C%81%E5%A4%9A%E5%B9%B3%E5%8F%B0%E7%9A%84%E7%89%88%E6%9C%AC%E6%8E%A7%E5%88%B6%E5%B7%A5%E5%85%B7/</link><guid isPermaLink="true">https://blog.doracoin.cc/posts/2017/2017-03-06-sourcetree-%E4%B8%80%E6%AC%BE%E6%94%AF%E6%8C%81%E5%A4%9A%E5%B9%B3%E5%8F%B0%E7%9A%84%E7%89%88%E6%9C%AC%E6%8E%A7%E5%88%B6%E5%B7%A5%E5%85%B7/</guid><pubDate>Mon, 06 Mar 2017 07:24:37 GMT</pubDate><content:encoded>&lt;p&gt;&lt;a href=&quot;https://www.sourcetreeapp.com/&quot;&gt;SourceTree&lt;/a&gt; 是 Windows 和Mac OS X 下免费的 Git 和 Hg 客户端管理工具，同时也是Mercurial和Subversion版本控制系统工具。支持创建、克隆、提交、push、pull 和合并等操作。&lt;/p&gt;
&lt;p&gt;使用该工具需注册账号并登录。&lt;/p&gt;
&lt;p&gt;由于国外站点访问较慢，附上本站下载链接：[download id=&quot;254&quot;]&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://img.doracoin.cc/images/2018/10/11/f388943b8e1273c77341d852eb2ffae3.png&quot; alt=&quot;f388943b8e1273c77341d852eb2ffae3.png&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.sourcetreeapp.com/&quot;&gt;SourceTree&lt;/a&gt;
拥有一个精美简洁的界面，大大简化了开发者与代码库之间的Git操作方式，这对于那些不熟悉Git命令的开发者来说非常实用。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;SourceTree拥有完整的Git功能：&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;通过一个简单的用户界面即可使用所有的Git命令&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;通过一次单击，即可管理所有的Git库，无论是托管的还是本地的&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;通过一次单击，即可进行commit、push、pull、merge等操作&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;一些先进的功能，如补丁处理、rebase、shelve、cherry picking等&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;可以连接到你托管在Bitbucket、Stash、Microsoft TFS或GitHub中的代码库&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;https://img.doracoin.cc/images/2018/10/11/62fdc25284689bdc32a4c19dc486132c.png&quot; alt=&quot;62fdc25284689bdc32a4c19dc486132c.png&quot; /&gt;&lt;/p&gt;
&lt;p&gt;安装过后，会提示进行一些配置，可以直接配置也可跳过稍后配置，但要在登录账号步骤之后才会出现跳过配置的按钮，忘了截图，此处不表。&lt;/p&gt;
</content:encoded></item><item><title>Clouds</title><link>https://blog.doracoin.cc/posts/2017/2017-01-16-clouds/</link><guid isPermaLink="true">https://blog.doracoin.cc/posts/2017/2017-01-16-clouds/</guid><pubDate>Mon, 16 Jan 2017 15:08:46 GMT</pubDate><content:encoded>&lt;p&gt;一款基于Web的云端3D飞行效果&lt;/p&gt;
&lt;p&gt;&amp;lt;!--more--&amp;gt;&lt;/p&gt;
&lt;p&gt;原作者主页： &lt;a href=&quot;http://mrdoob.com/#/131/clouds&quot;&gt;Mr.doob&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;原作者Github： &lt;a href=&quot;https://github.com/mrdoob&quot;&gt;Mr.doob&lt;/a&gt;&lt;/p&gt;
</content:encoded></item><item><title>AAPT err: libpng error: Not a PNG file</title><link>https://blog.doracoin.cc/posts/2016/2016-12-29-aapt-err-not-a-png-file/</link><guid isPermaLink="true">https://blog.doracoin.cc/posts/2016/2016-12-29-aapt-err-not-a-png-file/</guid><pubDate>Thu, 29 Dec 2016 17:35:37 GMT</pubDate><content:encoded>&lt;p&gt;描述：Android studio 在导入别的项目时候报这样的错误。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;AAPT err(Facade for 1224284530): libpng error: Not a PNG file&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;!--more--&amp;gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;app:mergeDebugResources
Error:Execution failed for task &apos;:app:mergeDebugResources&apos;.
Some file crunching failed, see logs for details
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;如下图&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://ooo.0o0.ooo/2017/09/16/59bd37303c182.png&quot; alt=&quot;a&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;错误原因&lt;/strong&gt;：这是由于Android studio在build的时候会使用AAPT 工具优化我们的png图片，可能们有些图片本质不是png格式图片，例如在eclipse中把一张jpeg后缀图片该成png后缀，再导入到Android studio中就会这样。(真正的jpeg格式图片Android studio 也是可以使用的)&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;解决方案&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;一、利用软件将其他格式的图片另存为真正png图片，或者将后缀改变成它真正格式的后缀&lt;/p&gt;
&lt;p&gt;二、如果不知道是哪一张图片有问题，可以利用Android studio 自带的图片查看，查看每个图片，&lt;/p&gt;
&lt;p&gt;右上角会显示图片的真正格式，然后利用第三方软件另存为png格式的图片 (如下图展示)
&lt;img src=&quot;https://ooo.0o0.ooo/2017/09/16/59bd3730436ec.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;三、在build.gradle文件中添加&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;
aaptOptions {
    cruncherEnabled = false
}
&lt;/code&gt;&lt;/pre&gt;
</content:encoded></item><item><title>If You Love Something, Set It Free</title><link>https://blog.doracoin.cc/posts/2016/2016-12-29-if-you-love-something-set-it-free/</link><guid isPermaLink="true">https://blog.doracoin.cc/posts/2016/2016-12-29-if-you-love-something-set-it-free/</guid><pubDate>Thu, 29 Dec 2016 11:36:16 GMT</pubDate><content:encoded>&lt;p&gt;为什么会转载这篇文章呢？因为这个理念真的非常打动我。&lt;/p&gt;
&lt;p&gt;&amp;lt;!--more--&amp;gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.loli.net/2017/09/16/59bd343c74308.jpg&quot; alt=&quot;If You Love Something, Set It Free&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.unrealengine.com/zh-CN/blog/ue4-is-free&quot;&gt;原文: If You Love Something, Set It Free&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;您可以下载引擎并将其用于游戏开发的各个方面，包括教育、建筑以及可视化，甚至虚拟现实、电影和动画。当您发布游戏或应用时，如果由您开发的每个游戏在每季度获得的收入少于3000美元（约18787人民币），则您无需支付任何费用。如超过3000美元，您需要开始支付5%的版权费用。这样的话，只有您成功，我们才能成功。&lt;/p&gt;
&lt;p&gt;虚幻引擎是我们在Epic构建自己的游戏时使用的完整技术。这个引擎可以支持从独立小项目到高端平台大作的所有作品;支持所有主要平台;而且还包括了100%的C++源码。我们的目标是让您能获得所有所需工具和技术，这样您可以制作任何内容，而且可以控制您的进度和产品走向。无论您在构建和发布游戏时需要什么，您都可以在虚幻引擎4中找到。您可以在虚幻商城上寻找这样的资源，也可以亲自创建它们 – 然后将其与他人共享。&lt;/p&gt;
&lt;hr /&gt;
&lt;h4&gt;在虚幻引擎生态系统中开发&lt;/h4&gt;
&lt;p&gt;除了工具和源代码外，虚幻引擎4还提供了完整的生态系统。您可以在论坛中交流，把内容添加到wiki，参与AnswerHub问答，并通过GitHub加入合作的开发项目。您可以在虚幻商城中购买内容，也可以自己创建内容并在商城中销售。&lt;/p&gt;
&lt;p&gt;为帮助您入门，虚幻引擎包含了大量的视频教程和文档，以及可用于引擎的游戏模板、示例和内容。&lt;/p&gt;
&lt;hr /&gt;
&lt;h4&gt;虚幻引擎现已免费&lt;/h4&gt;
&lt;p&gt;在2014年早些时候，我们采取了革命性的举措，以每月19美元的订购价格让每个人都可以使用虚幻引擎4。我们把所有源代码放到了网上，让每个注册的人都可以使用。我们扳动了开关然后默默祈祷。&lt;/p&gt;
&lt;p&gt;去年对每个在Epic Games的员工来说都非常忙碌。我们的社区人数暴增。我们完成的创意工作的质量和多样性令人惊讶。当我们邀请大家提交今年在GDC展出的项目时，我们不得不从100个最佳作品中挑选出8个以供展出。&lt;/p&gt;
&lt;p&gt;虚幻引擎目前的状态很好，我们认为如果去除价格这个门槛，更多的人就能完成他们的创意目标并塑造我们所热爱的媒体的未来。所以我们去除了这最后一道门槛，最终让虚幻引擎免费。&lt;/p&gt;
&lt;hr /&gt;
&lt;h4&gt;感谢社区&lt;/h4&gt;
&lt;p&gt;对去年陪伴我们的各位朋友们，我们深表感谢！ 正是由于大家的群策群力和积极参与，我们拼命努力来让引擎更为出色、更为好用和更为强劲，我们发布了7次大更新以及十几个小更新。&lt;/p&gt;
&lt;p&gt;在宣布免费后，我们将会提供按比例计算的退款，退还当前的订购者们在最近的付款。而且，每位支付过虚幻引擎4订购费用的用户都将获得30美元的虚幻商城支付额度，供您在虚幻商城中消费。&lt;/p&gt;
&lt;hr /&gt;
&lt;h4&gt;美好未来&lt;/h4&gt;
&lt;p&gt;在这条新闻发布的时候，我们的行业正处于史无前例的时代，伴随着虚拟现实和增强现实的进化，以及由大量独立开发者所组成的前所未有的超大社区，所有人都面临着一个竞争激烈的市场，并寻求着脱颖而出的机会。&lt;/p&gt;
&lt;p&gt;自Epic作为独立的公司存在25年以来，我们从未像今天这样，见证开发者们面对如此巨大的机遇。无论您的开发目标是什么，Epic，作为技术的提供者以及使用虚幻引擎4来开发游戏的开发者，都与您站在一起。&lt;/p&gt;
</content:encoded></item><item><title>Node.js学习笔记</title><link>https://blog.doracoin.cc/posts/2016/2016-12-29-node-js%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/</link><guid isPermaLink="true">https://blog.doracoin.cc/posts/2016/2016-12-29-node-js%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/</guid><pubDate>Thu, 29 Dec 2016 09:28:44 GMT</pubDate><content:encoded>&lt;p&gt;一篇迟来的文章。（可能还将继续拖延下去）&lt;/p&gt;
&lt;p&gt;&amp;lt;!--more--&amp;gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;最早接触 Nodejs 就是在折腾 Hexo 博客的时候，在此之前折腾的是Jeykll。查了一下自己使用 Hexo 博客的第一篇文章日期，发现是在 2016 年年末，那这篇笔记就以当时的日期来记录吧。&lt;/p&gt;
&lt;p&gt;在了解 Nodejs 之前，我搭建博客还是使用 WordPress+“网站空间”来进行部署，网站的更新维护就是通过 FTP 来管理，并不了解任何稍微深入一点的知识，甚至连域名可通过服务器代理的知识都不懂。&lt;/p&gt;
&lt;p&gt;开始折腾 Hexo 博客的这一年，也是我逐渐开始熟悉 Linux 的时期。&lt;/p&gt;
&lt;p&gt;彼时的我只知道&lt;code&gt;cd&lt;/code&gt;、&lt;code&gt;ll&lt;/code&gt;命令，想要直接上手 Linux 感觉有心无力&lt;/p&gt;
&lt;p&gt;2026-01-16更新：今天续费服务器的时候看到了最初一次购买服务器的账单日期，是2017-02-24，我就是从这个时候开始学习Linux，没事就折腾&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;竞品&lt;/h2&gt;
&lt;h3&gt;Deno&lt;/h3&gt;
&lt;p&gt;官网：https://deno.com/&lt;/p&gt;
&lt;p&gt;Github: &amp;lt;object data=&quot;https://img.shields.io/github/stars/denoland/deno.svg?label=deno&amp;amp;style=social&quot;&amp;gt;&amp;lt;/object&amp;gt;&lt;/p&gt;
&lt;p&gt;相关资讯：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;https://www.infoq.cn/article/juxb8eaojrllx4vb7ttd&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Bun&lt;/h3&gt;
&lt;p&gt;官网：https://bun.sh/&lt;/p&gt;
&lt;p&gt;Github：&amp;lt;object data=&quot;https://img.shields.io/github/stars/oven-sh/bun.svg?label=bun&amp;amp;style=social&quot;&amp;gt;&amp;lt;/object&amp;gt;&lt;/p&gt;
&lt;p&gt;相关资讯：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;https://www.infoq.cn/article/m48tvaz8w2BbblIQKZZF&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;p&gt;&amp;lt;h2 id=&quot;1&quot;&amp;gt;1. 官网&amp;lt;/h2&amp;gt;&lt;/p&gt;
&lt;p&gt;https://nodejs.org/en&lt;/p&gt;
&lt;p&gt;Github：&amp;lt;object data=&quot;https://img.shields.io/github/stars/nodejs/node.svg?label=node&amp;amp;style=social&quot;&amp;gt;&amp;lt;/object&amp;gt;&lt;/p&gt;
&lt;p&gt;版本分为 &lt;code&gt;LTS(长期维护)&lt;/code&gt; 和 &lt;code&gt;Current&lt;/code&gt; 版本，分别有三大平台：&lt;code&gt;Windows, macOS, Linux&lt;/code&gt; 的安装包、二进制(解压即用)版本。&lt;/p&gt;
&lt;p&gt;&amp;lt;h3 id=&quot;1.1&quot;&amp;gt;1.1 包管理器 npm&amp;lt;/h3&amp;gt;&lt;/p&gt;
&lt;p&gt;会随安装过程一起安装，npm 的版本高低受 node 版本，一般情况下，一起安装的 npm 就是你所安装的 node 版本所能支持的最高版本。&lt;/p&gt;
&lt;p&gt;&amp;lt;h2 id=&quot;2&quot;&amp;gt;2. Node Version Manager (Node版本管理器)&amp;lt;/h2&amp;gt;&lt;/p&gt;
&lt;p&gt;参考文章：&lt;a href=&quot;https://www.cnblogs.com/shengulong/p/9343172.html&quot;&gt;管理 node 版本，选择 nvm 还是 n？&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;h3 id=&quot;2.1&quot;&amp;gt;2.1 NVM&amp;lt;/h3&amp;gt;&lt;/p&gt;
&lt;p&gt;Github: &amp;lt;object data=&quot;https://img.shields.io/github/stars/nvm-sh/nvm.svg?label=nvm&amp;amp;style=social&quot;&amp;gt;&amp;lt;/object&amp;gt;&lt;/p&gt;
&lt;p&gt;这是一款只支持在 Unix Like 系统上使用的 Node 版本管理器，Windows 上无法使用&lt;/p&gt;
&lt;p&gt;&amp;lt;h3 id=&quot;2.2&quot;&amp;gt;2.2 NVM-Windows&amp;lt;/h3&amp;gt;&lt;/p&gt;
&lt;p&gt;Github: &amp;lt;object data=&quot;https://img.shields.io/github/stars/coreybutler/nvm-windows.svg?label=nvm-windows&amp;amp;style=social&quot;&amp;gt;&amp;lt;/object&amp;gt;&lt;/p&gt;
&lt;p&gt;上面的 NVM 项目的推荐产品，目前正在使用，感觉上很轻便，管理逻辑也很简单直接。&lt;/p&gt;
&lt;p&gt;&amp;lt;h3 id=&quot;2.3&quot;&amp;gt;2.3 FNM&amp;lt;/h3&amp;gt;&lt;/p&gt;
&lt;p&gt;Github: &amp;lt;object data=&quot;https://img.shields.io/github/stars/Schniz/fnm.svg?label=fnm&amp;amp;style=social&quot;&amp;gt;&amp;lt;/object&amp;gt;&lt;/p&gt;
&lt;p&gt;另一款产品，还没有试用，使用 Rust 开发的工具，人气也很高。&lt;/p&gt;
&lt;p&gt;&amp;lt;h3 id=2.4&amp;gt;2.4 n&amp;lt;/h3&amp;gt;&lt;/p&gt;
&lt;p&gt;Github: &amp;lt;object data=&quot;https://img.shields.io/github/stars/tj/n.svg?label=n&amp;amp;style=social&quot;&amp;gt;&amp;lt;/object&amp;gt;&lt;/p&gt;
&lt;p&gt;基于 Node 的 Node 版本管理器，优点就是安装方便，缺点就是安装之前，需要先安装 Node&lt;/p&gt;
&lt;p&gt;&amp;lt;script type=&quot;text/javascript&quot;&amp;gt;
!function() {
var bottom = Math.floor(60 * Math.random()),
right = Math.floor(50 * Math.random()),
rotate = Math.floor(360 * Math.random());
var foolsEgg = document.createElement(&quot;img&quot;);
foolsEgg.src = &quot;/images/b028c278cbb84660f8bde79d819bc30b.png&quot;;
foolsEgg.style.position = &quot;fixed&quot;;
foolsEgg.style.bottom = &quot;&quot;.concat(bottom, &quot;%&quot;);
foolsEgg.style.right = &quot;&quot;.concat(right, &quot;%&quot;);
foolsEgg.style.zIndex = &quot;9999&quot;;
foolsEgg.style.pointerEvents = &quot;none&quot;;
foolsEgg.style.width = &quot;40%&quot;;
foolsEgg.style.maxWidth = &quot;190px&quot;;
foolsEgg.style.transform = &quot;&quot;.concat(&quot;rotate(&quot;, rotate, &quot;deg)&quot;);
document.body.append(foolsEgg);
setTimeout(function(){
console.log(
&quot;%c\n\t哈哈哈，屏幕上是不是有根头发擦不掉？点击链接了解：\t\n\n\thttps://mkblog.cn/2382/\t\n\n&quot;,
&quot;background-color:#00abff;color:white;padding:10px 0;font-size:20px;&quot;
)
},5000)
} ();&lt;/p&gt;
&lt;p&gt;&amp;lt;/script&amp;gt;&lt;/p&gt;
</content:encoded></item><item><title>First Bolg for Hexo</title><link>https://blog.doracoin.cc/posts/2016/2016-12-28-first-bolg-for-hexo/</link><guid isPermaLink="true">https://blog.doracoin.cc/posts/2016/2016-12-28-first-bolg-for-hexo/</guid><pubDate>Wed, 28 Dec 2016 17:32:22 GMT</pubDate><content:encoded>&lt;p&gt;博客改为用Hexo啦！Hexo 是一个简单地、轻量地、基于Node的一个静态博客框架，可以方便的生成静态网页托管在github和Heroku上。&lt;/p&gt;
&lt;p&gt;&amp;lt;!--more--&amp;gt;&lt;/p&gt;
&lt;h2&gt;官网&lt;/h2&gt;
&lt;p&gt;https://hexo.io/zh-cn/&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;引用Hexo作者 @tommy351 的话：&lt;/p&gt;
&lt;p&gt;快速、简单且功能强大的 Node.js 博客框架。A fast, simple &amp;amp; powerful blog framework, powered by Node.js.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;1，hexo是基于nodejs的，所以在开始之前，请在电脑上面安装一下nodejs，并且把node命令加入系统path。这里就不罗嗦细节了。具体大家自行Google~&lt;/p&gt;
&lt;p&gt;2，如果你在天朝，那么还推荐你安装一下淘宝的npm–cnpm。使用npm命令安装。至于为什么安装，你该懂的。如果你想安装，也不是说不行，要么速度慢，要么需要翻墙。cnpm干神马的，自行Google，简单的说它是npm在中国的镜像。&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;$ npm install cnpm -g –registry=https://registry.npm.taobao.org
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;7，部署。&lt;/p&gt;
&lt;p&gt;事实上，hexo可以一键部署到很多地方，配置_config.yml文件即可，该文件路径为blog/_config.yml&lt;/p&gt;
&lt;p&gt;更多的细节，请查看这里： https://hexo.io/zh-cn/docs/one-command-deployment#Rsync&lt;/p&gt;
&lt;h2&gt;问题记录&lt;/h2&gt;
&lt;h3&gt;listen EACCES: permission denied 0.0.0.0:4000&lt;/h3&gt;
&lt;p&gt;该问题引起的原因暂不明确，但可以先通过如下方法排查：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;netstat -ano
netstat -ano |findstr 4000

#查看tcp动态端口范围
netsh int ipv4 show dynamicport tcp
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;但是有时会发现，根本没有端口占用。&lt;/p&gt;
&lt;p&gt;于是灵机一动，干脆就换掉默认端口号尝试一下：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;hexo server -p 5000
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;问题居然就这样解决了……也不知道到底什么端口号可以正常使用(hexo 默认端口号是 4000)，详细的原因等到以后遇到该问题时再进一步排查吧&lt;/p&gt;
</content:encoded></item><item><title>Eclipse export Runnable jar</title><link>https://blog.doracoin.cc/posts/2016/2016-12-16-eclipse-export-runnable-jar/</link><guid isPermaLink="true">https://blog.doracoin.cc/posts/2016/2016-12-16-eclipse-export-runnable-jar/</guid><pubDate>Fri, 16 Dec 2016 05:25:29 GMT</pubDate><content:encoded>&lt;ol&gt;
&lt;li&gt;选择要到处JAR文件的工程，右键选择“Export”&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;a href=&quot;http://www.doracoin.cc/wp/wp-content/uploads/2016/12/1.png&quot;&gt;&lt;img src=&quot;http://www.doracoin.cc/wp/wp-content/uploads/2016/12/1.png&quot; alt=&quot;1&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;选择“Java--&amp;gt;Runnable JAR file”，点击“Next”&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;a href=&quot;http://www.doracoin.cc/wp/wp-content/uploads/2016/12/2.png&quot;&gt;&lt;img src=&quot;http://www.doracoin.cc/wp/wp-content/uploads/2016/12/2.png&quot; alt=&quot;2&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;在“Launch configuration”下面的下拉列表中选择程序启动时运行的主类； 在&quot;Export destination&quot;下面的“Browse”按钮选择JAR的存放路径，并输入JAR文件名； 如果程序依赖于其它包，就在“Library handling”处选择“Package required libraries into generated JAR”或“Copy required libraries into a sub-folder next to the generated JAR”，如果选择后者，则导出时，会将需要的包拷贝到一个目录中，后面引用这个JAR包时，必须将这个目录拷到JAR包所在的目录。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;a href=&quot;http://www.doracoin.cc/wp/wp-content/uploads/2016/12/3.png&quot;&gt;&lt;img src=&quot;http://www.doracoin.cc/wp/wp-content/uploads/2016/12/3.png&quot; alt=&quot;3&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;4.关于library handling部分的解释如下：&lt;/p&gt;
&lt;p&gt;(1)Extract required libraries into generated JAR。
把所有的import JAR都拆开来，包含在JAR的各个目录中，ex. net/org/xxx.class&lt;/p&gt;
&lt;p&gt;(2)Package required libraries into generated JAR。
把所有的import JAR都包在JAR的根目录下&lt;/p&gt;
&lt;p&gt;(3)Copy required libraries into a sub-folder next to the generated JAR。&lt;/p&gt;
&lt;p&gt;把所有import JAR放在JAR外面独立的一个文件夹&lt;/p&gt;
</content:encoded></item><item><title>使用Maven遇到的问题记录</title><link>https://blog.doracoin.cc/posts/2016/2016-10-28-%E4%BD%BF%E7%94%A8maven%E9%81%87%E5%88%B0%E7%9A%84%E9%97%AE%E9%A2%98%E8%AE%B0%E5%BD%95/</link><guid isPermaLink="true">https://blog.doracoin.cc/posts/2016/2016-10-28-%E4%BD%BF%E7%94%A8maven%E9%81%87%E5%88%B0%E7%9A%84%E9%97%AE%E9%A2%98%E8%AE%B0%E5%BD%95/</guid><pubDate>Fri, 28 Oct 2016 07:57:46 GMT</pubDate><content:encoded>&lt;p&gt;最近看了看开源的JPress,Jpress的项目是用Maven进行管理的，由于此前没有使用过Maven，所以导致我在导入项目时遇到了很多莫名其妙的问题，其中，多半是因为网络问题。&lt;/p&gt;
&lt;p&gt;Maven的资源库的网站是国外的服务器，访问起来速度特别慢，导致Eclipse自动下载相应的Jar包内容时总会遇到失败的问题，间接导致了Eclipse中maven项目不能成功构建。&lt;/p&gt;
&lt;p&gt;查看了报错信息中有一段话提示 “链接请求超时未响应6000” 大概这么一段话，原话忘了复制，总之里面提示了一个地址：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;http://repo1.maven.org/maven2
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;(缺失的jar包可先根据名称，到 -&amp;gt; https://mvnrepository.com/ 搜索下载，搜不到的再去上面的地址寻找)&lt;/p&gt;
&lt;p&gt;这就是Maven自动下载时所请求的库，如遇到网络响应慢，可在浏览器中，根据报错的包名，自行进入网页中的目录，使用浏览器下载；&lt;/p&gt;
&lt;p&gt;之后将下载成功的jar包复制到本地Maven所在库中所对应包名的路径下，然后到Eclipse中在项目上分别：&lt;/p&gt;
&lt;p&gt;右键 -&amp;gt; Maven -&amp;gt; Update Dependencies
右键 -&amp;gt; Maven -&amp;gt; Update Project Configurations....&lt;/p&gt;
&lt;p&gt;======================= 2016-10-28 17:04:54 更新&lt;/p&gt;
&lt;p&gt;个别js文件会有报错的问题&lt;code&gt;missing semicolon&lt;/code&gt;，这是因为书写不规范导致的，missing semicolon的字面意思是“ &lt;strong&gt;丢失分号&lt;/strong&gt; ”，是eclipse对js的检查时发现js文件缺少分号而报的错，只需要去掉eclipse对js的检查即可。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://img.doracoin.cc/images/2018/10/11/f8ea136dd6e87667b9027f92c227350e.png&quot; alt=&quot;f8ea136dd6e87667b9027f92c227350e.png&quot; /&gt;&lt;/p&gt;
&lt;p&gt;然后重新编译一遍，或者将原来那个错误的jquery文件删除，再粘一个正确的进项目。 如果这种方式不起作用，再试试下面的方式。&lt;/p&gt;
&lt;h4&gt;修改项目的.project文件，注释掉里面的js验证&lt;/h4&gt;
&lt;p&gt;&lt;img src=&quot;https://img.doracoin.cc/images/2018/10/11/11e58d8f55536c02ce61a4e10a2c088a.png&quot; alt=&quot;11e58d8f55536c02ce61a4e10a2c088a.png&quot; /&gt;&lt;/p&gt;
&lt;p&gt;在里面搜索jsNature，将这行注释掉&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://img.doracoin.cc/images/2018/10/11/a61b5d92b76d983ad670f2819237eef2.png&quot; alt=&quot;a61b5d92b76d983ad670f2819237eef2.png&quot; /&gt;&lt;/p&gt;
&lt;p&gt;然后重新编译一遍； 如果还是不好使，再试试下面的这个方法：&lt;/p&gt;
&lt;p&gt;打开&lt;code&gt;Preference -&amp;gt; MyEclipse -&amp;gt; Validation&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;将右面的 &quot; &lt;strong&gt;JavaScript validator for JS files&lt;/strong&gt; &quot; 两个勾选都去掉&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://img.doracoin.cc/images/2018/10/11/94481eec977ecd8f1382231bc24d157f.png&quot; alt=&quot;94481eec977ecd8f1382231bc24d157f.png&quot; /&gt;&lt;/p&gt;
&lt;p&gt;然后重新编译一下试试。&lt;/p&gt;
</content:encoded></item><item><title>解决Eclipse运行Maven install &quot;Check $M2_HOME environment variable and mvn script match.&quot;</title><link>https://blog.doracoin.cc/posts/2016/2016-10-28-%E8%A7%A3%E5%86%B3eclipse%E8%BF%90%E8%A1%8Cmaven-install-check-m2_home-environment-variable-and-mvn-script-match/</link><guid isPermaLink="true">https://blog.doracoin.cc/posts/2016/2016-10-28-%E8%A7%A3%E5%86%B3eclipse%E8%BF%90%E8%A1%8Cmaven-install-check-m2_home-environment-variable-and-mvn-script-match/</guid><pubDate>Fri, 28 Oct 2016 06:46:55 GMT</pubDate><content:encoded>&lt;p&gt;Check $M2_HOME environment variable and mvn script match. 问题已解决，参考这个链接:&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://stackoverflow.com/questions/29330577/maven-3-3-1-eclipse-dmaven-multimoduleprojectdirectory-system-propery-is-not-s&quot;&gt;https://stackoverflow.com/questions/29330577/maven-3-3-1-eclipse-dmaven-multimoduleprojectdirectory-system-propery-is-not-s&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://img.doracoin.cc/images/2018/10/11/1266d7724c23217834c750e7a7919f83.png&quot; alt=&quot;1266d7724c23217834c750e7a7919f83.png&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://img.doracoin.cc/images/2018/10/11/6acedf4b4ae2ffb44b915709a8c8645b.png&quot; alt=&quot;6acedf4b4ae2ffb44b915709a8c8645b.png&quot; /&gt;&lt;/p&gt;
&lt;p&gt;在Eclipse中：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Window- &amp;gt; Preference -&amp;gt; Java -&amp;gt; Installed JREs -&amp;gt; Edit
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;如果已配置好Maven环境变量，在 &lt;strong&gt;&quot;Default VM arguments&quot;&lt;/strong&gt; 中填入：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;-Dmaven.multiModuleProjectDirectory=$M2_HOME
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;点击确认保存，重新运行一下试试。&lt;/p&gt;
</content:encoded></item><item><title>Android 背景选择器 selector 中enable选项失效</title><link>https://blog.doracoin.cc/posts/2016/2016-10-21-android-selector-%E4%B8%ADenable%E9%80%89%E9%A1%B9%E5%A4%B1%E6%95%88/</link><guid isPermaLink="true">https://blog.doracoin.cc/posts/2016/2016-10-21-android-selector-%E4%B8%ADenable%E9%80%89%E9%A1%B9%E5%A4%B1%E6%95%88/</guid><pubDate>Fri, 21 Oct 2016 17:51:00 GMT</pubDate><content:encoded>&lt;p&gt;今天在使用TextView 设置背景颜色时发现没法TextView的颜色不能设置enable = false；&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&amp;gt;
    &amp;lt;selector xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;&amp;gt;
        &amp;lt;item android:state_pressed=&quot;true&quot; android:drawable=&quot;@drawable/tv_visit_bg_press&quot;/&amp;gt;
        &amp;lt;item android:drawable=&quot;@drawable/tv_visit_bg_normal&quot;/&amp;gt;
        &amp;lt;item android:state_enabled=&quot;false&quot; android:drawable=&quot;@drawable/tv_disable&quot;/&amp;gt;
    &amp;lt;/selector&amp;gt;
&amp;lt;/xml&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;然后google了一下，发现代码中颜色匹配是顺序原则，只要找到第一个符合要求的，就不再继续往下执行了。所以只要把enable提前改成下面的顺序就可以正常展示了。&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&amp;gt;
    &amp;lt;selector xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;&amp;gt;
        &amp;lt;item android:state_enabled=&quot;false&quot; android:drawable=&quot;@drawable/tv_disable&quot;/&amp;gt;
        &amp;lt;item android:state_pressed=&quot;true&quot; android:drawable=&quot;@drawable/tv_visit_bg_press&quot;/&amp;gt;
        &amp;lt;item android:drawable=&quot;@drawable/tv_visit_bg_normal&quot;/&amp;gt;
    &amp;lt;/selector&amp;gt;
&amp;lt;/xml&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
</content:encoded></item><item><title>Windows 相关的系统路径以及一些垃圾软件的注册表信息</title><link>https://blog.doracoin.cc/posts/2016/2016-10-19-windows-%E7%9B%B8%E5%85%B3%E7%9A%84%E4%B8%80%E4%BA%9B%E7%B3%BB%E7%BB%9F%E8%B7%AF%E5%BE%84%E8%AE%B0%E5%BD%95%E4%BB%A5%E5%8F%8A%E4%B8%80%E4%BA%9B%E5%9E%83%E5%9C%BE%E8%BD%AF%E4%BB%B6%E7%9A%84%E6%B3%A8%E5%86%8C%E8%A1%A8%E5%B8%B8%E9%A9%BB%E4%BD%8D%E7%BD%AE%E7%BB%9F%E8%AE%A1/</link><guid isPermaLink="true">https://blog.doracoin.cc/posts/2016/2016-10-19-windows-%E7%9B%B8%E5%85%B3%E7%9A%84%E4%B8%80%E4%BA%9B%E7%B3%BB%E7%BB%9F%E8%B7%AF%E5%BE%84%E8%AE%B0%E5%BD%95%E4%BB%A5%E5%8F%8A%E4%B8%80%E4%BA%9B%E5%9E%83%E5%9C%BE%E8%BD%AF%E4%BB%B6%E7%9A%84%E6%B3%A8%E5%86%8C%E8%A1%A8%E5%B8%B8%E9%A9%BB%E4%BD%8D%E7%BD%AE%E7%BB%9F%E8%AE%A1/</guid><pubDate>Wed, 19 Oct 2016 05:45:23 GMT</pubDate><content:encoded>&lt;p&gt;&lt;strong&gt;想起一点记一点，一点一点更新.&lt;/strong&gt;&amp;lt;!--more--&amp;gt;&lt;/p&gt;
&lt;p&gt;一些常用的系统路径环境变量，打开的大多是基于当前Windows所登录用户的相对路径：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;%APPDATA%&lt;/li&gt;
&lt;li&gt;%USERPROFILE%&lt;/li&gt;
&lt;li&gt;%TEMP%&lt;/li&gt;
&lt;li&gt;%WINDIR%&lt;/li&gt;
&lt;li&gt;%ProgramData%&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;更多环境变量运行&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;ls env:
&lt;/code&gt;&lt;/pre&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Name&lt;/th&gt;
&lt;th&gt;Path&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;开始菜单的路径&lt;/td&gt;
&lt;td&gt;&lt;code&gt;C:\ProgramData\Microsoft\Windows\Start Menu\Programs&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;用户的开机启动项路径(支持放入快捷方式或脚本)&lt;/td&gt;
&lt;td&gt;&lt;code&gt;%APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Host文件路径&lt;/td&gt;
&lt;td&gt;&lt;code&gt;C:\Windows\System32\drivers\etc&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;任务栏, 开始菜单等快捷图标&lt;/td&gt;
&lt;td&gt;&lt;code&gt;C:\Users\Username\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;主题包壁纸解压后所在路径&lt;/td&gt;
&lt;td&gt;&lt;code&gt;C:\Users\Username\AppData\Local\Microsoft\Windows\Themes&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;任务栏固定软件路径&lt;/td&gt;
&lt;td&gt;&lt;code&gt;C:\Users\Username\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;流氓腾讯垃圾插件安装位置&lt;/td&gt;
&lt;td&gt;&lt;code&gt;C:\Program Files (x86)\Common Files\Tencent&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;快速启动&lt;/td&gt;
&lt;td&gt;&lt;code&gt;C:\Users\Username\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;任务栏&lt;/td&gt;
&lt;td&gt;&lt;code&gt;C:\Users\Username\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Win10商店壁纸包图片存储路径&lt;/td&gt;
&lt;td&gt;&lt;code&gt;C:\Users\Username\AppData\Local\Microsoft\Windows\Themes&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr /&gt;
&lt;p&gt;&lt;strong&gt;以下记录了我在乱翻注册表时发现的路径&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;该路径下对应的是各个扩展名的打开方式(打开为...),可添加程序路径&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;&lt;code&gt;HKEY_USERS/S-1-5-21-4023782604-2304797310-3668597849-1000/Software/Microsoft/Windows/CurrentVersion/Explorer/FileExts
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;例: HKEY_CLASSES_ROOT/*.jpg/shell/(自定义一个名字)/command/ 中的默认项添加想用的程序路径，后面加上 &quot;%1&quot; 右键菜单中的文字会加粗显示&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;所有程序软件安装过后写入注册表的位置，多是用来记录一些软件信息的，想清理你的系统请整理该路径&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;&lt;code&gt;## 注意每个层级都会有很多垃圾信息，请逐层清理
HKEY_CURRENT_USER\Software

HKEY_LOCAL_MACHINE\SOFTWARE

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\App Paths\

HKEY_CLASSES_ROOT\Local Settings\Software\Microsoft\Windows\Shell\MuiCache
&lt;/code&gt;&lt;/pre&gt;
&lt;ol&gt;
&lt;li&gt;Windows &amp;lt; 远程桌面连接&amp;gt;的历史记录&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;&lt;code&gt;HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Default
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;附录：命令行&lt;code&gt;reg&lt;/code&gt;命令使用简介&lt;/h2&gt;
&lt;p&gt;运行 CMD&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;增加 &lt;code&gt;reg add&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;删除 &lt;code&gt;reg delete&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;来查询用法 &lt;code&gt;reg /?&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;来查询分项目用法 &lt;code&gt;reg add /?&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;举例： 假如我要清除WinRAR的历史记录，可以新建个批处理文件（一行一行敲命令也行）， 然后在里面加入如下文字:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;reg delete HKEY_CURRENT_USER\Software\WinRAR\DialogEditHistory\ExtrPath /va /f
reg delete HKEY_CURRENT_USER\Software\WinRAR\DialogEditHistory\ArcName /va /f
reg delete HKEY_CURRENT_USER\Software\WinRAR\ArcHistory /va /f
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;其中/va参数是指删除该分支下的所有键值,/f参数是指不要跳出提示。 如果想删除整个分支，就不要加/va， 例如：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;reg delete HKEY_CURRENT_USER\Software\CrocWare
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;如果想删除某个键值，就用 reg delete (分支) /v (键值) 例如:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;reg delete HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\TrayNotify /v PastIconsStream /f
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;要注意：
如果注册表中有空格，应用双引号括住注册表；
如果注册表中有%，就用%%来表示；
例如：要清除Alcohol 120%的历史记录，可以在批处理中加入如下命令：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;reg delete &quot;HKEY_CURRENT_USER\Software\Alcohol Soft\Alcohol 120%%\Basic&quot; /v &quot;Image File Path&quot; /f
reg delete &quot;HKEY_CURRENT_USER\Software\Alcohol Soft\Alcohol 120%%\MountedMRU&quot; /f
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;参考文章&lt;/h3&gt;
&lt;p&gt;&lt;a href=&quot;https://www.cnblogs.com/liuyt/p/5677781.html&quot;&gt;Powershell下设置环境变量&lt;/a&gt;&lt;/p&gt;
</content:encoded></item><item><title>真实比例太阳系示意图</title><link>https://blog.doracoin.cc/posts/2016/2016-10-18-%E7%9C%9F%E5%AE%9E%E6%AF%94%E4%BE%8B%E5%A4%AA%E9%98%B3%E7%B3%BB%E7%A4%BA%E6%84%8F%E5%9B%BE/</link><guid isPermaLink="true">https://blog.doracoin.cc/posts/2016/2016-10-18-%E7%9C%9F%E5%AE%9E%E6%AF%94%E4%BE%8B%E5%A4%AA%E9%98%B3%E7%B3%BB%E7%A4%BA%E6%84%8F%E5%9B%BE/</guid><pubDate>Tue, 18 Oct 2016 01:25:47 GMT</pubDate><content:encoded>&lt;p&gt;太阳系真实比例示意图网页工具：&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://joshworth.com/dev/pixelspace/pixelspace_solarsystem.html&quot;&gt;http://joshworth.com/dev/pixelspace/pixelspace_solarsystem.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;此图的比例尺是月球直径（3474.8 公里）为一个像素点。&lt;/p&gt;
&lt;p&gt;显示了太阳，八大行星，冥王星（作者给冥王星留下了一句温馨的留言，如果你能有耐心拖到那里的话）及行星的较大的卫星。&lt;/p&gt;
&lt;p&gt;剩下的天体，小到按比例画的话一个像素点都没有。 距离和天体大小都是按照真实世界中的相关数据严格按照比例绘制。&lt;/p&gt;
&lt;p&gt;如果真正想感受太阳系天体的的话就手工点下面滚动条让整个图案匀速向右滚动&lt;/p&gt;
</content:encoded></item></channel></rss>