<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>不方思</title>
  
  <subtitle>Like tears in rain.</subtitle>
  <link href="https://irr.ink/atom.xml" rel="self"/>
  
  <link href="https://irr.ink/"/>
  <updated>2025-03-08T12:09:11.183Z</updated>
  <id>https://irr.ink/</id>
  
  <author>
    <name>iR</name>
    
  </author>
  
  <generator uri="https://hexo.io/">Hexo</generator>
  
  <entry>
    <title>在 Linux 中使用 RT-Thread Env 工具的简明指南</title>
    <link href="https://irr.ink/2023/1RZ0D9A/"/>
    <id>https://irr.ink/2023/1RZ0D9A/</id>
    <published>2023-09-25T15:14:07.000Z</published>
    <updated>2025-03-08T12:09:11.183Z</updated>
    
    <content type="html"><![CDATA[<p>Env 是 RT-Thread 对源码进行配置和裁剪、生成工程的工具，然而文档中的配置过程主要针对 Windows 系统，并没有对 Linux 系统的配置进行详细的介绍，这里简要介绍其在 Linux 下的配置与使用方法。</p><span id="more"></span><h2 id="下载"><a href="#下载" class="headerlink" title="下载"></a>下载</h2><p>Env 工具本质上是一组 Python 脚本，它的 Windows 版本中包含运行脚本的全套的工具和环境，而 Linux 版则只包含脚本本身，在使用 Env 工具前，我们需要先自行安装相关的工具。</p><p>若您使用的是 Ubuntu 系统，可参考<a href="https://github.com/RT-Thread/env#install-env">官方仓库中的配置流程</a>使用脚本进行配置，若您使用的是其他发行版，则根据自己的需要安装工具。</p><p>想要正常运行 Env 工具和编译工程，您至少需要在系统中安装 <code>python3</code>, <code>scons</code>, <code>gcc</code>, <code>git</code>, <code>ncurses</code>，以及编译您的目标平台的 bsp 所需的交叉编译工具链。请使用包管理器或其他方法自行安装这些软件。</p><p>安装完毕这些软件后，前往您想编译的目标平台所对应的 bsp 目录（这里我使用的 bsp 是 rt-thread&#x2F;bsp&#x2F;qemu-virt64-riscv), 运行 <code>scons --menuconfig</code>, 则会自动的下载 Env 工具，并进入 RT-Thread 的配置界面，这里我们可以暂时不进行配置，退出即可。</p><p><img src="https://static.irr.ink/img/insert/202309252218454.png"></p><p>运行完毕后，Env 工具会被安装在当前用户的 <code>~/.env</code> 目录中。</p><h2 id="使用"><a href="#使用" class="headerlink" title="使用"></a>使用</h2><p>Env 工具在下载时，会在<code>~/.env</code> 目录下生成 <code>env.sh</code> 文件。若您使用 <code>bash</code> 或者其他支持 <code>bash</code> 语法的 shell（如 <code>zsh</code>)，则您可通过运行 <code>source ~/.env/env.sh</code> 来引入 Env 的环境变量。若您使用 <code>fish</code>，则 Env 在安装过程中还会生成一个 <code>env.fish</code> 文件。由于 <code>fish</code> 并不支持 ‘bash’ 设置环境变量的语法，当使用 <code>fish</code> 时，需要运行 <code>source ~/.env/env.fish</code> 引入环境变量。</p><p><img src="https://static.irr.ink/img/insert/202309252229265.png"></p><p>在 Env 中，我们可直接运行的命令的只有 <code>menuconfig</code> 与 <code>pkgs</code>，它们都是对 <code>env.py</code> 的调用。<code>menuconfig</code> 命令可打开 RT-Thread 配置页面，效果与直接运行 <code>scons --menuconfig</code> 相同。<code>pkgs</code> 命令可用于管理在线包，使用方法参见其他教程，不再赘述。</p><h2 id="编译工程"><a href="#编译工程" class="headerlink" title="编译工程"></a>编译工程</h2><p>在 bsp 目标平台目录下，运行 <code>menuconfig</code>，进行我们需要的配置，配置完毕后选择 <code>&lt;Save&gt;</code> 保存为 <code>.config</code> 文件。最后即可使用 <code>scons</code> 编译工程。</p><p>直接运行 <code>scons</code> 时，可能会产生找不到编译器、编译失败等错误。可以使用环境变量和 <code>scons</code> 的参数指定编译器的路径和前缀，下面将演示使用环境变量和使用参数指定编译器的方式。（也可选择将环境变量直接添加在安装时生成的 <code>env.sh</code> 或 <code>env.fish</code> 中，这样添加后可以直接运行 <code>scons</code> 而不产生报错。）类似于 <code>make</code>, <code>scons</code> 也能使用 <code>-j线程数</code> 的参数开启多线程编译，加快编译速度。<code>scons</code> 的更多参数，可在 <code>rt-thread/tools/options.py</code> 文件中查看。</p><p><img src="https://static.irr.ink/img/insert/202309252238765.png"></p><p><img src="https://static.irr.ink/img/insert/202309252246502.png"></p><p>编译得到目标文件后，即可烧录到目标平台中。</p>]]></content>
    
    
    <summary type="html">&lt;p&gt;Env 是 RT-Thread 对源码进行配置和裁剪、生成工程的工具，然而文档中的配置过程主要针对 Windows 系统，并没有对 Linux 系统的配置进行详细的介绍，这里简要介绍其在 Linux 下的配置与使用方法。&lt;/p&gt;</summary>
    
    
    
    <category term="技术" scheme="https://irr.ink/categories/tech/"/>
    
    
    <category term="Linux" scheme="https://irr.ink/tags/Linux/"/>
    
    <category term="RT-Thread" scheme="https://irr.ink/tags/RT-Thread/"/>
    
  </entry>
  
  <entry>
    <title>关于如何在 Linux 上玩 FF14</title>
    <link href="https://irr.ink/2022/1VJS6VT/"/>
    <id>https://irr.ink/2022/1VJS6VT/</id>
    <published>2022-10-08T16:05:27.000Z</published>
    <updated>2025-03-08T12:09:11.183Z</updated>
    
    <content type="html"><![CDATA[<h2 id="准备游戏文件"><a href="#准备游戏文件" class="headerlink" title="准备游戏文件"></a>准备游戏文件</h2><p>可以直接把 Windows 端的游戏文件夹复制过来.</p><h2 id="安装-Xlcore"><a href="#安装-Xlcore" class="headerlink" title="安装 Xlcore"></a>安装 Xlcore</h2><p>若使用原版启动器,则FF14只能以DX9模式运行(具体可见<a href="https://nga.178.com/read.php?tid=1878248">NGA帖子</a>).</p><p>关于Xlcore的安装方法,如果你用的是Arch Linux,可以通过AUR安装<code>xivlauncher-cn</code>(虽然你如果是其他发行版也可以参照PKGBUILD打包);若你是其他发行版,则通过flatpak安装<code>cn.ottercorp.xivlaunchercn</code>.</p><p>之后的设置参考<a href="https://ottercorp.github.io/faq/steamdeck">这里</a>的<code>第一次设置/运行游戏</code>.</p><h2 id="fcitx-KDE-输入法问题"><a href="#fcitx-KDE-输入法问题" class="headerlink" title="fcitx KDE 输入法问题"></a>fcitx KDE 输入法问题</h2><p>如果你用的是和我一样的组合,可能会遇到游戏内无法输入中文的问题. QQ群里大佬的解决方法: KDE设置-&gt;语言和区域设置-&gt;格式, 都改成<code>zh_CN.UTF-8</code>即可解决.</p>]]></content>
    
    
      
      
        
        
    <summary type="html"></summary>
        
      
    
    
    
    <category term="笔记" scheme="https://irr.ink/categories/note/"/>
    
    
  </entry>
  
  <entry>
    <title>htop 中 CPU 频率读取错误的迷之问题</title>
    <link href="https://irr.ink/2022/2H3Y57Q/"/>
    <id>https://irr.ink/2022/2H3Y57Q/</id>
    <published>2022-09-15T02:45:03.000Z</published>
    <updated>2025-03-08T12:09:11.183Z</updated>
    
    <content type="html"><![CDATA[<p>从某一天开始,我也不知道更新了什么, htop 的 CPU 频率突然就变得奇怪了。具体现象是空载时CPU频率基本全部保持在2600Mhz（正好是不开睿频的最高频率）。正常的情况下，空载的时候由于 intel_pstate 的作用，CPU本身的频率应该维持在 800Mhz 左右。一开始我还以为真的是 CPU 频率有问题,怀疑到 CPU 调度器上,但是完成换了几个内核之后状况相同,就排除是调度器的问题了。应该是 htop 读取频率的时候出了问题，而不是 CPU 本身。</p><p>除了htop还有什么可以读取CPU频率并与之作对比呢？接着我就去试了试KDE的系统监视器。在KDE的监视器里添加CPU频率的监视条目，可以发现用这个工具读取的频率应该差不多是对的——空载时多数CPU频率处于800Mhz. 然而到现在，一个极为怪诞的现象发生了：</p><ol><li>先开htop,后开系统监视器，htop频率不正确</li><li>先开系统监视器，再开htop,htop频率正确</li><li>在上一步的基础上，关闭系统监视器，htop频率不正确</li></ol><p>到这里我真的蒙圈，完全不知道是怎么回事了。到这里只能想想这些软件读取的原理了。遂去看了下 htop 的 issue. 发现读取CPU频率主要是靠两个地方，一个是<code>/proc/cpuinfo</code>，另一个是<code>/sys/devices/system/cpu/cpu*/cpufreq/scaling_cur_freq</code>. 在我的机器上，前者的频率并不正确，而后者的频率是正确的（可以看下<a href="https://github.com/htop-dev/htop/issues/953">这个 issue</a>)，看来只能去看下htop的源码了。</p><p>总之在代码里搜来搜去的，<a href="https://github.com/htop-dev/htop/commit/1f20c0fb3debf2fa4d4be934d0b4552fdf814caa">这个 commit</a>引起了我的注意。这条commit的大概意思是，先从前者读取CPU频率，若读取速度太慢（判断标准是读取CPU0频率的时间大于500us），则会在后面30次读取中使用后者获取CPU频率。那我们就要测试一下读取的速度了。</p><figure class="highlight dns"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br></pre></td><td class="code"><pre><code class="hljs dns">❯ time cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_cur_freq<br><span class="hljs-number">2859898</span><br><span class="hljs-number">3439062</span><br><span class="hljs-number">3518834</span><br><span class="hljs-number">3357022</span><br><span class="hljs-number">3600078</span><br><span class="hljs-number">3514387</span><br><span class="hljs-number">3590909</span><br><span class="hljs-number">3578165</span><br><span class="hljs-number">3267212</span><br><span class="hljs-number">3537751</span><br><span class="hljs-number">3488934</span><br><span class="hljs-number">3425438</span><br>cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_cur_freq  <span class="hljs-number">0</span>.<span class="hljs-number">00</span>s user <span class="hljs-number">0</span>.<span class="hljs-number">00</span>s system <span class="hljs-number">0</span>% cpu <span class="hljs-number">0</span>.<span class="hljs-number">213</span> total<br><br>❯ time grep &#x27;cpu MHz&#x27; /proc/cpuinfo<br>cpu MHz         : <span class="hljs-number">2600.000</span><br>cpu MHz         : <span class="hljs-number">2600.000</span><br>cpu MHz         : <span class="hljs-number">2600.000</span><br>cpu MHz         : <span class="hljs-number">2600.000</span><br>cpu MHz         : <span class="hljs-number">2600.000</span><br>cpu MHz         : <span class="hljs-number">2600.000</span><br>cpu MHz         : <span class="hljs-number">2600.000</span><br>cpu MHz         : <span class="hljs-number">2600.000</span><br>cpu MHz         : <span class="hljs-number">2600.000</span><br>cpu MHz         : <span class="hljs-number">2600.000</span><br>cpu MHz         : <span class="hljs-number">2600.000</span><br>cpu MHz         : <span class="hljs-number">3600.089</span><br>grep &#x27;cpu MHz&#x27; /proc/cpuinfo  <span class="hljs-number">0</span>.<span class="hljs-number">00</span>s user <span class="hljs-number">0</span>.<span class="hljs-number">00</span>s system <span class="hljs-number">13</span>% cpu <span class="hljs-number">0</span>.<span class="hljs-number">019</span> total<br></code></pre></td></tr></table></figure><p>我也通过 debug 测试了一下，我读取CPU0频率的时间高达16000us, htop 自然会去读后者的频率导致频率显示不正确了。</p><p>同时还有另一个发现，也可以解释上面的第二条现象，当用有一个进程在读取<code>/sys/devices/system/cpu/cpu*/cpufreq/scaling_cur_freq</code>时，再去读这个地方：</p><figure class="highlight awk"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br></pre></td><td class="code"><pre><code class="hljs awk">❯ time cat <span class="hljs-regexp">/sys/</span>devices<span class="hljs-regexp">/system/</span>cpu<span class="hljs-regexp">/cpu*/</span>cpufreq/scaling_cur_freq<br><span class="hljs-number">3295722</span><br><span class="hljs-number">3565060</span><br><span class="hljs-number">3588762</span><br><span class="hljs-number">3109933</span><br><span class="hljs-number">3577284</span><br><span class="hljs-number">3595533</span><br><span class="hljs-number">3566348</span><br><span class="hljs-number">3466786</span><br><span class="hljs-number">3431875</span><br><span class="hljs-number">3391583</span><br><span class="hljs-number">3443595</span><br><span class="hljs-number">3590967</span><br>cat <span class="hljs-regexp">/sys/</span>devices<span class="hljs-regexp">/system/</span>cpu<span class="hljs-regexp">/cpu*/</span>cpufreq/scaling_cur_freq  <span class="hljs-number">0.00</span>s user <span class="hljs-number">0.00</span>s system <span class="hljs-number">81</span>% cpu <span class="hljs-number">0.002</span> total<br></code></pre></td></tr></table></figure><p>快多了！这就可以解释上面第二条异常现象的成因了，当有另一个进程在读取的时候，htop测得的延迟小于500us,就获得了正确的频率。</p><p>那么到现在解决的方法就昭然若揭了：</p><ol><li>改内核，让延迟降下来</li><li>加入异步，让htop读取成功后再刷新</li><li>让htop开一个子进程去读取频率来降低延迟</li><li>改变阈值让htop不去读取<code>/proc/cpuinfo</code></li></ol><p>很遗憾方法1我是没法做到的，这个延迟似乎涉及<code>psate</code>的实现，是我完全不懂的领域;方法2和方法3估计我写出来提交 PR 也不一定被通过，就不费那个事了;咱就选用最简单的方法，改一下延迟，把500us改成19000us,凑合用得了。这样的后果是 htop 的操作会卡卡的，但是影响也不是很大。</p>]]></content>
    
    
      
      
        
        
    <summary type="html"></summary>
        
      
    
    
    
    <category term="笔记" scheme="https://irr.ink/categories/note/"/>
    
    
    <category term="折腾" scheme="https://irr.ink/tags/z-turn/"/>
    
    <category term="Linux" scheme="https://irr.ink/tags/Linux/"/>
    
  </entry>
  
  <entry>
    <title>在Arch Linux上修复Dell笔记本触摸板休眠错误</title>
    <link href="https://irr.ink/2022/3P3STYF/"/>
    <id>https://irr.ink/2022/3P3STYF/</id>
    <published>2022-09-01T10:48:50.000Z</published>
    <updated>2025-03-08T12:09:11.183Z</updated>
    
    <content type="html"><![CDATA[<h2 id="问题描述"><a href="#问题描述" class="headerlink" title="问题描述"></a>问题描述</h2><p>我的戴尔笔记本在 archlinux 上恢复后，触摸板事件会变得完全无响应或者响应错误。在lts内核和最新的内核上都如此。</p><h2 id="排障过程"><a href="#排障过程" class="headerlink" title="排障过程"></a>排障过程</h2><p>检查<code>journalctl</code>后，没有发现什么异常。在网上搜索后，发现有人提到了<code>i2c_hid</code>的问题，从这个层面找问题。检查<code>dmseg</code>，发现从休眠恢复之后会出现<code>i2c_hid: i2c_hid_get_input: incomplete report</code>错误。又在网上找到<a href="https://www.dell.com/community/Linux-Developer-Systems/i2c-hid-i2c-DELL0831-00-i2c-hid-get-input/td-p/6219894">这篇讨论</a>，我才意识到这是什么导致的。</p><h2 id="修复方法"><a href="#修复方法" class="headerlink" title="修复方法"></a>修复方法</h2><p>之前也是因为系统上休眠出问题（休眠后不会自动断电），所以我在<code>/etc/systemd/sleep.conf</code>里加了一句<code>HibernateMode=shutdown</code>让系统强制以<code>shutdown</code>模式休眠。但是不使用<code>platform</code>会一部分硬件没有正常完成休眠过程，唤醒之后就会寄掉。今天试了试最新的内核似乎已经把我之前遇到的那个休眠不断电的问题问题修复了「2020年的电脑到2022年用最新的内核所有的功能才差不多正常，果然Linux对越老的电脑的支持就越好（笑」，所以我把这句改回原来的<code>HibernateMode=platform shutdown</code>，然后重启，触摸板就恢复正常了。</p><h2 id="其他参考"><a href="#其他参考" class="headerlink" title="其他参考"></a>其他参考</h2><p>根据<code>man systemd-sleep.conf</code>里面可以看到，修改指定的文件（假设你在用<code>systemd</code>的话）可以让<code>systemd</code>在执行相关操作的时候自动在<code>/sys/power/disk</code>和<code>/sys/power/state</code>里面写入你指定的字符串。至于可以往里面写什么字符串，可以在<a href="https://www.kernel.org/doc/Documentation/power/states.txt">这篇似乎是内核文档</a>里看到。如果你的睡眠和休眠也出现了不可名状的问题，可以以这些文档为依据自己修改一下试试。</p>]]></content>
    
    
      
      
        
        
    <summary type="html"></summary>
        
      
    
    
    
    <category term="笔记" scheme="https://irr.ink/categories/note/"/>
    
    
    <category term="折腾" scheme="https://irr.ink/tags/z-turn/"/>
    
    <category term="archlinux" scheme="https://irr.ink/tags/archlinux/"/>
    
  </entry>
  
  <entry>
    <title>最速搭梯教程</title>
    <link href="https://irr.ink/2022/AMXA4K/"/>
    <id>https://irr.ink/2022/AMXA4K/</id>
    <published>2022-08-24T03:14:07.000Z</published>
    <updated>2025-03-08T12:09:11.183Z</updated>
    
    <content type="html"><![CDATA[<ol><li>用随意的方法搞到一台 Linux 的 VPS</li><li>用包管理器或官方脚本安装 <code>xray</code></li><li>用包管理器或官方脚本安装 <code>caddy</code></li><li>在 Caddy 配置文件（一般在<code>/etc/caddy/Caddyfile</code>）中添加以下内容：<figure class="highlight css"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br></pre></td><td class="code"><pre><code class="hljs css">你的域名: &#123;<br><br>        <span class="hljs-keyword">@websockets</span> &#123;<br>                path /你想用的路径（例如 /websocket 等）<br>                <span class="hljs-selector-tag">header</span> Connection Upgrade<br>                <span class="hljs-selector-tag">header</span> Upgrade websocket<br>                &#125;<br>        reverse_proxy <span class="hljs-keyword">@websockets</span> <span class="hljs-number">127.0</span>.<span class="hljs-number">0.1</span>:你喜欢的端口<br><br>&#125;<br></code></pre></td></tr></table></figure></li><li>在 Xray 配置目录（一般在<code>/etc/xray/</code>或<code>/usr/local/etc/xray/</code>）中添加一个<code>你喜欢的名字.json</code>, 里面写如下内容：<figure class="highlight prolog"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br></pre></td><td class="code"><pre><code class="hljs prolog">&#123;<br>  <span class="hljs-string">&quot;log&quot;</span>: &#123;<br>    <span class="hljs-string">&quot;loglevel&quot;</span>: <span class="hljs-string">&quot;warning&quot;</span>,<br>  &#125;,<br>  <span class="hljs-string">&quot;inbounds&quot;</span>: [&#123;<br>    <span class="hljs-string">&quot;port&quot;</span>: 你喜欢的端口,<br>    <span class="hljs-string">&quot;protocol&quot;</span>: <span class="hljs-string">&quot;vless&quot;</span>,<br>    <span class="hljs-string">&quot;settings&quot;</span>: &#123;<br>      <span class="hljs-string">&quot;decryption&quot;</span>: <span class="hljs-string">&quot;none&quot;</span>,<br>      <span class="hljs-string">&quot;clients&quot;</span>: [<br>        &#123;<br>          <span class="hljs-string">&quot;id&quot;</span>: <span class="hljs-string">&quot;随便上什么地方生成一个uuid&quot;</span>,<br>          <span class="hljs-string">&quot;level&quot;</span>: <span class="hljs-number">0</span><br>        &#125;<br>      ]<br>    &#125;,<br>    <span class="hljs-string">&quot;streamSettings&quot;</span>: &#123;<br>      <span class="hljs-string">&quot;network&quot;</span>:<span class="hljs-string">&quot;ws&quot;</span>,<br>      <span class="hljs-string">&quot;security&quot;</span>: <span class="hljs-string">&quot;none&quot;</span>,<br>      <span class="hljs-string">&quot;wsSettings&quot;</span>:&#123;<br>        <span class="hljs-string">&quot;path&quot;</span>:<span class="hljs-string">&quot;/你想用的路径&quot;</span>,<br>        <span class="hljs-string">&quot;headers&quot;</span>:&#123;&#125;<br>      &#125;<br>    &#125;<br>  &#125;],<br>  <span class="hljs-string">&quot;outbounds&quot;</span>: [&#123;<br>    <span class="hljs-string">&quot;protocol&quot;</span>: <span class="hljs-string">&quot;freedom&quot;</span>,<br>    <span class="hljs-string">&quot;settings&quot;</span>: &#123;&#125;<br>  &#125;,&#123;<br>    <span class="hljs-string">&quot;protocol&quot;</span>: <span class="hljs-string">&quot;blackhole&quot;</span>,<br>    <span class="hljs-string">&quot;settings&quot;</span>: &#123;&#125;,<br>    <span class="hljs-string">&quot;tag&quot;</span>: <span class="hljs-string">&quot;blocked&quot;</span><br>  &#125;],<br>  <span class="hljs-string">&quot;routing&quot;</span>: &#123;<br>    <span class="hljs-string">&quot;rules&quot;</span>: [<br>      &#123;<br>        <span class="hljs-string">&quot;type&quot;</span>: <span class="hljs-string">&quot;field&quot;</span>,<br>        <span class="hljs-string">&quot;ip&quot;</span>: [<span class="hljs-string">&quot;geoip:private&quot;</span>],<br>        <span class="hljs-string">&quot;outboundTag&quot;</span>: <span class="hljs-string">&quot;blocked&quot;</span><br>      &#125;<br>    ]<br>  &#125;<br>&#125;<br></code></pre></td></tr></table></figure></li><li>终端输入<code>systemctl enable --now caddy.service</code></li><li>终端输入<code>systemctl enable --now xray@你喜欢的名字.service</code></li><li>别忘了把上面的汉字都换了，相同的汉字换成相同的内容</li><li>别忘了去改 DNS 解析</li><li>VLESS + TLS + Websocket 搭 完 了</li></ol>]]></content>
    
    
      
      
        
        
    <summary type="html"></summary>
        
      
    
    
    
    <category term="技术" scheme="https://irr.ink/categories/tech/"/>
    
    
    <category term="折腾" scheme="https://irr.ink/tags/z-turn/"/>
    
    <category term="Linux" scheme="https://irr.ink/tags/Linux/"/>
    
  </entry>
  
  <entry>
    <title>在 Arch Linux 中配置安全启动与全盘加密</title>
    <link href="https://irr.ink/2022/1TEK2AA/"/>
    <id>https://irr.ink/2022/1TEK2AA/</id>
    <published>2022-08-17T03:14:07.000Z</published>
    <updated>2025-03-08T12:09:11.183Z</updated>
    
    <content type="html"><![CDATA[<p>就是说说方案,操作上也没啥难的,别人写过的我就直接放链接,不再写一遍了. (╯‵□′)╯︵┻━┻</p><h2 id="概况"><a href="#概况" class="headerlink" title="概况"></a>概况</h2><p>使用 <code>Shim-signed</code> 与 <code>systemd-boot</code> 启用安全启动.</p><p>使用 <code>btrfs on LUKS</code> 加密全盘,并在 <code>btrfs</code> 中启用交换文件,添加 <code>FIDO2</code> 密钥以及 <code>TPM</code> 支持.</p><h2 id="细说"><a href="#细说" class="headerlink" title="细说"></a>细说</h2><h3 id="安全启动"><a href="#安全启动" class="headerlink" title="安全启动"></a>安全启动</h3><ol><li>参照 <a href="https://wiki.archlinux.org/title/systemd-boot">systemd-boot</a> 正确配置 systemd-boot.(不用 GRUB 是因为相比 systemd-boot 来说它的配置太麻烦了.)</li><li>参照 <a href="https://wiki.archlinux.org/title/Unified_Extensible_Firmware_Interface/Secure_Boot#shim">Unified Extensible Firmware Interface&#x2F;Secure Boot#shim</a> 配置 shim-signed. (这里并不建议使用直接添加安全启动密钥的办法.)</li></ol><h3 id="加密方案"><a href="#加密方案" class="headerlink" title="加密方案"></a>加密方案</h3><ol><li>参照 <a href="https://wiki.archlinux.org/title/Dm-crypt/Device_encryption">Dm-crypt&#x2F;Device_encryption</a> 建立符合你的需求的加密设备,在设备中建立你需要的分区.</li><li>修改<code>/etc//etc/mkinitcpio.conf</code>文件,添加你需要的钩子并重新生成<code>initramfs</code></li><li>修改<code>systemd-boot</code>配置使你的分区可以使用密码成功解锁并引导进入系统</li><li>使用 <code>systemd-cryptenroll</code>添加 <code>FIDO2</code> 和 <code>TPM</code> 支持. 参照 <a href="https://note.cubercsl.site/notes/62165119">使用 FIDO2 设备解锁全盘加密</a> 和 <a href="https://wiki.archlinux.org/title/Trusted_Platform_Module#Data-at-rest_encryption_with_LUKS">Trusted_Platform_Module#Data-at-rest_encryption_with_LUKS</a></li></ol><h2 id="上文没有出现的参考文章"><a href="#上文没有出现的参考文章" class="headerlink" title="上文没有出现的参考文章"></a>上文没有出现的参考文章</h2><ul><li><a href="https://www.freedesktop.org/software/systemd/man/systemd-cryptenroll.html">systemd-cryptenroll</a></li><li><a href="https://0pointer.net/blog/unlocking-luks2-volumes-with-tpm2-fido2-pkcs11-security-hardware-on-systemd-248.html">Unlocking LUKS2 volumes with TPM2, FIDO2, PKCS#11 Security Hardware on systemd 248</a></li><li><a href="https://www.bilibili.com/read/cv10788457">[linux]基于安全启动和TPM的根分区&#x2F;全硬盘加密 </a></li><li><a href="https://blog.yoitsu.moe/parabola/encrypt_parabola_with_dm_crypt.html">用 dm-crypt 加密一下 Parabola</a></li><li><a href="https://blog.yoitsu.moe/arch-linux/using_systemd_boot.html">systemd-boot 从安装到吃电脑（误</a></li></ul>]]></content>
    
    
      
      
        
        
    <summary type="html"></summary>
        
      
    
    
    
    <category term="技术" scheme="https://irr.ink/categories/tech/"/>
    
    
    <category term="折腾" scheme="https://irr.ink/tags/z-turn/"/>
    
    <category term="Linux" scheme="https://irr.ink/tags/Linux/"/>
    
  </entry>
  
  <entry>
    <title>从换浏览器开始随便讲点</title>
    <link href="https://irr.ink/2022/2K2QA8Y/"/>
    <id>https://irr.ink/2022/2K2QA8Y/</id>
    <published>2022-07-19T15:43:06.000Z</published>
    <updated>2025-03-08T12:09:11.183Z</updated>
    
    <content type="html"><![CDATA[<p>好长时间没有水过文章了，借着换浏览器这件事情随便写点东西糊弄一下。</p><p>大概可能是 2013 或者 2014 年吧，当时用的 IE 实在是不太行了，遂第一次装了 Chrome，当初用着确实是不错，随后因为网络环境的变差，Chrome嘛，懂的都懂，不像之前那么方便了，于是当微软搞出来基于 Chromium 的 Edge 之后，我第一时间就换过去了。后来因为用了 Linux, 又有点离不开 Edge 里面的数据，就开始两个都用了。总的算起来，我用基于 Chromium 的浏览器好像已经接近十年了。（</p><p>所以我一直以来对 Firefox 的印象就是“搞的比较特立独行，界面有点不适应，好像隐私做的挺不错”的这种。但我也没管太多，觉得随大流差不多用用就完事了。但现在 Chromium 已经要一统天下了，并且借助自己的地位搞不少恶心人操作，同样 Chrome 和 Edge 也好不到哪里去。界面越来越丑，也往浏览器里内嵌不少恶心人功能。就算抛开这些东西咱先不谈，单说在 Linux 上的滚轮功能一直半残废这点，我已经觉得他们可能已经开始想坐吃山空了。而且我本来也是更加支持少数派的，要是 Firefox 倒了那估计他们要更肆无忌惮了。所以咱还是本着光荣孤立的思想（笑，换到 Firefox 试试。</p><p>Firefox 本来看着也不怎么样，没想到稍微配置配置居然还不错呢。而且帐号同步和多端协同也比另外两家要快不少。各种插件确实没有 Chromium 丰富，但我本来也不过就只要密码管理、网页翻译、网页保存、广告拦截这四种插件就够，所以对我来说还挺够用的。另外最值得表扬的一点，多端同步！终于不用翻墙等 Chrome 和 Edge 慢悠悠的同步了，而且他俩的手机端本来就在我的手机上 Bug 不断。全端换到 Firefox 之后，感觉确实舒服。</p><p>如果能给别人推荐的话，我也一定会把 Firefox 安利出去。反抗 Chromium 的垄断，从你我做起。对于 Firefox, 你不用，我不用，早晚市面上只剩一个摆烂的垃圾。但现在安利别人浏览器确实是有些困难了，毕竟 Windows 不像以前自带的浏览器几乎不能用，现在的自带浏览器可比原来好太多了。况我自认为也算半个 poweruser 吧，好多我认为很有心的细节，别人也不太管。而且现代浏览器本来也没啥太大的差异，别人默认的就能用，那就肯定不愿意花学新东西的成本换个差不多的了。</p><p>但不管别人怎么想，今天我已经换成 Firefox 了。因为我不期望垄断，不期望隐私外露，不期望所有人都是摆烂的姿态。我自己用，并且推荐别人用，这就是我为了反抗这个局面能做到的事情。此之谓主体性。</p>]]></content>
    
    
      
      
        
        
    <summary type="html"></summary>
        
      
    
    
    
    <category term="碎念" scheme="https://irr.ink/categories/s/"/>
    
    
    <category term="折腾" scheme="https://irr.ink/tags/z-turn/"/>
    
  </entry>
  
  <entry>
    <title>Quartus 21 波形仿真配置</title>
    <link href="https://irr.ink/2022/2GP5YGS/"/>
    <id>https://irr.ink/2022/2GP5YGS/</id>
    <published>2022-04-09T14:53:03.000Z</published>
    <updated>2025-03-08T12:09:11.183Z</updated>
    
    <content type="html"><![CDATA[<p>主要是上课用到了，稍作折腾，顺便记录一下。</p><span id="more"></span><h2 id="Quartus-21-安装"><a href="#Quartus-21-安装" class="headerlink" title="Quartus 21 安装"></a>Quartus 21 安装</h2><h3 id="Windows"><a href="#Windows" class="headerlink" title="Windows"></a>Windows</h3><p>没啥好说的，官网直接装就行。</p><h3 id="ArchLinux"><a href="#ArchLinux" class="headerlink" title="ArchLinux"></a>ArchLinux</h3><p>参见AUR：<a href="https://aur.archlinux.org/packages/quartus-free">Quartus-free</a>。可以全部安装，也可以只装自己需要的组件。</p><h2 id="波形仿真配置"><a href="#波形仿真配置" class="headerlink" title="波形仿真配置"></a>波形仿真配置</h2><p>由于 Quartus 21 更新了仿真工具，将 Modelsim 更换为 Questa，所以需要自行配置 Quartus 21 的仿真工具。</p><h3 id="继续使用-Modelsim"><a href="#继续使用-Modelsim" class="headerlink" title="继续使用 Modelsim"></a>继续使用 Modelsim</h3><h4 id="安装"><a href="#安装" class="headerlink" title="安装"></a>安装</h4><p>安装之前版本的 Quartus 并保留 Modelsim(ArchLinux可以直接安装AUR包 <a href="https://aur.archlinux.org/packages/modelsim-intel-starter">modelsim-intel-starter</a> )，在&#96;Quartus &gt; Tools &gt; Options &gt; General &gt; EDA Tools Options’中指定 Modelsim 的 bin 路径。</p><h4 id="配置"><a href="#配置" class="headerlink" title="配置"></a>配置</h4><p><img src="https://static.irr.ink/img/insert/202204092225078.png"></p><p>在创建波形图文件后，选择<code>Simulation &gt; Simulation Options</code>，在<code>ModelSim Script</code>中找到vsim命令，删除其<code>-novopt</code>参数并保存，即可正常仿真。</p><h3 id="使用-Questa"><a href="#使用-Questa" class="headerlink" title="使用 Questa"></a>使用 Questa</h3><h4 id="安装-1"><a href="#安装-1" class="headerlink" title="安装"></a>安装</h4><p>ArchLinux直接安装AUR包 <a href="https://aur.archlinux.org/packages/quarta-free">quarta-free-questa</a>,Windows在安装Quartus时注意勾选。</p><h4 id="获取许可证"><a href="#获取许可证" class="headerlink" title="获取许可证"></a>获取许可证</h4><p>Questa的免费版也需要获取一年期的许可证。访问<a href="https://fpgasupport.intel.com/Licensing/license/index.html">Intel® FPGA Self Service Licensing Center</a>,选择<code>Sign up for Evaluation or Free Licenses</code>，选中<code> Questa*-Intel® FPGA Starter Edition SW-QUESTA</code>，在<code># of Seats</code>中填写1，同意协议后点击<code>Get License</code>。在弹出的界面中，，注意<code>Computer Type</code>最好选择<code>NIC ID</code>，在<code>Primary Computer ID</code>里填入网卡的MAC地址，并删掉短划线，即可完成电脑添加。</p><p><img src="https://static.irr.ink/img/insert/202204092244662.png"></p><blockquote><p>注意：需要固定网卡的MAC地址，否则仿真会提示证书错误。</p></blockquote><p>完成后点击<code>Generate</code>，许可证文件就会发到你的邮箱里。</p><h4 id="设置环境变量"><a href="#设置环境变量" class="headerlink" title="设置环境变量"></a>设置环境变量</h4><p>Questa使用环境变量确定许可证的位置，参见<a href="https://www.intel.com/content/www/us/en/docs/programmable/683472/21-4/specifying-the-license-for-the-software.html">官方文档</a>。添加<code>MGLS_LICENSE_FILE</code>环境变量，并设置为许可证文件的绝对路径。不同系统的添加方法不再详述。</p><h4 id="配置波形仿真"><a href="#配置波形仿真" class="headerlink" title="配置波形仿真"></a>配置波形仿真</h4><p>在创建波形图文件后，选择<code>Simulation &gt; Simulation Options</code>，在<code>ModelSim Script</code>中找到vsim命令，删除其<code>-novopt</code>参数，添加<code>-voptargs=+acc</code>参数后保存，即可正常仿真。</p><h2 id="参考"><a href="#参考" class="headerlink" title="参考"></a>参考</h2><p><a href="https://www.intel.la/content/www/xl/es/software/programmable/quartus-prime/whats-new.html">https://www.intel.la/content/www/xl/es/software/programmable/quartus-prime/whats-new.html</a></p><p><a href="https://www.intel.com/content/www/us/en/docs/programmable/683472/21-4/and-software-license.html">https://www.intel.com/content/www/us/en/docs/programmable/683472/21-4/and-software-license.html</a></p><p><a href="https://community.intel.com/plugins/common/feature/samlss/doauth/post?referer=https://community.intel.com/t5/Intel-Quartus-Prime-Software/quot-Warning-signal-not-found-in-VCD-quot-Error-message-with/td-p/1343250">https://community.intel.com/plugins/common/feature/samlss/doauth/post?referer=https%3A%2F%2Fcommunity.intel.com%2Ft5%2FIntel-Quartus-Prime-Software%2Fquot-Warning-signal-not-found-in-VCD-quot-Error-message-with%2Ftd-p%2F1343250</a></p>]]></content>
    
    
    <summary type="html">&lt;p&gt;主要是上课用到了，稍作折腾，顺便记录一下。&lt;/p&gt;</summary>
    
    
    
    <category term="技术" scheme="https://irr.ink/categories/tech/"/>
    
    
    <category term="折腾" scheme="https://irr.ink/tags/z-turn/"/>
    
    <category term="Linux" scheme="https://irr.ink/tags/Linux/"/>
    
  </entry>
  
  <entry>
    <title>防止 QQ/TIM 扫盘的方法探讨</title>
    <link href="https://irr.ink/2022/6KBAAM/"/>
    <id>https://irr.ink/2022/6KBAAM/</id>
    <published>2022-02-21T09:52:27.000Z</published>
    <updated>2025-03-08T12:09:11.183Z</updated>
    
    <content type="html"><![CDATA[<p>之前虽然是知道有这么回事的，但一直没有认真处理，直到最近看到了一个视频才终于开始怕了，在此找了几种隔离或者消除 QQ&#x2F;TIM 威胁的方法，也是我自己试过的。</p><p>嗨呀这坑最终还是懒得填了….简单列一下方法具体可行性大家自己去试一试吧…</p><ul><li>Sandboxie (基本不太行)</li><li>建一个 Windows Server 虚拟机，把TIM应用单独穿透出来（效果还不错，但剪贴板有些问题）</li><li>去除QQProtect的TIM绿色版</li></ul>]]></content>
    
    
      
      
        
        
    <summary type="html"></summary>
        
      
    
    
    
    <category term="笔记" scheme="https://irr.ink/categories/note/"/>
    
    
  </entry>
  
  <entry>
    <title>流水账式的2021总结</title>
    <link href="https://irr.ink/2021/2QBR504/"/>
    <id>https://irr.ink/2021/2QBR504/</id>
    <published>2021-12-31T14:16:32.000Z</published>
    <updated>2022-01-11T09:09:55.000Z</updated>
    
    <content type="html"><![CDATA[<h2 id="游戏"><a href="#游戏" class="headerlink" title="游戏"></a>游戏</h2><h3 id="通关的"><a href="#通关的" class="headerlink" title="通关的"></a>通关的</h3><ol><li>赛博朋克2077</li><li>风之旅人</li><li>尼尔：自动人形</li><li>黑帝斯</li><li>控制</li><li>只狼</li><li>底特律：变成人类</li><li>命运石之门</li><li>黑暗之魂：重置版</li><li>心跳文学部</li></ol><h3 id="评价"><a href="#评价" class="headerlink" title="评价"></a>评价</h3><p>回顾一下，今年游戏是真的玩的多。。。有不少是之前玩了一半，没通关的。（像黑魂、石头门这种）。从上到下基本上是时间顺序，挑几个说说吧。</p><p>赛博朋克2077这部游戏，确实对不上人们对他的期待，作为我有史以来第二款预购的游戏，也没有回应我的期待。但我感觉单纯的作为一个普通的3A游戏看，还算是及格的。尼尔应该是刚开学的那一阵玩的（骂一句SE司马没人有意见吧），也是老游戏了。感觉尼尔的优点和缺点都非常鲜明，即便如此，如果有人问我，我还是会推荐尼尔的。黑暗之魂应该是18年买的，拖到现在才通关，可以说宫崎英高当时的想法放到现在来看，依然是十分震撼的。我觉得除了From Software，应该也不会有哪家公司愿意开发大量的玩家很难发现的隐藏场景了吧。命运石之门也是一次补票，继看完了动画版6年之后，我终于把游戏也通关了（可惜不是最好结局）。</p><p>我的年度游戏是只狼。（其实也是预购了没通关拖到现在）。玩过的都懂，从初期的憋屈，到中后期的畅快，动作的打击感无出其右，宫崎英高用较少的资源做出了这样一部很美的作品，真的很令人赞叹。</p><h2 id="书"><a href="#书" class="headerlink" title="书"></a>书</h2><h3 id="读过的"><a href="#读过的" class="headerlink" title="读过的"></a>读过的</h3><ol><li>《情人》杜拉斯</li><li>《俗世奇人》冯骥才</li><li>《荒原狼》 黑塞</li><li>《在轮下》 黑塞</li><li>《悉达多》 黑塞</li><li>《德米安》 黑塞</li></ol><h3 id="想说的"><a href="#想说的" class="headerlink" title="想说的"></a>想说的</h3><p>今年读的书偏少（跟买游戏一个毛病，买书如山倒，读书如抽丝；还是不买书为妙，先把屯的看完了再说），绝大部分都是暑假读的。《情人》还是由王小波的大力推荐而得知的。书很短，有点难读，整本书都如同一个妇人的呓语，读完之后也很容易发出跟王小波一样的，对于小说架构的感叹。《俗世奇人》这书可有点故事了，读完这本算断绝前缘。</p><p>年度作家的话，不必多说了吧，自然是赫尔曼·黑塞。</p><h2 id="技能上"><a href="#技能上" class="headerlink" title="技能上"></a>技能上</h2><p>这部分泛泛而谈吧，不详细说了。大概是彻底研究了一下VS Code和Git怎么用，这两样在我平日学习中起了不少作用。（数据结构的作业就是使用Git管理，VS Code+Mingw完成的吗，通过这个。还学了点编译的知识。）前半年一直在捯饬博客，后半年把博客从WordPress转到Hexo，了解了Linux系统GitHub的使用。研究了一下树莓派和一些单片机，学到了不少。学会了双拼，打字更舒服了。最后一个月，实验性的研究了openPGP的一些用法。总的说来，这一年还是学到不少的。</p><h2 id="大概比较重要的事"><a href="#大概比较重要的事" class="headerlink" title="大概比较重要的事"></a>大概比较重要的事</h2><h3 id="转专业成功"><a href="#转专业成功" class="headerlink" title="转专业成功"></a>转专业成功</h3><p>我愿将其称为2021年度最佳成就。补平高考的一分之差，做了许多努力，而今终于圆满完成，这自然会极大地影响今后的生活与学习轨迹，远离了电磁场之类的课程而能够宽泛的学习软硬件的内容。目前来看最大的问题应该是很难和转过去的班级搞好关系以及与现在室友的上课时间不同步（经常有一方晚上补补作业而另一方想睡觉之类时间冲突的情况），不过我相信这些都是可以克服的。</p><h3 id="电赛破大防"><a href="#电赛破大防" class="headerlink" title="电赛破大防"></a>电赛破大防</h3><p>长话短说就是出了一个以往从来出过，我们也不了解的题目，由于不敢换方向就硬着头皮做，最后由于进度管理不到位，方案有问题等多种因素寄了。我觉得要是再给我半天至少是能得几个题目的分的。可现在说也没啥用，我大概要重新考虑参不参加类似的比赛了。</p><h2 id="展望"><a href="#展望" class="headerlink" title="展望"></a>展望</h2><p>不定什么远大目标了，来点小目标。多读点书，至少比今年多；多玩游戏，但要比今年少；多学多看，不要浮在表面；多听多想，搞好人际关系。事情若是能力范围之内一定拿下，实在达不到的目标学会看开；别太为难自己，也别太放纵自己摆烂。最后祝我，以及各位，以及家人，在心的一年身体平安，心情舒畅。也祝疫情赶紧滚，把被偷走的年岁还给我。这一年，提提裤子，只能说一般一般；来年也不奢求能有多好，平安无忧就行。</p>]]></content>
    
    
      
      
        
        
    <summary type="html"></summary>
        
      
    
    
    
    <category term="碎念" scheme="https://irr.ink/categories/s/"/>
    
    
  </entry>
  
  <entry>
    <title>下决心学双拼的故事</title>
    <link href="https://irr.ink/2021/1WD7DJ6/"/>
    <id>https://irr.ink/2021/1WD7DJ6/</id>
    <published>2021-12-30T14:32:50.000Z</published>
    <updated>2021-12-30T14:32:50.000Z</updated>
    
    <content type="html"><![CDATA[<p>之前看我爸用双拼挺熟练的，有点羡慕。趁着暑假的末尾开一个学习双拼的头。粗略的看了一下现存的各种双拼方案，总体上来说小鹤双拼和自然码算是较为受推崇的方案了。而且这两种方案都能使用辅码，给后期的提升提供了空间。我最终选择了学习小鹤双拼的方案。</p><p>用了好几年的全拼输入法，现在也已经把指位掌握的根深蒂固，转换到双拼之后，肌肉记忆还是存在，脑子里想着字，手就朝着全拼的键位去了。一开始真的不太适应。用了大概四五天，到九月五号的时候，基本上能够达到之前全拼一半的速度了(全拼70字&#x2F;秒，双拼30字&#x2F;秒)。还是需要多加练习。</p><p>感觉电脑的双拼还是挺好用的，支持全拼双拼混输，不会出现别人用我的设备打字的时候完全不会用的情况。可手机的输入法为什么就不支持全拼双拼混输呢？按理说这个功能有人实现过，手机上再实现一遍应该不是什么难事吧。手机用双拼还有一个致命问题，没有按错键位的自动修正。放到之前全拼，稍微按错几个还是能够打出正确的字的，但双拼按错了就错的很离谱了。当然这个我知道也是无法解决的，只有有限的信息，仅从按下的键很难推断出是按对了还是按错。双拼对于实体键盘来说固然好用，对于手机这种极其容易按错还没法纠错的键盘来说，就真的没法说是不是真的提高了输入效率了。打错了删，删完了再打错，至少从输入体验上，手机端的双拼体验确实在一定程度上不如全拼。</p><p>但我还是把手机的输入法也换成了双拼。这之后尝试着用了小半年，双拼也差不多能够达到之前用全拼的速度了。不过再打一些字的时候也还要想一下，而且总体说来敲击键盘的频率远不如全拼，所以我觉得进一步熟练之后还能有很大的进步空间吧。</p><p>只是现在熟练双拼之后全拼又不会了。。。用别人的设备全拼打字的时候手不听使唤，有空把手机的输入法换成全拼试试，看看能不能同时熟练全拼和双拼吧。</p>]]></content>
    
    
      
      
        
        
    <summary type="html"></summary>
        
      
    
    
    
    <category term="碎念" scheme="https://irr.ink/categories/s/"/>
    
    
  </entry>
  
  <entry>
    <title>细数Dell几大罪状</title>
    <link href="https://irr.ink/2021/3CEMVFE/"/>
    <id>https://irr.ink/2021/3CEMVFE/</id>
    <published>2021-12-01T11:58:50.000Z</published>
    <updated>2025-03-08T12:09:11.183Z</updated>
    
    <content type="html"><![CDATA[<p>这是我用Dell电脑的折腾史。</p><span id="more"></span><h2 id="主板电容啸叫问题"><a href="#主板电容啸叫问题" class="headerlink" title="主板电容啸叫问题"></a>主板电容啸叫问题</h2><p>这是电脑收到以后发现的第一个问题，这个声音很小但在安静的环境下很明显，戴尔的客服还算不错，提出要换主但要等，我想这也不是很要紧的问题而且电脑我急着要用，就把这个问题暂时搁置了。(实际上风扇声比这个大多了)</p><h2 id="预装软件问题"><a href="#预装软件问题" class="headerlink" title="预装软件问题"></a>预装软件问题</h2><p>电脑开机即带大量Dell预装软件，大部分没啥乱用，而<code>Dell Power Manager</code>和<code>SupportAssist</code>也体验堪忧。<code>SupportAssist</code>的系统恢复占用磁盘分区和C盘空间(由于权限设置无法轻易删除)；而驱动更新功能也慢得离谱，形同虚设。<code>Dell Power Manager</code>启动极慢，安装目录混乱，偶有Bug(为了把它彻底卸载重装，我还改过<code>WindowsApps</code>文件夹权限，导致之后UWP应用出现一系列问题)。现在<code>Dell Power Manager</code>的功能已经被<code>My Dell</code>替代，可以更新一下体验，开启速度和UI比以前好多了。</p><h2 id="风扇调度问题"><a href="#风扇调度问题" class="headerlink" title="风扇调度问题"></a>风扇调度问题</h2><p>由于<code>Dell Power Manager</code>或<code>My Dell</code>的功能过于简单而傻逼，而默认的CPU和风扇调度过于激进，导致平时使用时，风扇已经开始狂转。使用<a href="https://www.zhihu.com/column/c_1262326228608245760">知乎大佬</a>的散热优化插件解决了风扇调度的问题。</p><h2 id="CPU锁降压问题"><a href="#CPU锁降压问题" class="headerlink" title="CPU锁降压问题"></a>CPU锁降压问题</h2><p>上文所提插件同时具有CPU频率控制功能，而Dell在BIOS里默认锁<code>CFG LOCK</code>，意味着无法通过XTU等软件自行控制CPU频率，而默认调度的激进导致日常使用就烫的不行。参照网上众多教程与<a href="https://zhuanlan.zhihu.com/p/357103846">这篇文章</a>，使用GURB更改BIOS寄存器隐藏值，才能够使用插件的完整功能。</p><p>其实锁降压问题也有一个解决方法，即使用Linux系统，亲测在Linux系统中CPU调度非常保守，在负载较低的时候主频甚至可达800Mhz，原因不明。</p><h2 id="封锁S3睡眠，强制启用Modern-Standby"><a href="#封锁S3睡眠，强制启用Modern-Standby" class="headerlink" title="封锁S3睡眠，强制启用Modern Standby"></a>封锁S3睡眠，强制启用Modern Standby</h2><p>相比于S3睡眠，Modern Standby致力于提供如同手机般的在待机和使用中切换的体验，然而微软做的稀烂，即使处于Modern Standby待机状态，风扇也会狂转，电脑发热，电量下降极快，而传统的S3睡眠模式也被封锁，想要临时离开并保存工作进度只能使用损害硬盘寿命而恢复进度极慢的休眠模式，对于我这种电脑几天不关机，极度依赖睡眠的人来说简直不能忍。参照<a href="https://www.reddit.com/r/Dell/comments/h0r56s/getting_back_s3_sleep_and_disabling_modern/">外网帖子</a>终于能够重新开启S3睡眠。</p><p><img src="https://static.irr.ink/img/insert/202112012255684.png" alt="戴尔论坛怨声载道"></p><h2 id="后话"><a href="#后话" class="headerlink" title="后话"></a>后话</h2><p>如果你也是跟我一样有精细的需求，同时也有点强迫症的人，那你一定会被戴尔折磨的痛不欲生。虽然说买别的电脑也可能会出这种小问题，但我的下一台电脑必不是戴尔了。有点想试试苹果电脑的体验了。如果电脑本身没问题，有谁还闲的没事去折腾呢？对于戴尔，我真的是折腾够了。</p>]]></content>
    
    
    <summary type="html">&lt;p&gt;这是我用Dell电脑的折腾史。&lt;/p&gt;</summary>
    
    
    
    <category term="笔记" scheme="https://irr.ink/categories/note/"/>
    
    
    <category term="折腾" scheme="https://irr.ink/tags/z-turn/"/>
    
  </entry>
  
  <entry>
    <title>一次UWP应用排错</title>
    <link href="https://irr.ink/2021/3B2T0Y/"/>
    <id>https://irr.ink/2021/3B2T0Y/</id>
    <published>2021-11-30T04:45:03.000Z</published>
    <updated>2025-03-08T12:09:11.183Z</updated>
    
    <content type="html"><![CDATA[<p>微软你能不能把东西好好做做。</p><span id="more"></span><h2 id="现象"><a href="#现象" class="headerlink" title="现象"></a>现象</h2><p><img src="https://static.irr.ink/img/insert/202111301245782.png" alt="错误"></p><p>某日发现有几个应用的名字变成<code>ms-resource</code>了，而且还打不开，准备想点办法修复。</p><p>##解决</p><p>使用<code>Get-AppXPackage -AllUsers | Foreach &#123;Add-AppxPackage -DisableDevelopmentMode -Register &quot;$($_.InstallLocation)\AppXManifest.xml&quot;&#125;</code>命令修复，发现报错:</p><figure class="highlight powershell"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs Powershell"><span class="hljs-built_in">Add-AppxPackage</span> : 部署失败，原因是 HRESULT: <span class="hljs-number">0</span>x80070005, 拒绝访问。<br></code></pre></td></tr></table></figure><p>思路转为修复WindowsApps目录权限，下面参见<a href="https://zhuanlan.zhihu.com/p/105501889">这篇文章</a></p><blockquote><p>下载<a href="https://docs.microsoft.com/zh-cn/sysinternals/downloads/pstools">Pstools</a><br>解压后在其根目录以管理员权限运行<code>.\psexec -i -s -d powershell.exe</code><br>在新打开的窗口运行<code>icacls &quot;C:\Program Files\WindowsApps&quot; /reset /t /c /q</code></p></blockquote><p>虽然名字还是不对，但已经能打开了</p><p><img src="https://static.irr.ink/img/insert/202111301249610.png" alt="效果"></p><p>再次在管理员Powershell运行<code>Get-AppXPackage -AllUsers | Foreach &#123;Add-AppxPackage -DisableDevelopmentMode -Register &quot;$($_.InstallLocation)\AppXManifest.xml&quot;&#125;</code>命令，修复完成。</p><blockquote><p>某些应用这么一通操作后可能会出问题（例如Windows Terminal)，可以通过重装解决。</p></blockquote><h2 id="可能的原因"><a href="#可能的原因" class="headerlink" title="可能的原因"></a>可能的原因</h2><p>之前因为有一个UWP应用有问题，执行了一次覆盖安装，可能是覆盖安装的时候把文件夹权限搞坏了，微软你能不能上点心啊。</p>]]></content>
    
    
    <summary type="html">&lt;p&gt;微软你能不能把东西好好做做。&lt;/p&gt;</summary>
    
    
    
    <category term="笔记" scheme="https://irr.ink/categories/note/"/>
    
    
    <category term="折腾" scheme="https://irr.ink/tags/z-turn/"/>
    
    <category term="Windows" scheme="https://irr.ink/tags/Windows/"/>
    
  </entry>
  
  <entry>
    <title>如何优雅的用VS Code写C++作业？</title>
    <link href="https://irr.ink/2021/1XJKHTE/"/>
    <id>https://irr.ink/2021/1XJKHTE/</id>
    <published>2021-10-29T08:56:58.000Z</published>
    <updated>2025-03-08T12:09:11.183Z</updated>
    
    <content type="html"><![CDATA[<h2 id="前言"><a href="#前言" class="headerlink" title="前言"></a>前言</h2><p>虽然有很多成熟的IDE可用，但只是写个作业还是没必要去用那些又大又慢的东西的。VS Code作为万能编辑器，可以用mingW配置C++的编译环境，但可惜会存在一些小问题，本着折腾的精神，总结一下互联网上的一下解决方法，并贴出我自己的方案。</p><h2 id="基础的配置"><a href="#基础的配置" class="headerlink" title="基础的配置"></a>基础的配置</h2><p>不再赘述，网上一查一大把。需要注意的是一定要选择一个文件夹作为代码的存放地点。在完成了配置后，你的<code>.vscode</code>文件夹下应该有数个<code>json</code>文件。</p><h2 id="编码问题与多文件引用问题"><a href="#编码问题与多文件引用问题" class="headerlink" title="编码问题与多文件引用问题"></a>编码问题与多文件引用问题</h2><h3 id="描述"><a href="#描述" class="headerlink" title="描述"></a>描述</h3><p>如果你习惯在写代码的时候分成多个文件，最后在主函数里引用头文件调用，那在你编译运行的时候一定会遇到找不到定义的问题。</p><p>如果在代码中使用中文，便不得不处理中文的编码问题，网上的解决方案有很多，但要更改系统的默认设置或对其他功能造成影响。</p><p>以上两个问题通过更改Code Runner的默认编译指令解决。</p><h3 id="解决"><a href="#解决" class="headerlink" title="解决"></a>解决</h3><p>请保证开启了<code>Run in Terminal</code>选项。文件编码依然采用<code>utf8</code>格式，在<code>.vscode</code>文件夹下新建<code>settings.json</code>(或者在用户的<code>settings.json</code>中操作)，在最外部的一对大括号添加(若无，先自己加一对大括号)：</p><figure class="highlight json"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><code class="hljs json"><span class="hljs-attr">&quot;code-runner.executorMap&quot;</span><span class="hljs-punctuation">:</span> <span class="hljs-punctuation">&#123;</span><br><br>        <span class="hljs-attr">&quot;c&quot;</span><span class="hljs-punctuation">:</span> <span class="hljs-string">&quot;cd $dir &amp;&amp; gcc *.c -fexec-charset=gb2312 -o $fileNameWithoutExt.exe &amp;&amp; $dir$fileNameWithoutExt.exe&quot;</span><span class="hljs-punctuation">,</span><br>        <span class="hljs-attr">&quot;cpp&quot;</span><span class="hljs-punctuation">:</span> <span class="hljs-string">&quot;cd $dir &amp;&amp; g++ *.cpp -fexec-charset=gb2312 -o $fileNameWithoutExt.exe &amp;&amp; $dir$fileNameWithoutExt.exe&quot;</span><br>    <span class="hljs-punctuation">&#125;</span><span class="hljs-punctuation">,</span><br></code></pre></td></tr></table></figure><p>使用<code>-fexec-charset</code>参数指定输出编码，避免了需要更改文件或控制台默认编码的文件；使用通配符指定文件夹内所有cpp文件为需要编译的文件，修正了引用的问题。如果需要更加精细的设置，可以自己修改。</p><h2 id="Debug问题"><a href="#Debug问题" class="headerlink" title="Debug问题"></a>Debug问题</h2><p>直接贴配置了，不多说。</p><p>tasks.json:</p><figure class="highlight json"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br></pre></td><td class="code"><pre><code class="hljs json"><span class="hljs-punctuation">&#123;</span><br>    <span class="hljs-attr">&quot;tasks&quot;</span><span class="hljs-punctuation">:</span> <span class="hljs-punctuation">[</span><br>        <span class="hljs-punctuation">&#123;</span><br>            <span class="hljs-attr">&quot;type&quot;</span><span class="hljs-punctuation">:</span> <span class="hljs-string">&quot;cppbuild&quot;</span><span class="hljs-punctuation">,</span><br>            <span class="hljs-attr">&quot;label&quot;</span><span class="hljs-punctuation">:</span> <span class="hljs-string">&quot;Compile&quot;</span><span class="hljs-punctuation">,</span><span class="hljs-comment">//可以随意更改，保证与launch.json的preLaunchTask相同</span><br>            <span class="hljs-attr">&quot;command&quot;</span><span class="hljs-punctuation">:</span> <span class="hljs-string">&quot;g++&quot;</span><span class="hljs-punctuation">,</span><br>            <span class="hljs-attr">&quot;args&quot;</span><span class="hljs-punctuation">:</span> <span class="hljs-punctuation">[</span><br>                <span class="hljs-string">&quot;$&#123;fileDirname&#125;\\*.cpp&quot;</span><span class="hljs-punctuation">,</span><span class="hljs-comment">//编译所有文件，根据自己需要更改</span><br>                <span class="hljs-string">&quot;-g&quot;</span><span class="hljs-punctuation">,</span><span class="hljs-comment">//一定要加这个参数，不然没法加断点</span><br>                <span class="hljs-string">&quot;-o&quot;</span><span class="hljs-punctuation">,</span><br>                <span class="hljs-string">&quot;$&#123;fileDirname&#125;\\$&#123;fileBasenameNoExtension&#125;.exe&quot;</span><br>            <span class="hljs-punctuation">]</span><span class="hljs-punctuation">,</span><br>            <span class="hljs-attr">&quot;options&quot;</span><span class="hljs-punctuation">:</span> <span class="hljs-punctuation">&#123;</span><br>                <span class="hljs-attr">&quot;cwd&quot;</span><span class="hljs-punctuation">:</span> <span class="hljs-string">&quot;C:/Project/mingw64/bin&quot;</span><span class="hljs-comment">//自己的编译器路径，自行修改</span><br>            <span class="hljs-punctuation">&#125;</span><span class="hljs-punctuation">,</span><br>            <span class="hljs-attr">&quot;problemMatcher&quot;</span><span class="hljs-punctuation">:</span> <span class="hljs-punctuation">[</span><br>                <span class="hljs-string">&quot;$gcc&quot;</span><br>            <span class="hljs-punctuation">]</span><span class="hljs-punctuation">,</span><br>            <span class="hljs-attr">&quot;group&quot;</span><span class="hljs-punctuation">:</span> <span class="hljs-string">&quot;build&quot;</span><span class="hljs-punctuation">,</span><br>            <span class="hljs-attr">&quot;detail&quot;</span><span class="hljs-punctuation">:</span> <span class="hljs-string">&quot;编译器: C:/Project/mingw64/bin/g++.exe&quot;</span><br>        <span class="hljs-punctuation">&#125;</span><br>    <span class="hljs-punctuation">]</span><span class="hljs-punctuation">,</span><br>    <span class="hljs-attr">&quot;version&quot;</span><span class="hljs-punctuation">:</span> <span class="hljs-string">&quot;2.0.0&quot;</span><br><span class="hljs-punctuation">&#125;</span><br></code></pre></td></tr></table></figure><p>launch.json:</p><figure class="highlight json"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br></pre></td><td class="code"><pre><code class="hljs json"><span class="hljs-punctuation">&#123;</span><br>    <span class="hljs-attr">&quot;version&quot;</span><span class="hljs-punctuation">:</span> <span class="hljs-string">&quot;0.2.0&quot;</span><span class="hljs-punctuation">,</span><br>    <span class="hljs-attr">&quot;configurations&quot;</span><span class="hljs-punctuation">:</span> <span class="hljs-punctuation">[</span><br>        <span class="hljs-punctuation">&#123;</span><br>            <span class="hljs-attr">&quot;name&quot;</span><span class="hljs-punctuation">:</span> <span class="hljs-string">&quot;g++.exe&quot;</span><span class="hljs-punctuation">,</span><br>            <span class="hljs-attr">&quot;type&quot;</span><span class="hljs-punctuation">:</span> <span class="hljs-string">&quot;cppdbg&quot;</span><span class="hljs-punctuation">,</span><br>            <span class="hljs-attr">&quot;request&quot;</span><span class="hljs-punctuation">:</span> <span class="hljs-string">&quot;launch&quot;</span><span class="hljs-punctuation">,</span><br>            <span class="hljs-attr">&quot;program&quot;</span><span class="hljs-punctuation">:</span> <span class="hljs-string">&quot;$&#123;fileDirname&#125;\\$&#123;fileBasenameNoExtension&#125;.exe&quot;</span><span class="hljs-punctuation">,</span><br>            <span class="hljs-attr">&quot;args&quot;</span><span class="hljs-punctuation">:</span> <span class="hljs-punctuation">[</span><span class="hljs-punctuation">]</span><span class="hljs-punctuation">,</span><br>            <span class="hljs-attr">&quot;stopAtEntry&quot;</span><span class="hljs-punctuation">:</span> <span class="hljs-literal"><span class="hljs-keyword">false</span></span><span class="hljs-punctuation">,</span><br>            <span class="hljs-attr">&quot;cwd&quot;</span><span class="hljs-punctuation">:</span> <span class="hljs-string">&quot;C:/Project/mingw64/bin&quot;</span><span class="hljs-punctuation">,</span><span class="hljs-comment">//自己的编译器路径，自行修改</span><br>            <span class="hljs-attr">&quot;environment&quot;</span><span class="hljs-punctuation">:</span> <span class="hljs-punctuation">[</span><span class="hljs-punctuation">]</span><span class="hljs-punctuation">,</span><br>            <span class="hljs-attr">&quot;externalConsole&quot;</span><span class="hljs-punctuation">:</span> <span class="hljs-literal"><span class="hljs-keyword">false</span></span><span class="hljs-punctuation">,</span><br>            <span class="hljs-attr">&quot;MIMode&quot;</span><span class="hljs-punctuation">:</span> <span class="hljs-string">&quot;gdb&quot;</span><span class="hljs-punctuation">,</span><br>            <span class="hljs-attr">&quot;miDebuggerPath&quot;</span><span class="hljs-punctuation">:</span> <span class="hljs-string">&quot;C:\\Project\\mingw64\\bin\\gdb.exe&quot;</span><span class="hljs-punctuation">,</span><span class="hljs-comment">//自己的gdb路径，自行修改</span><br>            <span class="hljs-attr">&quot;setupCommands&quot;</span><span class="hljs-punctuation">:</span> <span class="hljs-punctuation">[</span><br>                <span class="hljs-punctuation">&#123;</span><br>                    <span class="hljs-attr">&quot;description&quot;</span><span class="hljs-punctuation">:</span> <span class="hljs-string">&quot;gdb&quot;</span><span class="hljs-punctuation">,</span><br>                    <span class="hljs-attr">&quot;text&quot;</span><span class="hljs-punctuation">:</span> <span class="hljs-string">&quot;-enable-pretty-printing&quot;</span><span class="hljs-punctuation">,</span><br>                    <span class="hljs-attr">&quot;ignoreFailures&quot;</span><span class="hljs-punctuation">:</span> <span class="hljs-literal"><span class="hljs-keyword">true</span></span><br>                <span class="hljs-punctuation">&#125;</span><br>            <span class="hljs-punctuation">]</span><span class="hljs-punctuation">,</span><br>            <span class="hljs-attr">&quot;preLaunchTask&quot;</span><span class="hljs-punctuation">:</span> <span class="hljs-string">&quot;Compile&quot;</span><span class="hljs-comment">//可以随意更改，保证与tasks.json的label相同</span><br>        <span class="hljs-punctuation">&#125;</span><br>    <span class="hljs-punctuation">]</span><br><span class="hljs-punctuation">&#125;</span><br></code></pre></td></tr></table></figure><p>如果你的文件不是<code>utf8</code>编码，那在调试的时候中文会变成乱码，这也是前文要求保持<code>utf8</code>编码的原因。</p>]]></content>
    
    
      
      
        
        
    <summary type="html"></summary>
        
      
    
    
    
    <category term="技术" scheme="https://irr.ink/categories/tech/"/>
    
    
    <category term="折腾" scheme="https://irr.ink/tags/z-turn/"/>
    
  </entry>
  
  <entry>
    <title>FreshRSS的扩展避坑与奇技淫巧</title>
    <link href="https://irr.ink/2021/WHVQTC/"/>
    <id>https://irr.ink/2021/WHVQTC/</id>
    <published>2021-09-29T04:42:27.000Z</published>
    <updated>2025-03-08T12:09:11.183Z</updated>
    
    <content type="html"><![CDATA[<p>关于如何搭建FreshRSS实例的教程已经有了很多,但关于FreshRSS的使用方法的文章似乎是很少,在此列举一部分难以被注意到但很好用的功能,算是奇技淫巧吧.</p><h2 id="使用FreshRSS自带的获取全文功能"><a href="#使用FreshRSS自带的获取全文功能" class="headerlink" title="使用FreshRSS自带的获取全文功能"></a>使用FreshRSS自带的获取全文功能</h2><p>1.打开订阅管理界面<br>2.点击管理你要获取全文的订阅源<br>3.下拉找到高级设置,找到CSS过滤器<br>    <img src="https://static.irr.ink/img/insert/202109061937192.png"><br>4.在CSS过滤器中填入<code>body</code>或<code>p</code>(如果你很了解CSS,可以写更精细的规则)<br>5.查看预览,在<code>body</code>和<code>p</code>中选择更合适的规则,点击下方提交<br>6.翻到最下面,点击<code>重载文章</code><br>    <img src="https://static.irr.ink/img/insert/202109061941195.png"></p><p>亲测获取微信公众号的和一些博客的全文还是挺好用的.</p><h2 id="PWA"><a href="#PWA" class="headerlink" title="PWA"></a>PWA</h2><p>使用Edge&#x2F;Chrome浏览器,可将FreshRSS实例作为PWA应用安装,只要服务器的延迟够低，体验还是不错.</p><h2 id="扩展"><a href="#扩展" class="headerlink" title="扩展"></a>扩展</h2><p>所有扩展都能在<a href="https://github.com/FreshRSS/Extensions">这里</a>找到.除提到的扩展之外的扩展都无需配置并能较好的实现功能(要么就是国内用不上),自行看说明就好,不赘述了.</p><h3 id="Custom-CSS"><a href="#Custom-CSS" class="headerlink" title="Custom CSS"></a>Custom CSS</h3><p>使用FreshRSS的网页版的时候,往往会有图片太大的情况出现.添加这个插件,在设置中写入<code>img&#123;width:70%&#125;</code>或类似规则,可以适当缩小图片,方便浏览.</p><h3 id="Image-Proxy"><a href="#Image-Proxy" class="headerlink" title="Image Proxy"></a>Image Proxy</h3><p>图片代理,方便在不科技的情况下看到一些网站的图片,默认使用<a href="https://images.weserv.nl/">images.weserv.nl</a>,但亲测默认配置不能代理TG图片,可能还需要进一步设置一下.</p><h3 id="避坑"><a href="#避坑" class="headerlink" title="避坑"></a>避坑</h3><h4 id="ReadingTime"><a href="#ReadingTime" class="headerlink" title="ReadingTime"></a>ReadingTime</h4><p>可以显示需要的阅读时间,<strong>但不适用于中文</strong>.</p><h4 id="Share-By-Email"><a href="#Share-By-Email" class="headerlink" title="Share By Email"></a>Share By Email</h4><p>你以为有了这个就能用邮件分享全文了?<strong>不,它只是分享链接而已</strong>.</p><h4 id="Smart-Mobile-Menu"><a href="#Smart-Mobile-Menu" class="headerlink" title="Smart Mobile Menu"></a>Smart Mobile Menu</h4><p>不够智能,反正我感觉是不好用.</p><h4 id="Sticky-Feeds"><a href="#Sticky-Feeds" class="headerlink" title="Sticky Feeds"></a>Sticky Feeds</h4><p>经常性的出现滚动与边栏不同步的情况.</p><h3 id="待续"><a href="#待续" class="headerlink" title="待续"></a>待续</h3><p>目前我还是有一些使用上的痛点解决不了,例如TG图片代理问题&#x2F;首页文章无法在阅读器中筛选等,还希望知道怎么弄的朋友能指教一下.</p>]]></content>
    
    
      
      
        
        
    <summary type="html"></summary>
        
      
    
    
    
    <category term="笔记" scheme="https://irr.ink/categories/note/"/>
    
    
    <category term="折腾" scheme="https://irr.ink/tags/z-turn/"/>
    
  </entry>
  
  <entry>
    <title>新的开始</title>
    <link href="https://irr.ink/2021/2TRBRB1/"/>
    <id>https://irr.ink/2021/2TRBRB1/</id>
    <published>2021-08-25T03:57:06.000Z</published>
    <updated>2025-03-08T12:09:11.183Z</updated>
    
    <content type="html"><![CDATA[<p>博客由腾讯云迁移至Cloudflare，CMS更换为Hexo,并归档一部分文章。</p><p>节省维护的时间与金钱成本。</p><p>原来的功能正在陆续迁移。</p><p><img src="https://static.irr.ink/img/insert/202108301923996.png"></p>]]></content>
    
    
      
      
        
        
    <summary type="html"></summary>
        
      
    
    
    
    <category term="碎念" scheme="https://irr.ink/categories/s/"/>
    
    
    <category term="折腾" scheme="https://irr.ink/tags/z-turn/"/>
    
  </entry>
  
  <entry>
    <title>业余无线电入门简记</title>
    <link href="https://irr.ink/2021/32GM92/"/>
    <id>https://irr.ink/2021/32GM92/</id>
    <published>2021-07-04T06:12:38.000Z</published>
    <updated>2025-03-08T12:09:11.183Z</updated>
    
    <content type="html"><![CDATA[<p>两三年之前就了解到有这么一个东西了，但当时受限于年龄和学业压力一直没实行。现在有了空，而老家那边的考试每年只举办一次，很难报名，遂决定直接考四川的呼号了。记一下在四川走完考试和拿证整个过程的流程，以供参考。</p><p>四月十日，到四川省业余无线电爱好者协会考试。之前题库没怎么看，前一天晚上和当天去的路上才勉强把题库背完。去了之后发现考这玩意的基本全是老头?。完美三十道题全部答对，通过考试。</p><p>四月十五日，拿到手台。之前不太了解行情，去考试的时候没买。后来买的时候没问清楚，买到的似乎是一个套牌机器，火速退掉又在群友推荐下买了8800，也是经历了一点波折。当时还是挺着急的，以为没买手台会耽误整个流程，但其实是啥也没耽误。</p><p>五月五日，参加协会举行的五五节大会。跟一位老HAM一起参加了无线电测向比赛，还拿了个名次。抱着几万块的设备内心还是有些激动的。</p><p>四川这边业余无线电的活动办的应该可以说是全国一流了。汶川地震中HAM的作用有目共睹，而这边无限电相关的活动也在一定程度上围绕“为抢险救灾”做准备这个主题开展。我觉得这份必须性与重要性才是四川业余无线电相关的活动能做得很不错的主要原因。</p><p>五月八日，拿到操作证。这之后就放开点手脚了。过了几天就跑到学校的楼顶收国际空间站的SSTV信号。一共收了两天，两张都只收了半张，一张受了些干扰，一张效果不错，第一次尝试，最终的结果还是可以的。</p><p>六月十五日，拿到呼号。至此走完全部流程，耗时六十六天。</p>]]></content>
    
    
      
      
        
        
    <summary type="html"></summary>
        
      
    
    
    
    <category term="技术" scheme="https://irr.ink/categories/tech/"/>
    
    
    <category term="折腾" scheme="https://irr.ink/tags/z-turn/"/>
    
  </entry>
  
  <entry>
    <title>CDN友好、基于PHP的简易随机图片API搭建指南</title>
    <link href="https://irr.ink/2021/14XRCQF/"/>
    <id>https://irr.ink/2021/14XRCQF/</id>
    <published>2021-05-25T06:28:48.000Z</published>
    <updated>2025-03-08T12:09:11.183Z</updated>
    
    <content type="html"><![CDATA[<h2 id="起因"><a href="#起因" class="headerlink" title="起因"></a>起因</h2><p>一开始用的是主题自带的API，但图片库都是二次元图片而且有点慢，就萌生了自己搭建的想法，网上粗略搜索了一下发现很简单，又自己改了改以适应CDN，就变成了下面的样子。</p><h2 id="代码"><a href="#代码" class="headerlink" title="代码"></a>代码</h2><p>简要原理：从指定目录中读取指定后缀的所有文件名并随机选择一个进行重定向</p><p>在网站根目录中新建index.php，并粘贴以下内容：</p><figure class="highlight awk"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br></pre></td><td class="code"><pre><code class="hljs awk">&lt;?php<br><br>/*<br><span class="hljs-variable">$from</span> = parse_url(<span class="hljs-variable">$_SERVER</span>[<span class="hljs-string">&#x27;HTTP_REFERER&#x27;</span>]);<br><br><span class="hljs-keyword">if</span> (<span class="hljs-variable">$from</span>[<span class="hljs-string">&#x27;host&#x27;</span>]!=<span class="hljs-string">&#x27;irr.ink&#x27;</span> &amp;amp;&amp;amp; <span class="hljs-variable">$from</span>[<span class="hljs-string">&#x27;host&#x27;</span>]!=<span class="hljs-string">&#x27;www.irr.ink&#x27;</span>) &#123;<br>     header(<span class="hljs-string">&#x27;HTTP/1.1 404 Not Found&#x27;</span>);<br>     header(<span class="hljs-string">&quot;status: 404 Not Found&quot;</span>); <span class="hljs-regexp">//</span>分析来路，若不使用CDN而且想要防止盗用可把这段的注释去掉<br>     <span class="hljs-keyword">exit</span>;<br>&#125;<br>*/<br><br><span class="hljs-variable">$img_array</span> = glob(<span class="hljs-string">&#x27;img/*.&#123;gif,jpg,png,jpeg,webp,bmp&#125;&#x27;</span>, GLOB_BRACE);<br><span class="hljs-keyword">if</span>(count(<span class="hljs-variable">$img_array</span>) == <span class="hljs-number">0</span>) die(<span class="hljs-string">&#x27;没有找到图片，请先上传到 &#x27;</span>.dirname(__FILE__).<span class="hljs-string">&#x27;/img/ 文件夹&#x27;</span>);<br><br><span class="hljs-keyword">if</span> (isset(<span class="hljs-variable">$img_array</span>)) <br>&#123; <br>Header(<span class="hljs-string">&quot;HTTP/1.1 303 See Other&quot;</span>); <br>Header(<span class="hljs-string">&quot;Location: &quot;</span>.<span class="hljs-variable">$img_array</span>[array_rand(<span class="hljs-variable">$img_array</span>)]); <br><span class="hljs-keyword">exit</span>; <br>&#125; <br></code></pre></td></tr></table></figure><p>在根目录中新建img文件夹，将图片放入，访问此域名时便会重定向到一张随机图片。</p><h2 id="想法"><a href="#想法" class="headerlink" title="想法"></a>想法</h2><p>没有直接选择返回随机图片而采用重定向的方法，是方便CDN根据URL进行缓存，在CDN上设置缓存规则后能加快图片的加载速度。而使用直接返回图片的方法则会导致CDN在开启强制缓存后只能返回同一张图片。[toc]</p><h2 id="防盗链（可选）"><a href="#防盗链（可选）" class="headerlink" title="防盗链（可选）"></a>防盗链（可选）</h2><p>如果你的API只希望自用，可在CDN的设置中添加防盗链配置，并将自己的域名设置为白名单，此时图片API只能用于指定的网站。</p><p><img src="https://ir-1253194828.cos.ap-guangzhou.myqcloud.com/wp-content/uploads/2021/05/1621923710-image.png"></p><h2 id="成果"><a href="#成果" class="headerlink" title="成果"></a>成果</h2><p>可以到首页多刷新几次看看。</p>]]></content>
    
    
      
      
        
        
    <summary type="html"></summary>
        
      
    
    
    
    <category term="技术" scheme="https://irr.ink/categories/tech/"/>
    
    
    <category term="建站" scheme="https://irr.ink/tags/%E5%BB%BA%E7%AB%99/"/>
    
    <category term="折腾" scheme="https://irr.ink/tags/z-turn/"/>
    
  </entry>
  
  <entry>
    <title>自用Ubuntu踩的坑</title>
    <link href="https://irr.ink/2021/2892D5N/"/>
    <id>https://irr.ink/2021/2892D5N/</id>
    <published>2021-05-23T11:34:58.000Z</published>
    <updated>2025-03-08T12:09:11.183Z</updated>
    
    <content type="html"><![CDATA[<div class="admonition warning"><p>本文尚未更新完成，可能想起来写一写也可能一直鸽掉了.</p></div><h2 id="前言"><a href="#前言" class="headerlink" title="前言"></a>前言</h2><p>回忆一下，我大概初二的时候第一次装Linux，好像当时装的是Linux Mint，不过也只是装着玩，没过多久就换回去了。</p><p>这次真的实装Ubuntu日用的推动力主要是这几点。一是加了新硬盘，不怕拔原来的引导搞坏修起来还麻烦了。再就是这台全(都不)能本散热实在太垃圾，开机没多久风扇就呼呼转起来了。</p><p>一开始我并不想装Ubuntu来着。先装的是Fedora，但rpm的包管理器装软件太麻烦了；然后又试了Deepin，可惜在我电脑上显卡驱动有未知bug导致不能外接显示器；尝试了Debian但网卡驱动不能便捷安装又懒得捯饬，最后还是乖乖换回Ubuntu了。</p><p>与Windows相比最大的亮点应该是对内存与CPU的调度，与完善的包管理器了。基本上CPU在没有负荷的时候一直维持很低的频率，于是风扇也转的很少，而包管理器又让软件的安装和卸载十分方便，可谓是发现新天地了。</p><p>为了尽量与我用Windows的习惯相符并且用的舒服，也捯饬了很久，下面是我踩过的坑，不知道能不能帮上别人。</p><h2 id="一些基础的优化"><a href="#一些基础的优化" class="headerlink" title="一些基础的优化"></a>一些基础的优化</h2><h3 id="如果你用笔记本…"><a href="#如果你用笔记本…" class="headerlink" title="如果你用笔记本…"></a>如果你用笔记本…</h3><p>可参考<a href="https://zhuanlan.zhihu.com/p/65546444">这篇文章</a>使用TLP优化电池使用。另外，可参考<a href="https://ubunlog.com/zh-CN/tlpui%E5%9B%BE%E5%BD%A2%E7%94%A8%E6%88%B7%E7%95%8C%E9%9D%A2tlp/">这篇文章</a>使用TLPUI项目得到图形管理界面。</p><h3 id="GNOME美化"><a href="#GNOME美化" class="headerlink" title="GNOME美化"></a>GNOME美化</h3><p>可参考<a href="https://www.jianshu.com/p/ec71b993fdef">这篇文章</a>，不再赘述。</p><h2 id="软件"><a href="#软件" class="headerlink" title="软件"></a>软件</h2><h3 id="可以直接安装的软件"><a href="#可以直接安装的软件" class="headerlink" title="可以直接安装的软件"></a>可以直接安装的软件</h3><p>百度网盘，坚果云，网易云音乐，WPS，Telegram，Chrome，Edge Dev，VLC，VMware，Steam，以上软件原生支持Linux并且都有较好的体验。</p><h3 id="存在替代方案的软件"><a href="#存在替代方案的软件" class="headerlink" title="存在替代方案的软件"></a>存在替代方案的软件</h3><h4 id="Microsoft-To-Do"><a href="#Microsoft-To-Do" class="headerlink" title="Microsoft To Do"></a>Microsoft To Do</h4><p>使用下面的命令安装Ao。它是一个网页版To Do的封装，但提供一部分快捷功能。</p><p>项目地址：<a href="https://github.com/klaussinani/ao">https://github.com/klaussinani/ao</a></p><p><code>sudo snap install ao</code></p><p><img src="https://ir-1253194828.cos.ap-guangzhou.myqcloud.com/wp-content/uploads//2021/06/1624172895-1620178668-ao-1024x581.png"></p><h4 id="状态监控"><a href="#状态监控" class="headerlink" title="状态监控"></a>状态监控</h4><p>Windows上用到是软媒的悬浮窗，胜在简单方便，在Linux中可用Psensor代替。在状态监控方面甚至比原来的更加出色，可以最小化到托盘便于查看。</p><p>项目地址：<a href="https://github.com/chinf/psensor">https://github.com/chinf/psensor</a></p><p><code>sudo apt install psensor</code></p><p><img src="https://ir-1253194828.cos.ap-guangzhou.myqcloud.com/wp-content/uploads//2021/06/1624172898-1620178610-psensor-1024x263.png"></p><h4 id="分区软件"><a href="#分区软件" class="headerlink" title="分区软件"></a>分区软件</h4><p>使用Gparted,使用方法基本与Windows上相关软件无异。注意当需要调整Linux系统所在分区时，需要用U盘创建Live CD，使用Live CD中的Gparted调整。</p><p><code>sudo snap install gparted</code></p><h4 id="LinuxQQ"><a href="#LinuxQQ" class="headerlink" title="LinuxQQ"></a>LinuxQQ</h4><p><a href="https://im.qq.com/linuxqq/">官网地址</a> 功能比较简单，要求不高的话可以用用。</p><h4 id="Deepin-Wine"><a href="#Deepin-Wine" class="headerlink" title="Deepin-Wine"></a>Deepin-Wine</h4><p>对于无法替代的常用软件，可尝试用Deepin-wine安装Deepin系统镜像中打包过的Windows版本。</p><p>我使用的项目地址：<a href="https://github.com/Jactor-Sue/Deepin-Apps-Installation/">https://github.com/Jactor-Sue/Deepin-Apps-Installation/</a></p><p>大概的使用方法和常见问题可在项目中找到。根据我的尝试，此项目提供的TIM为旧版本，无法登录，使用帮助中的方法升级最新版后出现一些BUG。而QQ无论是项目提供的版本还是最新版都保持基本功能可用。微信新版本可完美升级，基本完全可用。</p><h4 id="怎样玩游戏？"><a href="#怎样玩游戏？" class="headerlink" title="怎样玩游戏？"></a>怎样玩游戏？</h4><p>待续</p>]]></content>
    
    
      
      
        
        
    <summary type="html"></summary>
        
      
    
    
    
    <category term="技术" scheme="https://irr.ink/categories/tech/"/>
    
    
    <category term="折腾" scheme="https://irr.ink/tags/z-turn/"/>
    
  </entry>
  
  <entry>
    <title>域名更换与迁移服务器的小记</title>
    <link href="https://irr.ink/2021/1PRCXHB/"/>
    <id>https://irr.ink/2021/1PRCXHB/</id>
    <published>2021-03-06T09:37:16.000Z</published>
    <updated>2025-03-08T12:09:11.183Z</updated>
    
    <content type="html"><![CDATA[<p>久苦于旧域名(irrrr.xyz)的诸多弊病：又长又不好记又续费贵，邮箱还容易被hold。所以一直在物色新域名。挑选的标准以简短为宜，可惜主流域名短字符基本已被抢注，而一些小众域名要么续费贵要么没法备案。也是在偶然之中发现这个域名，很是中意，于是买下备案，计划长期使用，在很长的一段时期内不再准备进行更换。</p><p>之前一直用阿里云的服务器，腾讯云出了活动也本着节省的原则一直没买(阿里每年便宜12块钱)，但腾讯云把优惠时间延长了加上阿里云的工单和客服是极度的难用…..最后还是换到腾讯了。DNS，CDN，服务器都放在腾讯，也比较方便。今后四年也不用担心这方面的问题了，只是希望以后卖服务器能更便宜些吧。</p>]]></content>
    
    
      
      
        
        
    <summary type="html"></summary>
        
      
    
    
    
    <category term="碎念" scheme="https://irr.ink/categories/s/"/>
    
    
    <category term="建站" scheme="https://irr.ink/tags/%E5%BB%BA%E7%AB%99/"/>
    
  </entry>
  
  <entry>
    <title>Hello World</title>
    <link href="https://irr.ink/2021/151FCAP/"/>
    <id>https://irr.ink/2021/151FCAP/</id>
    <published>2021-01-04T16:22:24.000Z</published>
    <updated>2025-03-08T12:09:11.183Z</updated>
    
    <content type="html"><![CDATA[<p>“说来好笑。你千万别跟任何人谈任何事情。你只要一谈起，就会想念起每一个人来。”</p>]]></content>
    
    
      
      
        
        
    <summary type="html"></summary>
        
      
    
    
    
    <category term="笔记" scheme="https://irr.ink/categories/note/"/>
    
    <category term="其他" scheme="https://irr.ink/categories/note/%E5%85%B6%E4%BB%96/"/>
    
    
  </entry>
  
</feed>
