<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>PhDLuffy</title>
    <description>我是要成为博士的男人！</description>
    <link>https://PhDLuffy.github.io/</link>
    <atom:link href="https://PhDLuffy.github.io/feed.xml" rel="self" type="application/rss+xml" />
    <pubDate>Sat, 11 Apr 2026 19:53:35 +0800</pubDate>
    <lastBuildDate>Sat, 11 Apr 2026 19:53:35 +0800</lastBuildDate>
    <generator>Jekyll v3.10.0</generator>
    
      <item>
        <title>锡焊注意事项</title>
        <description>&lt;p&gt;闲来无事，给机械键盘加了灯。&lt;/p&gt;

&lt;p&gt;踩了几个坑，来记录下，以备后用。&lt;/p&gt;

&lt;h2 id=&quot;预处理&quot;&gt;预处理&lt;/h2&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;h2 id=&quot;正式焊锡&quot;&gt;正式焊锡&lt;/h2&gt;

&lt;p&gt;插好LED灯，长为正短为负，&lt;/p&gt;

&lt;p&gt;LED灯的焊盘圈非常小，所以用一点点焊锡就可以，&lt;/p&gt;

&lt;p&gt;点一下即可&lt;/p&gt;

&lt;h2 id=&quot;后处理&quot;&gt;后处理&lt;/h2&gt;

&lt;p&gt;如果发现焊的不好，可以用吸焊器或者吸锡带把焊点处理干净重新焊锡。&lt;/p&gt;

&lt;p&gt;吸焊器要注意，右手焊刀加热焊锡融化，左手吸焊器迅速竖直方向顶住焊点，点击按钮，&lt;/p&gt;

&lt;p&gt;利用真空吸力将焊点的锡吸干净，漏出焊点和焊洞。&lt;/p&gt;

</description>
        <pubDate>Sat, 11 Apr 2026 00:00:00 +0800</pubDate>
        <link>https://PhDLuffy.github.io/2026/04/11/soldering-led-keyboard/</link>
        <guid isPermaLink="true">https://PhDLuffy.github.io/2026/04/11/soldering-led-keyboard/</guid>
        
        <category>日常</category>
        
        
      </item>
    
      <item>
        <title>scrutiny硬盘温度监控</title>
        <description>&lt;h2 id=&quot;docker安装scrutiny&quot;&gt;docker安装Scrutiny&lt;/h2&gt;

&lt;p&gt;新建目录&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;scrutiny&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;新建文件&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;docker-compose.yml&lt;/code&gt;&lt;/p&gt;

&lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;version: &lt;span class=&quot;s1&quot;&gt;&apos;3.5&apos;&lt;/span&gt;

services:
  scrutiny:
    container_name: scrutiny
    image: ghcr.io/analogj/scrutiny:master-omnibus
    cap_add:
      - SYS_RAWIO   &lt;span class=&quot;c&quot;&gt;# 获取机械硬盘的S.M.A.R.T 信息，默认即可&lt;/span&gt;
      - SYS_ADMIN    &lt;span class=&quot;c&quot;&gt;# 获取NVMe硬盘的S.M.A.R.T 信息，没有可以删除&lt;/span&gt;
    ports:
      - &lt;span class=&quot;s2&quot;&gt;&quot;8183:8080&quot;&lt;/span&gt; &lt;span class=&quot;c&quot;&gt;# webapp&lt;/span&gt;
      - &lt;span class=&quot;s2&quot;&gt;&quot;8184:8086&quot;&lt;/span&gt; &lt;span class=&quot;c&quot;&gt;# influxDB admin（可以不映射）&lt;/span&gt;
    volumes:
      - /run/udev:/run/udev:ro
      - ./config:/opt/scrutiny/config
      - ./influxdb:/opt/scrutiny/influxdb
    devices:
      - &lt;span class=&quot;s2&quot;&gt;&quot;/dev/sda&quot;&lt;/span&gt;
      - &lt;span class=&quot;s2&quot;&gt;&quot;/dev/sdb&quot;&lt;/span&gt;
      - &lt;span class=&quot;s2&quot;&gt;&quot;/dev/nvme0n1&quot;&lt;/span&gt;
    environment:
      - &lt;span class=&quot;nv&quot;&gt;COLLECTOR_CRON_SCHEDULE&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;0 */5 * * *&quot;&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;新建目录&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;config&lt;/code&gt;和&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;influxdb&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;目录&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;/config&lt;/code&gt;新建文件&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;collector.yaml&lt;/code&gt;&lt;/p&gt;

&lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;devices:
  - device: /dev/sda
    &lt;span class=&quot;nb&quot;&gt;type&lt;/span&gt;: &lt;span class=&quot;s1&quot;&gt;&apos;sat&apos;&lt;/span&gt;
  - device: /dev/sdb
    &lt;span class=&quot;nb&quot;&gt;type&lt;/span&gt;: &lt;span class=&quot;s1&quot;&gt;&apos;sat&apos;&lt;/span&gt;
  - device: /dev/nvme0n1
    &lt;span class=&quot;nb&quot;&gt;type&lt;/span&gt;: &lt;span class=&quot;s1&quot;&gt;&apos;nvme&apos;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Termius进入ssh&lt;/p&gt;

&lt;p&gt;目录&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;./scrutiny&lt;/code&gt;执行&lt;/p&gt;

&lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;docker-compose up &lt;span class=&quot;nt&quot;&gt;-d&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;以上。&lt;/p&gt;

&lt;p&gt;参考文献：&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://catcat.blog/docker-install-scrutiny-monitor-harddrive.html&quot;&gt;Docker 部署 Scrutiny 监控你的硬盘 - 猫猫博客&lt;/a&gt;&lt;/p&gt;

</description>
        <pubDate>Mon, 06 Oct 2025 00:00:00 +0800</pubDate>
        <link>https://PhDLuffy.github.io/2025/10/06/docker-scrutiny-synology/</link>
        <guid isPermaLink="true">https://PhDLuffy.github.io/2025/10/06/docker-scrutiny-synology/</guid>
        
        <category>软件</category>
        
        
      </item>
    
      <item>
        <title>通过docker安装beszel监控主机性能</title>
        <description>&lt;h2 id=&quot;搭建中心hub&quot;&gt;搭建中心(hub)&lt;/h2&gt;

&lt;p&gt;在远端具有公网ip的主机上搭建中心(hub)&lt;/p&gt;

&lt;p&gt;docker目录下建立&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;beszel&lt;/code&gt;文件夹，&lt;/p&gt;

&lt;p&gt;在&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;beszel&lt;/code&gt;文件夹下，同时新建&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;beszel_data&lt;/code&gt;和&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;beszel_socket&lt;/code&gt;文件夹。&lt;/p&gt;

&lt;p&gt;新建&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;docker-compose.yml&lt;/code&gt;文件&lt;/p&gt;

&lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;version: &lt;span class=&quot;s1&quot;&gt;&apos;3.3&apos;&lt;/span&gt;

services:
  beszel:
    image: henrygd/beszel:latest        
    container_name: beszel              
    restart: always                     
    ports:
      - 8090:8090                       
    volumes:
      - ./beszel_data:/beszel_data      
      - ./beszel_socket:/beszel_socket  

&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;启动容器&lt;/p&gt;

&lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;docker-compose up &lt;span class=&quot;nt&quot;&gt;-d&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;主机上的&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;frpc&lt;/code&gt;服务，将&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;8090&lt;/code&gt;端口暴露到公网域名&lt;/p&gt;

&lt;p&gt;使用公网域名打开beszel服务&lt;/p&gt;

&lt;p&gt;新建管理员&lt;/p&gt;

&lt;p&gt;新增客户端agent&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://fastly.jsdelivr.net/gh/PhDLuffy/PicGo@master/img/202510042251911.png&quot; alt=&quot;image-1757386430536&quot; /&gt;&lt;/p&gt;

&lt;p&gt;名称：主机名，自定义&lt;/p&gt;

&lt;p&gt;主机/IP：必填，可填真实ip或者瞎编一个&lt;/p&gt;

&lt;p&gt;端口：固定为45876&lt;/p&gt;

&lt;p&gt;公钥和令牌自动生成&lt;/p&gt;

&lt;p&gt;点击复制&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;docker-compose&lt;/code&gt;文件，例如&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;文件D&lt;/code&gt;&lt;/p&gt;

&lt;h2 id=&quot;客户端搭建代理agent&quot;&gt;客户端搭建代理(agent)&lt;/h2&gt;

&lt;p&gt;在本地需要监控的主机上搭建代理(agent)&lt;/p&gt;

&lt;p&gt;docker目录下建立&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;beszel-agent&lt;/code&gt;文件夹，&lt;/p&gt;

&lt;p&gt;在&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;beszel-agent&lt;/code&gt;文件夹下，新建&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;beszel_agent_data&lt;/code&gt;文件夹。&lt;/p&gt;

&lt;p&gt;将上一步生成的&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;文件D&lt;/code&gt;复制到&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;beszel-agent&lt;/code&gt;文件夹下&lt;/p&gt;

&lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;version: &lt;span class=&quot;s1&quot;&gt;&apos;3.3&apos;&lt;/span&gt;

services:
  beszel-agent:
    image: henrygd/beszel-agent                 &lt;span class=&quot;c&quot;&gt;# 使用 henrygd/beszel-agent 镜像&lt;/span&gt;
    container_name: beszel-agent                &lt;span class=&quot;c&quot;&gt;# 容器名称为 beszel-agent&lt;/span&gt;
    restart: always                             &lt;span class=&quot;c&quot;&gt;# 容器异常退出时自动重启&lt;/span&gt;
    network_mode: host                          &lt;span class=&quot;c&quot;&gt;# 使用宿主机网络模式，方便访问本机端口和资源&lt;/span&gt;
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock:ro   &lt;span class=&quot;c&quot;&gt;# 挂载宿主机 Docker 套接字（只读），用于获取容器运行状态&lt;/span&gt;
      - ./beszel_agent_data:/var/lib/beszel-agent      &lt;span class=&quot;c&quot;&gt;# 将数据持久化到宿主机 ./beszel_agent_data 目录&lt;/span&gt;
    environment:
      LISTEN: 45876                           &lt;span class=&quot;c&quot;&gt;# agent 监听的端口（默认 45876）&lt;/span&gt;
      KEY:                                    &lt;span class=&quot;c&quot;&gt;# 与 hub 配置的 KEY 保持一致，用于安全通信&lt;/span&gt;
      TOKEN:                                  &lt;span class=&quot;c&quot;&gt;# 可选的认证 Token，用于加强安全性&lt;/span&gt;
      HUB_URL: http://localhost:8090          &lt;span class=&quot;c&quot;&gt;# hub 服务的访问地址（例如 http://&amp;lt;hub服务器IP&amp;gt;:8090）本机可以使用http://localhost:8090,其他主机请填相应的ip&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;KEY和TOKEN为服务器自动生成，&lt;/p&gt;

&lt;p&gt;HUB_URL：可以填入反代的https域名&lt;/p&gt;

&lt;h2 id=&quot;beszel网页端管理&quot;&gt;beszel网页端管理&lt;/h2&gt;

&lt;p&gt;此时再次查看网页端，可以看到客户端各性能监控信息&lt;/p&gt;

&lt;p&gt;选择设置，通知，Webhook/推送通知&lt;/p&gt;

&lt;p&gt;可以通过bark进行服务器性能通知到手机等设备通知&lt;/p&gt;

&lt;p&gt;bark的格式为&lt;/p&gt;

&lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;bark://:接收通知设备的barkid@自建服务器域名和端口/
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;设备id前面记得有个&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;:&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;bark自建服务器不需要填写&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;https://&lt;/code&gt;，末尾记得添加&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;/&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;以上&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.ywsj365.com/archives/docker-bu-shu-yi-ge-qing-liang-yi-yong-de-fu-wu-qi-jian-kong--beszel&quot;&gt;Docker部署一个轻量易用的服务器监控-Beszel&lt;/a&gt;&lt;/p&gt;
</description>
        <pubDate>Sat, 04 Oct 2025 00:00:00 +0800</pubDate>
        <link>https://PhDLuffy.github.io/2025/10/04/docker-beszel-bark/</link>
        <guid isPermaLink="true">https://PhDLuffy.github.io/2025/10/04/docker-beszel-bark/</guid>
        
        <category>奇技淫巧</category>
        
        
      </item>
    
      <item>
        <title>Mac安装arm版本的MATLAB</title>
        <description>&lt;h2 id=&quot;matlab卸载旧版本&quot;&gt;matlab卸载旧版本&lt;/h2&gt;

&lt;p&gt;卸载matlab.app&lt;/p&gt;

&lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;/Applications/MATLAB_R20XXy.app
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;删除用户预设文件夹&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;macOS：&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;
    &lt;p&gt;打开Finder，Dock上的蓝色面孔&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;在Finder窗口中, 点击 “Go” 菜单中点击 “Go to Folder”&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;转到以下文件夹: ~/Library/Application Support/MathWorks/MATLAB&lt;/p&gt;
  &lt;/li&gt;
&lt;/ol&gt;

&lt;blockquote&gt;
  &lt;p&gt;删除对应年份版本的文件夹&lt;/p&gt;
&lt;/blockquote&gt;

&lt;blockquote&gt;
  &lt;p&gt;对于R2016a及更早版本：~/.matlab&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2 id=&quot;安装matlab&quot;&gt;安装matlab&lt;/h2&gt;

&lt;p&gt;验证软件压缩包和安装包哈希值，保证软件完整无误。&lt;/p&gt;

&lt;p&gt;打开挂载的 dmg 文件并运行 InstallForMacOSAppleSilicon.app。如果您看到登录/密码/登录表单（安装程序可以访问互联网），则在“高级选项”中的右上角选择“设置模式”为“我有一个文件安装密钥”。在断网情况下,直接就可以进入这个选项，不需要手动选择。&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;需耐心等待软件安装界面自己弹出，需要较长时间，不要乱动&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;img src=&quot;https://fastly.jsdelivr.net/gh/PhDLuffy/PicGo@master/img/202507230745166.jpg&quot; alt=&quot;1&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://fastly.jsdelivr.net/gh/PhDLuffy/PicGo@master/img/202507230745433.jpg&quot; alt=&quot;2&quot; /&gt;&lt;/p&gt;

&lt;p&gt;当您被要求“输入文件安装密钥”时，请输入以下密钥：&lt;/p&gt;

&lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;13524-34118-36356-04705-52908-49554-62658-50524-11699-58869-31128-29691-04297-03972-41841-25259-39095-20560-15057-30691-09676-24411-20994-63771-19270-40917
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;img src=&quot;https://fastly.jsdelivr.net/gh/PhDLuffy/PicGo@master/img/202507230745902.jpg&quot; alt=&quot;3&quot; /&gt;&lt;/p&gt;

&lt;p&gt;当您被要求“选择许可文件”时，浏览到/medicine/文件的文件夹中选择“license.lic”文件。&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://fastly.jsdelivr.net/gh/PhDLuffy/PicGo@master/img/202507230746706.jpg&quot; alt=&quot;4&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://fastly.jsdelivr.net/gh/PhDLuffy/PicGo@master/img/202507221525744.gif&quot; alt=&quot;5&quot; /&gt;&lt;/p&gt;

&lt;p&gt;然后选择您想要安装 Matlab 的文件夹。默认即可&lt;/p&gt;

&lt;p&gt;选择安装组件,默认全选,自己根据需要选择也可以, 只选择&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;MATLAB&lt;/code&gt;的安装大小为3.5G左右&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://fastly.jsdelivr.net/gh/PhDLuffy/PicGo@master/img/202507230746590.jpg&quot; alt=&quot;6&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://fastly.jsdelivr.net/gh/PhDLuffy/PicGo@master/img/202507230746904.jpg&quot; alt=&quot;7&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://fastly.jsdelivr.net/gh/PhDLuffy/PicGo@master/img/202507230746433.jpg&quot; alt=&quot;8&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://fastly.jsdelivr.net/gh/PhDLuffy/PicGo@master/img/202507230747750.jpg&quot; alt=&quot;9&quot; /&gt;&lt;/p&gt;

&lt;p&gt;从包含/medicine/文件夹的文件夹中复制文件“libmwlmgrimpl.dylib”到&lt;/p&gt;

&lt;p&gt;M芯片Mac路径&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;/Applications/MATLAB_R2024a.app/bin/maca64/matlab_startup_plugins/lmgrimpl/&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Intel芯片路径 &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;/Applications/MATLAB_R2024a.app/bin/maci64/matlab_startup_plugins/lmgrimpl/&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;覆盖现有文件（是您在第4步中选择安装 Matlab 的位置）。如果您没有被要求覆盖，则您可能做错了什么（或 Matlab 安装不成功）！&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://fastly.jsdelivr.net/gh/PhDLuffy/PicGo@master/img/202507221527802.gif&quot; alt=&quot;img&quot; /&gt;&lt;/p&gt;

&lt;h4 id=&quot;非常重要&quot;&gt;非常重要&lt;/h4&gt;

&lt;p&gt;把medicine文件夹中&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;license.lic&lt;/code&gt;文件拷贝&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;/Applications/MATLAB_R2024a.app/licenses&lt;/code&gt; (此步骤必须做!否则会提示许可证错误)&lt;/p&gt;

&lt;h2 id=&quot;安装java-jre&quot;&gt;安装JAVA JRE&lt;sup id=&quot;fnref:2&quot; role=&quot;doc-noteref&quot;&gt;&lt;a href=&quot;#fn:2&quot; class=&quot;footnote&quot; rel=&quot;footnote&quot;&gt;1&lt;/a&gt;&lt;/sup&gt;&lt;/h2&gt;

&lt;p&gt;首先下载Arm版本所支持JRE，根据MathWorks官方提供的信息，需要下载并安装&lt;a href=&quot;https://corretto.aws/downloads/latest/amazon-corretto-11-aarch64-macos-jdk.pkg&quot;&gt;Amazon Corretto11&lt;/a&gt;，下载默认安装即可&lt;/p&gt;

&lt;p&gt;安装好Corretto 11之后在根目录下执行如下的命令来使得Matlab找到对应的Java版本&lt;/p&gt;

&lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;/Applications/MATLAB_R2024a.app/bin/maca64/matlab_jenv /Library/Java/JavaVirtualMachines/amazon-corretto-11.jdk/Contents/Home
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;运行软件即可。&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://fastly.jsdelivr.net/gh/PhDLuffy/PicGo@master/img/202507230747542.jpg&quot; alt=&quot;10&quot; /&gt;&lt;/p&gt;

&lt;p&gt;参考文献：&lt;/p&gt;

&lt;div class=&quot;footnotes&quot; role=&quot;doc-endnotes&quot;&gt;
  &lt;ol&gt;
    &lt;li id=&quot;fn:2&quot; role=&quot;doc-endnote&quot;&gt;
      &lt;p&gt;&lt;a href=&quot;https://zhuanlan.zhihu.com/p/672042028&quot;&gt;(3 封私信 / 2 条消息) Apple silicon 安装 Matlab Arm原生版本遇到的问题 - 知乎&lt;/a&gt; &lt;a href=&quot;#fnref:2&quot; class=&quot;reversefootnote&quot; role=&quot;doc-backlink&quot;&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
    &lt;/li&gt;
  &lt;/ol&gt;
&lt;/div&gt;
</description>
        <pubDate>Tue, 22 Jul 2025 00:00:00 +0800</pubDate>
        <link>https://PhDLuffy.github.io/2025/07/22/mac-arm-matlab/</link>
        <guid isPermaLink="true">https://PhDLuffy.github.io/2025/07/22/mac-arm-matlab/</guid>
        
        <category>软件</category>
        
        
      </item>
    
      <item>
        <title>子路由和主路由设备互通</title>
        <description>&lt;h2 id=&quot;前言&quot;&gt;前言&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;为何要设置主路由和子路由？&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;为了设备隔离，为了特殊网络服务和正常网络服务解耦合。&lt;/p&gt;

&lt;p&gt;主路由连接光猫，提供正常的网络服务，下属设备为家庭正常使用设备。&lt;/p&gt;

&lt;p&gt;子路由连接主路由，不采用交换机模式(LAN接LAN)，采用主路由子路由模式(LAN接WAN)，&lt;/p&gt;

&lt;p&gt;子路由提供特殊网络服务，子路由出问题并不影响主路由的网络服务，做到服务解耦合。&lt;/p&gt;

&lt;h2 id=&quot;子路由和主路由的网络拓扑&quot;&gt;子路由和主路由的网络拓扑&lt;sup id=&quot;fnref:1&quot; role=&quot;doc-noteref&quot;&gt;&lt;a href=&quot;#fn:1&quot; class=&quot;footnote&quot; rel=&quot;footnote&quot;&gt;1&lt;/a&gt;&lt;/sup&gt;&lt;/h2&gt;

&lt;p&gt;由图可视，&lt;/p&gt;

&lt;p&gt;主路由WAN口连接光猫，正常上网。&lt;/p&gt;

&lt;p&gt;主路由LAN口连接子路由的WAN口。&lt;/p&gt;

&lt;p&gt;子路由的LAN口连接其下属设备&lt;/p&gt;

&lt;p&gt;此时的IP情况。&lt;/p&gt;

&lt;p&gt;主路由的WAN口获得光猫拨号分发的公网IP&lt;/p&gt;

&lt;p&gt;主路由的LAN口获得主路由DHCP分发的主路由网段ip，192.168.1.X网段，主路由IP为192.168.1.1&lt;/p&gt;

&lt;p&gt;子路由的WAN口获得主路由DHCP分发的主路由网段ip，192.168.1.2&lt;/p&gt;

&lt;p&gt;子路由的LAN口获得子路由DHCP分发的子路由网段，192.168.2.X网段，子路由IP为192.168.2.1&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://fastly.jsdelivr.net/gh/PhDLuffy/PicGo@master/img/202506241134779.png&quot; alt=&quot;image-20250624113414680&quot; /&gt;&lt;/p&gt;

&lt;p&gt;在这样的网络拓扑下，&lt;/p&gt;

&lt;p&gt;正常情况下，子路由192.168.2.x网段设备，是可以访问同网段设备和主路由192.168.1.x网段设备&lt;/p&gt;

&lt;p&gt;但是，主路由192.168.1.x网段设备，无法访问子路由192.168.2.1网段设备。&lt;/p&gt;

&lt;p&gt;所以这时候就需要在主路由设置静态路由来实现这个功能。&lt;/p&gt;

&lt;h2 id=&quot;静态路由&quot;&gt;静态路由&lt;/h2&gt;

&lt;p&gt;在主路由设备进行操作，&lt;/p&gt;

&lt;p&gt;添加静态路由表，&lt;/p&gt;

&lt;p&gt;主机ip，填写子路由网段，例如，192.168.2.0&lt;/p&gt;

&lt;p&gt;网络掩码，255.255.255.0&lt;/p&gt;

&lt;p&gt;网关，填写子路由的WAN口在主路由网段下的ip，例如，192.168.1.2&lt;/p&gt;

&lt;p&gt;这样，主路由网段设备去寻找例如192.168.2.6打印机设备，&lt;/p&gt;

&lt;p&gt;会首先去寻找192.168.1.2这个子路由网关(同时ip也是192.168.2.1)，然后再往下寻找192.168.2.6打印机设备。&lt;/p&gt;

&lt;p&gt;这样，主路由和子路由就达成了设备互通。&lt;/p&gt;

&lt;h2 id=&quot;特殊情况&quot;&gt;特殊情况&lt;/h2&gt;

&lt;p&gt;在子路由具有特殊网络服务的情况下，子路由设备并不能自动向上访问主路由设备。&lt;/p&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;p&gt;添加静态路由表，&lt;/p&gt;

&lt;p&gt;主机ip，填写主路由网段，例如，192.168.1.0&lt;/p&gt;

&lt;p&gt;网络掩码，255.255.255.0&lt;/p&gt;

&lt;p&gt;网关，填写主路由LAN口在子路由WAN口下的ip，例如，192.168.2.1&lt;/p&gt;

&lt;p&gt;这样，子路由网段设备去寻找例如192.168.1.6的监控设备，&lt;/p&gt;

&lt;p&gt;会首先去寻找192.168.2.1这个子路由网关(同时ip也是192.168.1.2)，然后再往上寻找192.168.1.6监控设备。&lt;/p&gt;

&lt;p&gt;这样，在特殊情况下，子路由和主路由达成了设备互通。&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://fastly.jsdelivr.net/gh/PhDLuffy/PicGo@master/img/202506241210792.png&quot; alt=&quot;群晖下属设备访问主路由静态路由表设置界面&quot; /&gt;&lt;/p&gt;

&lt;h2 id=&quot;总结&quot;&gt;总结&lt;/h2&gt;

&lt;p&gt;静态路由表的核心就是两点，一是找到连接主路由和子路由的设备ip，也就是网关ip；二是确定主路由和子路由的网段；&lt;/p&gt;

&lt;p&gt;设备首先寻找自己网段的网关设备，然后通过网关向上或向下跳转到另一个网段，寻找另一个网段的设备。&lt;/p&gt;

&lt;h2 id=&quot;参考文献&quot;&gt;参考文献：&lt;/h2&gt;

&lt;div class=&quot;footnotes&quot; role=&quot;doc-endnotes&quot;&gt;
  &lt;ol&gt;
    &lt;li id=&quot;fn:1&quot; role=&quot;doc-endnote&quot;&gt;
      &lt;p&gt;&lt;a href=&quot;https://www.bilibili.com/video/BV1Xf4y1R7Rq/?spm_id_from=333.337.search-card.all.click&amp;amp;vd_source=ae43e31fa8b0a49f93dbb7dc012860f8&quot;&gt;教大家用静态路由，访问子路由器下电脑文件共享和网络监控等设备_哔哩哔哩_bilibili&lt;/a&gt; &lt;a href=&quot;#fnref:1&quot; class=&quot;reversefootnote&quot; role=&quot;doc-backlink&quot;&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
    &lt;/li&gt;
  &lt;/ol&gt;
&lt;/div&gt;
</description>
        <pubDate>Tue, 24 Jun 2025 00:00:00 +0800</pubDate>
        <link>https://PhDLuffy.github.io/2025/06/24/static-route-reverse/</link>
        <guid isPermaLink="true">https://PhDLuffy.github.io/2025/06/24/static-route-reverse/</guid>
        
        <category>软件</category>
        
        
      </item>
    
      <item>
        <title>看日剧《金与银小本经营第二季》</title>
        <description>&lt;h2 id=&quot;前言碎碎念&quot;&gt;前言碎碎念&lt;/h2&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;h2 id=&quot;金与银小本经营&quot;&gt;金与银：小本经营&lt;/h2&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;p&gt;目前最喜欢的是里面这句话，&lt;/p&gt;

&lt;p&gt;桔梗花有朝一日还会重开的。&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://fastly.jsdelivr.net/gh/PhDLuffy/PicGo@master/img/202505021156594.png&quot; alt=&quot;image-20250502115638518&quot; /&gt;&lt;/p&gt;

&lt;h2 id=&quot;后记&quot;&gt;后记&lt;/h2&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;p&gt;期待看看后面剧情怎么发展吧。&lt;/p&gt;

&lt;p&gt;莫迪和瑞克也更新了，&lt;/p&gt;

&lt;p&gt;记得nas搞好便于infuse看。&lt;/p&gt;
</description>
        <pubDate>Fri, 02 May 2025 00:00:00 +0800</pubDate>
        <link>https://PhDLuffy.github.io/2025/05/02/Akinai-Seiden-Kin-to-Gin/</link>
        <guid isPermaLink="true">https://PhDLuffy.github.io/2025/05/02/Akinai-Seiden-Kin-to-Gin/</guid>
        
        <category>日剧</category>
        
        
      </item>
    
      <item>
        <title>读薄伽丘《十日谈》</title>
        <description>&lt;h2 id=&quot;前言大白话&quot;&gt;前言大白话&lt;/h2&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;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;再之后，B站仿佛窃听了我的隐私，&lt;/p&gt;

&lt;p&gt;紧接着小鹿Lawrence和米老师就去了意大利，&lt;/p&gt;

&lt;p&gt;更巧的是，&lt;/p&gt;

&lt;p&gt;其中一趴就是去《请以你的名字呼唤我》的拍摄地，克雷马Crema。&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://fastly.jsdelivr.net/gh/PhDLuffy/PicGo@master/img/202504281151533.png&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;顺藤摸瓜，兜兜转转，这就是所谓的缘分么？&lt;/p&gt;

&lt;p&gt;既然跟意大利这么有缘，那就看个意大利名著吧，由此就看了薄伽丘的《十日谈》。&lt;/p&gt;

&lt;h2 id=&quot;十日谈&quot;&gt;十日谈&lt;/h2&gt;

&lt;p&gt;这本小册子不算很薄，也不算很厚，&lt;/p&gt;

&lt;p&gt;大约有600页。&lt;/p&gt;

&lt;p&gt;按照我的注意力极限，&lt;/p&gt;

&lt;p&gt;一晚看个100页没问题，&lt;/p&gt;

&lt;p&gt;但是看了大概之后，&lt;/p&gt;

&lt;p&gt;发现这本书类似于单元剧，&lt;/p&gt;

&lt;p&gt;一共10天内容，一天10个故事，&lt;/p&gt;

&lt;p&gt;那我就分10天看完好了。&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;《十日谈》的人物不只有7女3男，&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;嘟嘟嘟嘟10天过去了，&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;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;/p&gt;

&lt;h2 id=&quot;后记&quot;&gt;后记&lt;/h2&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;ul&gt;
  &lt;li&gt;
    &lt;p&gt;不为人知的罪孽也就得到了一半的宽恕。&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;伊壁鸠鲁[3]。&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;两人一拍即合&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;你只知道侍奉天主，不懂得侍奉女人。&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;晚饭缺一顿，整宿穷折腾。&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;当然，我来劲时还干别的。&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;你总是希望有情人下场悲惨，未免太残忍。&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;一个女人能把许多男人弄得精疲力尽，而许多男人却弄不乏一个女人。&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;他戴了绿头巾，还挨了一顿揍。&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;泰莎，全怪你，你总是喜欢趴在上面。&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;友谊的纽带比血缘的纽带牢固得多，因为朋友是我们自己选择的，而亲戚是命运安排的，由不得我们选择。&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;读者遇到不感兴趣的地方不妨略过，光挑喜欢的看。&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;《十日谈》的第十天，亦即最后一天，到此结束。&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

</description>
        <pubDate>Mon, 28 Apr 2025 00:00:00 +0800</pubDate>
        <link>https://PhDLuffy.github.io/2025/04/28/Decameron-Boccaccio/</link>
        <guid isPermaLink="true">https://PhDLuffy.github.io/2025/04/28/Decameron-Boccaccio/</guid>
        
        <category>读书杂记</category>
        
        
      </item>
    
      <item>
        <title>读阿加莎《罗杰谜案》</title>
        <description>&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;整个小说前20章都是冗长的无聊铺垫，&lt;/p&gt;

&lt;p&gt;一如既往的阿加莎风格，&lt;/p&gt;

&lt;p&gt;跟《东方列车谋杀案》一样的眼花缭乱的出场人物。&lt;/p&gt;

&lt;p&gt;整个前20章就是消化这些人物之间复杂的人际关系&lt;/p&gt;

&lt;p&gt;唯一的亮点，就是最后一章的剧情转折。&lt;/p&gt;

&lt;p&gt;为了这口醋，包了200多页的饺子。&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;blockquote&gt;
  &lt;p&gt;“每个人都有所隐瞒”&lt;/p&gt;

  &lt;p&gt;记住，证人可能撒谎。&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;img src=&quot;https://fastly.jsdelivr.net/gh/PhDLuffy/PicGo@master/img/202504072141437.png&quot; alt=&quot;klib-标记&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;缺少本格推理的硬逻辑。&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;p&gt;只能在最后用“掀桌”这种不讲理的方式来秀你一脸。&lt;/p&gt;

&lt;p&gt;所以，阿加莎是一个伟大的小说家，但真不是一个合格的侦探小说家。&lt;/p&gt;
</description>
        <pubDate>Mon, 07 Apr 2025 00:00:00 +0800</pubDate>
        <link>https://PhDLuffy.github.io/2025/04/07/Agatha-The-Murder-of-Roger-Ackroyd/</link>
        <guid isPermaLink="true">https://PhDLuffy.github.io/2025/04/07/Agatha-The-Murder-of-Roger-Ackroyd/</guid>
        
        <category>读书杂记</category>
        
        <category>推理</category>
        
        <category>阿加莎</category>
        
        
      </item>
    
      <item>
        <title>Github新分支和分支合并</title>
        <description>&lt;h2 id=&quot;github-desktop&quot;&gt;Github Desktop&lt;/h2&gt;

&lt;h3 id=&quot;建立新分支&quot;&gt;建立新分支&lt;/h3&gt;

&lt;p&gt;建立新的分支，在此分支上进行正常开发&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;记得Current Branch中选定新分支&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;img src=&quot;https://fastly.jsdelivr.net/gh/PhDLuffy/PicGo@master/img/202504031338983.png&quot; alt=&quot;新建分支&quot; /&gt;&lt;/p&gt;

&lt;h3 id=&quot;正常编写代码&quot;&gt;正常编写代码&lt;/h3&gt;

&lt;p&gt;正常编写代码，正常comment&lt;/p&gt;

&lt;h3 id=&quot;上传同步新分支&quot;&gt;上传同步新分支&lt;/h3&gt;

&lt;p&gt;上传新分支会pull到新分支仓库&lt;/p&gt;

&lt;h3 id=&quot;合并分支&quot;&gt;合并分支&lt;/h3&gt;

&lt;p&gt;同步新分支之后，新分支会提示Preview Pull Request，&lt;/p&gt;

&lt;p&gt;点击即可提交请求给主分支，&lt;/p&gt;

&lt;p&gt;只要之前不动主分支，只在新分支上继续开发，那么新分支的代码贡献上来就不可能会有冲突，&lt;/p&gt;

&lt;p&gt;直接同意Merge即可，&lt;/p&gt;

&lt;p&gt;网页端同意新分支的Merge pull request，这有点像别人给你贡献代码一样。&lt;/p&gt;

&lt;p&gt;这样本地选择master主分支，可以进行正常Fetch origin，且有一个Merge pull request的comment出现在history里面&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://fastly.jsdelivr.net/gh/PhDLuffy/PicGo@master/img/202504031346131.png&quot; alt=&quot;Pull Request&quot; /&gt;&lt;/p&gt;

&lt;h3 id=&quot;删除开发分支&quot;&gt;删除开发分支&lt;/h3&gt;

&lt;p&gt;删除无用的开发分支。&lt;/p&gt;

&lt;p&gt;确认处于主分支，&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;checkout&lt;/code&gt;起到切换分支的作用, 后面接分支名&lt;/p&gt;

&lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;git checkout master
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h2 id=&quot;本地删除分支&quot;&gt;&lt;strong&gt;&lt;em&gt;*本地删除分支*&lt;/em&gt;&lt;/strong&gt;&lt;/h2&gt;

&lt;p&gt;如果你还在一个分支上，那么 Git 是不允许你删除这个分支的。所以，请记得退出分支：&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;git checkout master&lt;/code&gt;。&lt;/p&gt;

&lt;p&gt;通过 &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;git branch -d &amp;lt;branch&amp;gt;&lt;/code&gt;删除一个分支，比如：&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;git branch -d &lt;/code&gt;分支名&lt;/p&gt;

&lt;p&gt;当一个分支被推送并合并到远程分支后，&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;-d&lt;/code&gt; 才会本地删除该分支。如果一个分支还没有被推送或者合并，那么可以使用&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;-D&lt;/code&gt;强制删除它。&lt;/p&gt;

&lt;p&gt;这就是本地删除分支的方法。&lt;/p&gt;

&lt;h2 id=&quot;远程删除分支&quot;&gt;&lt;strong&gt;&lt;em&gt;*远程删除分支*&lt;/em&gt;&lt;/strong&gt;&lt;/h2&gt;

&lt;p&gt;使用这个命令可以远程删除分支：&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;git push &amp;lt;remote&amp;gt; --delete &amp;lt;branch&amp;gt;&lt;/code&gt;。&lt;/p&gt;

&lt;p&gt;比如： &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;git push origin --delete &lt;/code&gt;分支名，这个分支就被远程删除了。&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;记得开增强模式代理，vscode的终端需要代理才能连上github&lt;/p&gt;
&lt;/blockquote&gt;
</description>
        <pubDate>Thu, 03 Apr 2025 00:00:00 +0800</pubDate>
        <link>https://PhDLuffy.github.io/2025/04/03/github-branch-merge/</link>
        <guid isPermaLink="true">https://PhDLuffy.github.io/2025/04/03/github-branch-merge/</guid>
        
        <category>日常</category>
        
        <category>软件</category>
        
        <category>博客</category>
        
        
      </item>
    
      <item>
        <title>徐克的《断刀客》</title>
        <description>&lt;p&gt;今天看了部电影，徐克在1995年上映的《断刀客》。&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;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;/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;blockquote&gt;
  &lt;p&gt;还有两个亮点，
一个是赵文卓使用的铁链双刀，
让我想起了奎托斯奎爷。
另一个就是女主角桑妮，
古早之前上过新闻，最美尼姑。
片子里确实挺美的。&lt;/p&gt;
&lt;/blockquote&gt;

</description>
        <pubDate>Thu, 03 Apr 2025 00:00:00 +0800</pubDate>
        <link>https://PhDLuffy.github.io/2025/04/03/Tsui-Hark-The-Blade/</link>
        <guid isPermaLink="true">https://PhDLuffy.github.io/2025/04/03/Tsui-Hark-The-Blade/</guid>
        
        <category>日常</category>
        
        <category>电影</category>
        
        
      </item>
    
      <item>
        <title>删除无效的MacOS登录项目</title>
        <description>&lt;p&gt;&lt;img src=&quot;https://fastly.jsdelivr.net/gh/PhDLuffy/PicGo@master/img/202503152340849.png&quot; alt=&quot;登录项目和后台&quot; /&gt;&lt;/p&gt;

&lt;p&gt;卸载软件之后，这个位置往往有莫名的残留，可以用以下方法删除&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://discussionschinese.apple.com/thread/254445461?sortBy=rank&quot;&gt;如何删除「允许在后台」下面的app - Apple 社区&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;运行命令，输入密码，会在桌面生成一个&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;launch.txt&lt;/code&gt;文件&lt;/p&gt;

&lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;nb&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;--&lt;/span&gt; bash &lt;span class=&quot;nt&quot;&gt;-c&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&apos;echo &quot; - $(date) -&quot;; while IFS= read -r eachPlist; do echo &quot;-$eachPlist&quot;;  /usr/bin/defaults read &quot;$eachPlist&quot;; done &amp;lt;&amp;lt;&amp;lt; &quot;$(/usr/bin/find /Library/LaunchDaemons /Library/LaunchAgents ~/Library/LaunchAgents /private/var/root/Library/LaunchAgents /private/var/root/Library/LaunchDaemons -name &quot;*.plist&quot;)&quot;; /usr/bin/defaults read com.apple.loginWindow LogoutHook; /usr/bin/defaults read com.apple.loginWindow LoginHook&apos;&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;gt;&lt;/span&gt; ~/Desktop/launch.txt
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;查看文件内容，&lt;/p&gt;

&lt;p&gt;查看相关路径，&lt;/p&gt;

&lt;p&gt;在对应文件夹路径下，删除对应文件名的&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;.plist&lt;/code&gt;文件，重启即可。&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://fastly.jsdelivr.net/gh/PhDLuffy/PicGo@master/img/202503152343369.png&quot; alt=&quot;相关文件路径&quot; /&gt;&lt;/p&gt;

</description>
        <pubDate>Sat, 15 Mar 2025 00:00:00 +0800</pubDate>
        <link>https://PhDLuffy.github.io/2025/03/15/macos-login-items-background-tasks/</link>
        <guid isPermaLink="true">https://PhDLuffy.github.io/2025/03/15/macos-login-items-background-tasks/</guid>
        
        <category>软件</category>
        
        
      </item>
    
      <item>
        <title>群晖DSM6.2.1-23824照片Moments智能相册bug修复</title>
        <description>&lt;p&gt;为了给群晖DSM增加一块nvme硬盘，把整个工作流都打乱了，折腾了好几天。&lt;/p&gt;

&lt;h2 id=&quot;群晖dsm的照片moments有两个bug&quot;&gt;群晖DSM的照片Moments有两个BUG&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;无法编解码封面(需要半洗白和更新ffmpeg)&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;无法AI人脸分析(替换AI库文件-libsynophoto-plugin-detection.so)&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;无法编解码封面&quot;&gt;无法编解码封面&lt;/h3&gt;

&lt;h4 id=&quot;半洗白&quot;&gt;半洗白&lt;/h4&gt;

&lt;p&gt;&lt;a href=&quot;https://cloud.tencent.com/developer/article/2080083&quot;&gt;群晖｜半洗白后moments正常显示人像、主题、预览「建议收藏」-腾讯云开发者社区-腾讯云&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;chipgenius软件查询U盘的vid和pid，这一步在制作群晖DSM引导U盘的时候，应该记下来了。&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://fastly.jsdelivr.net/gh/PhDLuffy/PicGo@master/img/202412262147362.png&quot; alt=&quot;vid和pid&quot; /&gt;&lt;/p&gt;

&lt;p&gt;修改grub.cfg，ssh连接群晖DSM，&lt;/p&gt;

&lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;nb&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;-i&lt;/span&gt;  //获取root权限
&lt;span class=&quot;nb&quot;&gt;mkdir&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;-p&lt;/span&gt; /tmp/boot  //在/tmp目录下创建一个临时目录，名字随意，如：boot
&lt;span class=&quot;nb&quot;&gt;cd&lt;/span&gt; /dev  //切换到dev目录
mount &lt;span class=&quot;nt&quot;&gt;-t&lt;/span&gt; vfat synoboot1 /tmp/boot/  //将synoboot1分区挂载到boot
&lt;span class=&quot;nb&quot;&gt;cd&lt;/span&gt; /tmp/boot/grub  //切换到grub目录
vim grub.cfg  //修改grub.cfg
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;将vid, pid填入下图红框中保存后退出，重启群晖&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://fastly.jsdelivr.net/gh/PhDLuffy/PicGo@master/img/202412262305581.png&quot; alt=&quot;grub修改&quot; /&gt;&lt;/p&gt;

&lt;h4 id=&quot;更新ffmpeg&quot;&gt;更新ffmpeg&lt;/h4&gt;

&lt;p&gt;群晖自带的ffmpeg太老旧了，是2.7.1，我们安装新的ffmpeg替代系统自带的版本&lt;/p&gt;

&lt;p&gt;订阅群晖第三方社区，套件-设置-添加-&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;http://packages.synocommunity.com&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://fastly.jsdelivr.net/gh/PhDLuffy/PicGo@master/img/202412262320916.jpg&quot; alt=&quot;群晖添加第三方社群套件源显示无效的位置解决方案-图片2&quot; /&gt;&lt;/p&gt;

&lt;table&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td&gt;[群晖添加第三方社群套件源显示无效的位置解决方案&lt;/td&gt;
      &lt;td&gt;若夜彼岸](https://www.ruoyer.com/dsm_crt.html)&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;

&lt;blockquote&gt;
  &lt;p&gt;需要更新下crt证书，否则会显示空白&lt;/p&gt;
&lt;/blockquote&gt;

&lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;nb&quot;&gt;sudo mv&lt;/span&gt; /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ca-certificates.crt.bak &lt;span class=&quot;o&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;sudo &lt;/span&gt;curl &lt;span class=&quot;nt&quot;&gt;-Lko&lt;/span&gt; /etc/ssl/certs/ca-certificates.crt https://curl.se/ca/cacert.pem
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;在社区套件中安装&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;ffmpeg&lt;/code&gt;，版本为4.3.2-38&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://fastly.jsdelivr.net/gh/PhDLuffy/PicGo@master/img/202412262321306.png&quot; alt=&quot;img&quot; /&gt;&lt;/p&gt;

&lt;p&gt;进入ssh，替换系统自身的ffmpeg，&lt;/p&gt;

&lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;nb&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;-i&lt;/span&gt;

&lt;span class=&quot;nb&quot;&gt;mv&lt;/span&gt; /usr/bin/ffmpeg /usr/bin/ffmpeg_bak

&lt;span class=&quot;nb&quot;&gt;cp&lt;/span&gt; /volume1/&lt;span class=&quot;se&quot;&gt;\@&lt;/span&gt;appstore/ffmpeg/bin/ffmpeg /usr/bin/

ffmpeg &lt;span class=&quot;nt&quot;&gt;-version&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;以上动作，完成了半洗白和更新ffmpeg，此时即可解决照片缩略图不显示的问题。&lt;/p&gt;

&lt;h3 id=&quot;无法ai人脸分析&quot;&gt;无法AI人脸分析&lt;/h3&gt;

&lt;p&gt;&lt;a href=&quot;https://post.smzdm.com/p/a6dpg25o/&quot;&gt;采坑无数，群晖NAS的相册备份最终解决方案！以及黑群晖6.2x版Moments智能相册补丁教程。_NAS存储_什么值得买&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://pan.baidu.com/s/1Eq4GUuHgTLdyFEmZmaYwSQ&quot;&gt;下载链接&lt;/a&gt;，提取码：2222&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://fastly.jsdelivr.net/gh/PhDLuffy/PicGo@master/img/202412262328809.jpg&quot; alt=&quot;采坑无数，群晖NAS的相册备份最终解决方案！以及黑群晖6.2x版Moments智能相册补丁教程。&quot; /&gt;&lt;/p&gt;

&lt;p&gt;WinSCP工具，root账号进入群晖根目录，&lt;/p&gt;

&lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;/var/packages/SynologyMoments/target/usr/lib/
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;将&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt; libsynophoto-plugin-detection.so&lt;/code&gt;原始文件添加&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;.bak&lt;/code&gt;备份，上传&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt; libsynophoto-plugin-detection.so&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;修改文件属性，组和拥有者都选&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;SynologyMoments&lt;/code&gt;，权限0755&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://fastly.jsdelivr.net/gh/PhDLuffy/PicGo@master/img/202412262330862.jpg&quot; alt=&quot;采坑无数，群晖NAS的相册备份最终解决方案！以及黑群晖6.2x版Moments智能相册补丁教程。&quot; /&gt;&lt;/p&gt;

&lt;h3 id=&quot;moments设置&quot;&gt;Moments设置&lt;/h3&gt;

&lt;p&gt;进入Moments，&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;

</description>
        <pubDate>Thu, 26 Dec 2024 00:00:00 +0800</pubDate>
        <link>https://PhDLuffy.github.io/2024/12/26/synology-dsm-moments-face/</link>
        <guid isPermaLink="true">https://PhDLuffy.github.io/2024/12/26/synology-dsm-moments-face/</guid>
        
        <category>软件</category>
        
        
      </item>
    
      <item>
        <title>Node-RED利用Trigger和Change来规避自循环问题</title>
        <description>&lt;p&gt;小米开源了米家和Home-assistant的联动，喜大普奔。&lt;/p&gt;

&lt;p&gt;于是重新将所有的米家设备通过小米官方添加进了HA，但是小爱音箱pro竟然不能用自定义tts了，所以又重新用Miot单独把小米音箱Pro加进HA。&lt;/p&gt;

&lt;p&gt;重新搞Node-RED的时候，发现之前没搞好的感应灯看论坛有解决办法。&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;利用Trigger，向flow流后面的Change发送值，比如先发射0，然后等待10s，再发送1&lt;/p&gt;

&lt;p&gt;Change用于存储这个值为全局变量&lt;/p&gt;

&lt;p&gt;然后在监控后方，加一个switch，默认向后传走整个流程的为&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;1&lt;/code&gt;路，不向后走为0路&lt;/p&gt;

&lt;p&gt;这样就可以达到忽略灯灭之后紧接着的那段时间的运动监测。&lt;/p&gt;

&lt;p&gt;监测到有人，灯亮，灯延时5分钟，灯灭，灯灭的同时，Trigger传0给全局变量Change&lt;/p&gt;

&lt;p&gt;与此同时，监控由于亮度变化，再次监测到有人，走到其后Switch跳到0不向后走流程&lt;/p&gt;

&lt;p&gt;等待10s，Trigger又传1给全局变量Change，&lt;/p&gt;

&lt;p&gt;等待下次监控监测到有人的时候，走到其后Switch跳到1走后面的全部流程。&lt;/p&gt;

&lt;p&gt;以上。&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://fastly.jsdelivr.net/gh/PhDLuffy/PicGo@master/img/202412222303045.png&quot; alt=&quot;Node-RED流程图&quot; /&gt;&lt;/p&gt;
</description>
        <pubDate>Sun, 22 Dec 2024 00:00:00 +0800</pubDate>
        <link>https://PhDLuffy.github.io/2024/12/22/home-assistant-node-red-trigger-change/</link>
        <guid isPermaLink="true">https://PhDLuffy.github.io/2024/12/22/home-assistant-node-red-trigger-change/</guid>
        
        <category>日常</category>
        
        
      </item>
    
      <item>
        <title>制作Kindle书籍锁屏封面</title>
        <description>&lt;h2 id=&quot;ps安装制作书籍封面的动作&quot;&gt;PS安装制作书籍封面的&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;动作&lt;/code&gt;&lt;/h2&gt;

&lt;p&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;自动制作屏保（1448x1072）v1.0.atn&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;“动作”文件的具体用法如下：&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;打开 Photoshop 软件（推荐较新的版本），依次点击菜单“&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;窗口 -&amp;gt; 动作&lt;/code&gt;”调出“动作”窗口；&lt;/li&gt;
  &lt;li&gt;点击打开“动作”窗口右上角的菜单（三道杠），点“载入动作…”，选择下载的“动作”文件导入；&lt;/li&gt;
  &lt;li&gt;如下图所示，你可以看到两种处理素材图片的方式“直接处理素材图片”和“旋转处理素材图片”；&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;img src=&quot;https://fastly.jsdelivr.net/gh/PhDLuffy/PicGo@master/img/202411021141712.png&quot; alt=&quot;photoshop-action&quot; /&gt;&lt;/p&gt;

&lt;p&gt;选中“直接处理素材图片”这个动作，点击“动作”窗口下方的三角播放按钮，会提示你打开一个图片，选择需要处理的图片后，会自动进入裁剪界面，在这里你可以手动调整构图，调整完毕后双击（或按回车键），会弹出一个存储界面，点击【存储…】按钮即可保存制作好的屏保图片。&lt;/p&gt;

&lt;p&gt;“旋转处理素材图片”多出一个旋转图片的动作，比如你想把某张横向的素材图片制作成横向的屏保图片，就可以选择这个动作。除此外和“直接处理素材图片”的处理过程是一模一样的。&lt;/p&gt;

&lt;p&gt;就这样，只需要点一下就可以按照动作的指引生成标准的 Kindle 屏保图片了。&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;这个动作是用于制作Kindle的屏保图片的，但是我们制作的书籍封面还需要在Calibre中展示，所以就要取消掉黑白图片这个步骤&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;取消勾选&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;通用&lt;/code&gt;这一栏即可取消&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;黑白图片&lt;/code&gt;这个操作，制作的书籍封面依然是彩色&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://fastly.jsdelivr.net/gh/PhDLuffy/PicGo@master/img/202411021144179.png&quot; alt=&quot;image-20241102114415148&quot; /&gt;&lt;/p&gt;

&lt;h2 id=&quot;导入calibre书库中&quot;&gt;导入Calibre书库中&lt;/h2&gt;

&lt;p&gt;右键-编辑元数据-逐个编辑元数据&lt;/p&gt;

&lt;p&gt;将制作好的书籍封面拖到原书籍封面替换即可&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://fastly.jsdelivr.net/gh/PhDLuffy/PicGo@master/img/202411021145654.png&quot; alt=&quot;image-20241102114545639&quot; /&gt;&lt;/p&gt;
</description>
        <pubDate>Sat, 02 Nov 2024 00:00:00 +0800</pubDate>
        <link>https://PhDLuffy.github.io/2024/11/02/kindle-calibre-bookcover-lockscreen/</link>
        <guid isPermaLink="true">https://PhDLuffy.github.io/2024/11/02/kindle-calibre-bookcover-lockscreen/</guid>
        
        <category>软件</category>
        
        
      </item>
    
      <item>
        <title>关闭Windows鸡肋般的Windows defender</title>
        <description>&lt;h2 id=&quot;windows设置&quot;&gt;windows设置&lt;/h2&gt;

&lt;p&gt;win-设置-windows安全中心-病毒和威胁防护设置&lt;/p&gt;

&lt;p&gt;关闭实时保护，云提供的保护，自动提交样本，篡改防护，共4项。&lt;/p&gt;

&lt;h2 id=&quot;下载关闭defender软件&quot;&gt;下载关闭defender软件&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://www.sordum.org/9480/defender-control-v2-1/&quot;&gt;Defender Control v2.1&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;解压密码：sordum&lt;/p&gt;

&lt;p&gt;解压，将文件夹放到随便一个位置，右键运行&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;dControl.exe&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;第一次运行，将Defender congtrol加入到排除列表，避免被windows误伤&lt;/p&gt;

&lt;p&gt;然后点击&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Disable Windows Defender&lt;/code&gt;，即可关闭垃圾Windows Defender&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://fastly.jsdelivr.net/gh/PhDLuffy/PicGo@master/img/202409062025385.png&quot; alt=&quot;Defender control menu&quot; /&gt;&lt;/p&gt;

&lt;h2 id=&quot;后果&quot;&gt;后果&lt;/h2&gt;

&lt;h3 id=&quot;优点&quot;&gt;优点：&lt;/h3&gt;

&lt;p&gt;电脑终于不会在后台疯狂转风扇了，之前CPU经常长时间80度20%负载占用运行&lt;/p&gt;

&lt;h3 id=&quot;缺点&quot;&gt;缺点：&lt;/h3&gt;

&lt;p&gt;电脑将裸奔，毫无防护，要么下第三方杀毒防护软件，要么就不要随便安装不明软件，裸奔感觉其实也还行吧。&lt;/p&gt;

&lt;p&gt;以上。&lt;/p&gt;
</description>
        <pubDate>Fri, 06 Sep 2024 00:00:00 +0800</pubDate>
        <link>https://PhDLuffy.github.io/2024/09/06/windows-defender-Defender-Control/</link>
        <guid isPermaLink="true">https://PhDLuffy.github.io/2024/09/06/windows-defender-Defender-Control/</guid>
        
        <category>软件</category>
        
        
      </item>
    
      <item>
        <title>回忆往昔，好久没用邮件推送书到Kindle了</title>
        <description>&lt;h2 id=&quot;前记&quot;&gt;前记&lt;/h2&gt;

&lt;p&gt;心血来潮，登录亚马逊看了下，最近一次推送更新竟然都是2年前了，犹记得当时疯狂看书，推书，推漫画，可谓是把Kindle用到了极致。&lt;/p&gt;

&lt;p&gt;后来Kindle退出了国内市场，我又用上了Calibre的本地推送管理，随大流把Kindle邮箱推送这一功能给抛弃了。&lt;/p&gt;

&lt;p&gt;但是，我他喵的是美区账号啊，&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;.com&lt;/code&gt;结尾的，跟国内&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;.cn&lt;/code&gt;结尾的没半毛钱影响啊。&lt;/p&gt;

&lt;p&gt;想到如此，甚是可笑了，所以重新拾起来，用邮箱推一推也更省事不是？&lt;/p&gt;

&lt;h2 id=&quot;亚马逊kindle官网设置&quot;&gt;亚马逊Kindle官网设置&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://www.amazon.com/hz/mycd/myx#/home/settings/payment&quot;&gt;Amazon.com： 管理您的內容和裝置&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;第一件事，先去亚马逊官网，Kindle的偏好设置，&lt;/p&gt;

&lt;p&gt;【传输至Kindle的邮箱】，是Kindle接收书籍的邮箱，跟Kindle以及Kindle的APP一致，美区是&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;@kindle.com&lt;/code&gt;结尾&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;@kindle.cn&lt;/code&gt;结尾的是国区账号，已经被废掉了&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;【许可的个人文件电子邮箱】，是发送图书到Kindle的邮箱，是自己的邮箱或者其他网站的推送邮箱。&lt;/p&gt;

&lt;p&gt;比如vol.moe漫画网站的推送邮箱等，这里相当于一个白名单，只有白名单里面的邮箱，亚马逊服务器才会接收邮箱文件。&lt;/p&gt;

&lt;h2 id=&quot;calibre设置&quot;&gt;Calibre设置&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://bookfere.com/post/11.html&quot;&gt;Calibre 使用教程之通过邮箱一键推送 Kindle 电子书 – 书伴&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;下载Calibre自不必多说&lt;/p&gt;

&lt;p&gt;首选项-通过邮件分享&lt;/p&gt;

&lt;p&gt;添加【传输至Kindle的邮箱】，也就是自己的Kindle邮箱账号，&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;@kindle.com&lt;/code&gt;结尾的。&lt;/p&gt;

&lt;p&gt;文件格式选择&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;EPUB&lt;/code&gt;就行&lt;/p&gt;

&lt;p&gt;发件人地址：发送图书的邮箱，自己的或者网站的&lt;/p&gt;

&lt;p&gt;邮箱设置网页上有具体参数，QQ邮箱如图&lt;/p&gt;

&lt;h3 id=&quot;测试发送邮件&quot;&gt;测试发送邮件&lt;/h3&gt;

&lt;p&gt;全部设置完毕后点击右下角的“测试邮件发送”按钮，会出现“该操作会在屏幕上明文显示你的电子邮件地址密码。要继续吗？”的提示，点击“是”会弹出一个测试对话框，点击“测试”按钮，如果显示框出现“邮件已发出”即表示设置成功，否则请检查设置重试。点击“确定”按钮退出该对话框。点击左上角的“应用”按钮保存刚才的设置，结束设置。&lt;/p&gt;

&lt;p&gt;* 测试邮件发出后不久，亚马逊Kindle客服的自动回复系统会向你的推送邮箱发送一封主题为“你发送至Kindle的邮件未附任何文件附件”的提示邮件，请忽略。&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://fastly.jsdelivr.net/gh/PhDLuffy/PicGo@master/img/202409040108530.png&quot; alt=&quot;Calibre邮箱分享设置&quot; /&gt;&lt;/p&gt;

&lt;h3 id=&quot;一键推送图书&quot;&gt;一键推送图书&lt;/h3&gt;

&lt;p&gt;右键图书，连接/共享，右键发给&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;XXX@kindle.com&lt;/code&gt;邮箱。&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://fastly.jsdelivr.net/gh/PhDLuffy/PicGo@master/img/202409040111962.png&quot; alt=&quot;image-20240904011136934&quot; /&gt;&lt;/p&gt;

&lt;p&gt;以上完成。&lt;/p&gt;
</description>
        <pubDate>Wed, 04 Sep 2024 00:00:00 +0800</pubDate>
        <link>https://PhDLuffy.github.io/2024/09/04/kindle-calibre-mail/</link>
        <guid isPermaLink="true">https://PhDLuffy.github.io/2024/09/04/kindle-calibre-mail/</guid>
        
        <category>软件</category>
        
        
      </item>
    
      <item>
        <title>Ollama终于用上我的显卡坞老古董RX580了</title>
        <description>&lt;p&gt;项目地址：&lt;a href=&quot;https://github.com/likelovewant/ollama-for-amd&quot;&gt;likelovewant/ollama-for-amd&lt;/a&gt;&lt;/p&gt;

&lt;h2 id=&quot;软件准备&quot;&gt;软件准备：&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/likelovewant/ollama-for-amd/wiki&quot;&gt;ROCm Support&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;下载RX580的pre-built ROCm libraries：&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/likelovewant/ROCmLibs-for-gfx1103-AMD780M-APU/releases/tag/v0.5.7&quot;&gt;RX580下载gfx803的rocblas&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;下载文件：&lt;a href=&quot;https://github.com/likelovewant/ROCmLibs-for-gfx1103-AMD780M-APU/releases/download/v0.5.7/rocblas.for.gfx803.override.with.vega10.7z&quot;&gt;rocblas.for.gfx803.override.with.vega10.7z&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Ollama-for-amd&lt;/p&gt;

&lt;p&gt;下载文件：&lt;a href=&quot;https://github.com/likelovewant/ollama-for-amd/releases/tag/v0.3.2&quot;&gt;0.3.2版本&lt;/a&gt;&lt;/p&gt;

&lt;h2 id=&quot;安装&quot;&gt;安装：&lt;/h2&gt;

&lt;p&gt;Windows下右键管理员安装Ollama-for-amd&lt;/p&gt;

&lt;p&gt;安装完成之后，解压rocblas.for.gfx803，&lt;/p&gt;

&lt;p&gt;找到Win下Ollama软件位置&lt;/p&gt;

&lt;p&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;C:\Users\usrname\AppData\Local\Programs\Ollama\rocm&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;替换rocblas.dll文件，替换library文件夹。&lt;/p&gt;

&lt;h2 id=&quot;局域网设置&quot;&gt;局域网设置：&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://blog.csdn.net/weixin_45131680/article/details/138520336&quot;&gt;在 Windows 上使用 Ollama 配置本地及外网访问_ollama3 能联网么-CSDN博客&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Windows+R&lt;/code&gt;快捷键打开[运行]对话框，输入命令：&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;sysdm.cpl&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;系统属性-&amp;gt;环境变量-&amp;gt;用户变量，新增变量&lt;/p&gt;

&lt;p&gt;变量名：OLLAMA_HOST&lt;/p&gt;

&lt;p&gt;变量值：&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;:11434&lt;/code&gt;&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;记得11434前面有个&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;:&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;重启Ollama，局域网网页打开&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;ip:11434&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;如果成功，会显示&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Ollama is running&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;以上。&lt;/p&gt;
</description>
        <pubDate>Thu, 08 Aug 2024 00:00:00 +0800</pubDate>
        <link>https://PhDLuffy.github.io/2024/08/08/ollama-rx580-egpu-amd/</link>
        <guid isPermaLink="true">https://PhDLuffy.github.io/2024/08/08/ollama-rx580-egpu-amd/</guid>
        
        <category>软件</category>
        
        
      </item>
    
      <item>
        <title>跑步之前写点关于歌的吧</title>
        <description>&lt;p&gt;&lt;a href=&quot;https://github.com/taurusxin/ncmdump&quot;&gt;转换网易云音乐&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Mac下安装&lt;/p&gt;

&lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;brew &lt;span class=&quot;nb&quot;&gt;install &lt;/span&gt;ncmdump
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;网易云音乐下载歌曲→在finder中显示&lt;/p&gt;

&lt;p&gt;转换命令&lt;/p&gt;

&lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;ncmdump file-path
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;同文件夹下生成320k的mp3&lt;/p&gt;

&lt;p&gt;以上。&lt;/p&gt;
</description>
        <pubDate>Mon, 05 Aug 2024 00:00:00 +0800</pubDate>
        <link>https://PhDLuffy.github.io/2024/08/05/neteasemusic-ncm-mp3-applemusic/</link>
        <guid isPermaLink="true">https://PhDLuffy.github.io/2024/08/05/neteasemusic-ncm-mp3-applemusic/</guid>
        
        <category>软件</category>
        
        
      </item>
    
      <item>
        <title>Zotero7的QuickLook失效了怎么办？</title>
        <description>&lt;p&gt;Zotero版本号: 7.0.0-beta.51+7c5600913&lt;/p&gt;

&lt;p&gt;Actions and Tags for Zotero版本号: 1.0.0-beta.33&lt;/p&gt;

&lt;p&gt;首选项→Actions &amp;amp; Tags→添加Actions&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://fastly.jsdelivr.net/gh/PhDLuffy/PicGo@master/img/202406122222774.png&quot; alt=&quot;设置界面&quot; /&gt;&lt;/p&gt;

&lt;p&gt;数据(脚本)：&lt;/p&gt;

&lt;div class=&quot;language-json highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;err&quot;&gt;const&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;ZoteroPane&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;require(&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;ZoteroPane&quot;&lt;/span&gt;&lt;span class=&quot;err&quot;&gt;);&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
&lt;/span&gt;&lt;span class=&quot;err&quot;&gt;const&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;Zotero_Tabs&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;require(&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;Zotero_Tabs&quot;&lt;/span&gt;&lt;span class=&quot;err&quot;&gt;);&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
&lt;/span&gt;&lt;span class=&quot;err&quot;&gt;const&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;document&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;require(&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;document&quot;&lt;/span&gt;&lt;span class=&quot;err&quot;&gt;);&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;

&lt;/span&gt;&lt;span class=&quot;err&quot;&gt;var&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;lastItem&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;&quot;&lt;/span&gt;&lt;span class=&quot;err&quot;&gt;;&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;

&lt;/span&gt;&lt;span class=&quot;err&quot;&gt;async&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;function&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;getAttachmentPath(item)&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
    &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;if&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;(item.isAttachment()&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;!item.isNote())&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
        &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;return&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;await&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;item.getFilePathAsync();&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
    &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
    &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;else&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;if&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;(item.isRegularItem()&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;!item.isAttachment())&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
        &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;attachments&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;await&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;item.getAttachments();&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
        &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;for&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;(let&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;attachmentID&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;of&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;attachments)&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
            &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;attachment&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;await&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;Zotero.Items.getAsync(attachmentID);&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
			&lt;/span&gt;&lt;span class=&quot;err&quot;&gt;return&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;await&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;attachment.getFilePathAsync();&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
        &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
    &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
    &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;return&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;kc&quot;&gt;null&lt;/span&gt;&lt;span class=&quot;err&quot;&gt;;&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;

&lt;/span&gt;&lt;span class=&quot;err&quot;&gt;async&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;function&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;openFile(item)&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
    &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;filePath&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;await&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;getAttachmentPath(item);&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
    &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;if&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;(!filePath)&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
        &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;return&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;kc&quot;&gt;false&lt;/span&gt;&lt;span class=&quot;err&quot;&gt;;&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
    &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
    &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;//&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;macbook&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;path&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;-p&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;/usr/bin/qlmanage&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
    &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;//&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;linux&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;path&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;/usr/bin/sushi&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
    &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;applicationPath&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;/usr/bin/qlmanage&quot;&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
	&lt;/span&gt;&lt;span class=&quot;err&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;args&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;err&quot;&gt;&apos;-p&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;filePath&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
	&lt;/span&gt;&lt;span class=&quot;err&quot;&gt;Zotero.Utilities.Internal.exec(applicationPath&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;args);&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;

&lt;/span&gt;&lt;span class=&quot;err&quot;&gt;async&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;function&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;oneKey(event)&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
	&lt;/span&gt;&lt;span class=&quot;err&quot;&gt;var&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;key&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;String.fromCharCode(event.which);&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
	&lt;/span&gt;&lt;span class=&quot;err&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;newItem&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;ZoteroPane.getSelectedItems()&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;err&quot;&gt;;&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
        &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;if&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;(Zotero_Tabs.selectedID&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;===&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;zotero-pane&quot;&lt;/span&gt;&lt;span class=&quot;err&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
            &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;if&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;((key&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;==&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;&apos;&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;&apos;&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;!(event.ctrlKey&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;||&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;event.altKey&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;||&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;event.metaKey))&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;||&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;(key&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;==&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;&apos;y&apos;&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;event.metaKey&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;!(event.ctrlKey&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;||&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;event.altKey)))&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
                &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;if(newItem)&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
                    &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;lastItem&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;newItem;&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
                    &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;return&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;await&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;openFile(newItem);&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
                &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
                &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;else&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
                    &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;return&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;await&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;openFile(lastItem);&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
                &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
            &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
        &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;

&lt;/span&gt;&lt;span class=&quot;err&quot;&gt;document.getElementById(&apos;zotero-items-tree&apos;).addEventListener(&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;keydown&quot;&lt;/span&gt;&lt;span class=&quot;err&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;oneKey,&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;kc&quot;&gt;false&lt;/span&gt;&lt;span class=&quot;err&quot;&gt;);&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;确定，给与数据权限，重启Zotero，&lt;/p&gt;

&lt;p&gt;以上。&lt;/p&gt;
</description>
        <pubDate>Wed, 12 Jun 2024 00:00:00 +0800</pubDate>
        <link>https://PhDLuffy.github.io/2024/06/12/zotero-quicklook-mac-actions-tags/</link>
        <guid isPermaLink="true">https://PhDLuffy.github.io/2024/06/12/zotero-quicklook-mac-actions-tags/</guid>
        
        <category>软件</category>
        
        
      </item>
    
      <item>
        <title>frp的后备选择zerotier(更新)</title>
        <description>&lt;p&gt;参考链接：&lt;a href=&quot;https://github.com/Jonnyan404/zerotier-planet/issues/11#issuecomment-1059961262&quot;&gt;搭建私有的planet-github&lt;/a&gt;&lt;/p&gt;

&lt;table&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td&gt;前置操作：[[2023-08-13-zerotier-planet-docker&lt;/td&gt;
      &lt;td&gt;vps安装docker, docker-compose]]&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;

&lt;h3 id=&quot;下载&quot;&gt;下载&lt;/h3&gt;

&lt;p&gt;建立docker文件夹,&lt;/p&gt;

&lt;p&gt;在docker文件夹下操作以下代码&lt;/p&gt;

&lt;div class=&quot;language-json highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;err&quot;&gt;git&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;clone&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;https://github.com/Jonnyan&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;404&lt;/span&gt;&lt;span class=&quot;err&quot;&gt;/zerotier-planet&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
&lt;/span&gt;&lt;span class=&quot;err&quot;&gt;cd&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;zerotier-planet&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
&lt;/span&gt;&lt;span class=&quot;err&quot;&gt;vim&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;docker-compose.yml&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h3 id=&quot;修改&quot;&gt;修改&lt;/h3&gt;

&lt;p&gt;编辑docker-compose文件&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;修改MYADDR为自己vps服务器ip，&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;修改ZTNCUI_PASSWD网页管理密码&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;
```json
### date:2021年11月29日
### author: www.mrdoc.fun | jonnyan404
### 转载请保留来源
### update：2022年08月14日
version: &apos;2.0&apos;
services:
    ztncui:
        container_name: ztncui
        restart: always
        environment:
            - MYADDR=xxx.xxx.xxx.xxx #改成自己的服务器公网IP
            - HTTP_PORT=4000
            - HTTP_ALL_INTERFACES=yes
            - ZTNCUI_PASSWD=web管理登录密码
        ports:
            - &apos;4000:4000&apos; # web控制台入口
            - &apos;9993:9993&apos;
            - &apos;9993:9993/udp&apos;
        volumes:
            - &apos;./zerotier-one:/var/lib/zerotier-one&apos;
            - &apos;./ztncui/etc:/opt/key-networks/ztncui/etc&apos;
            # 按实际路径挂载卷， 冒号前面是宿主机的， 支持相对路径
        image: keynetworks/ztncui

&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h3 id=&quot;运行&quot;&gt;运行&lt;/h3&gt;

&lt;div class=&quot;language-json highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;err&quot;&gt;docker-compose&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;up&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;-d&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;

&lt;/span&gt;&lt;span class=&quot;err&quot;&gt;docker&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;images&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;#　查看镜像&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
&lt;/span&gt;&lt;span class=&quot;err&quot;&gt;docker&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;container&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;ps&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;-a&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;#&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;查看容器&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;

&lt;/span&gt;&lt;span class=&quot;err&quot;&gt;docker&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;exec&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;-it&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;ztncui&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;bash&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;#&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;进入容器&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
&lt;/span&gt;&lt;span class=&quot;err&quot;&gt;#&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;在容器内操作&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
&lt;/span&gt;&lt;span class=&quot;err&quot;&gt;cd&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;/var/lib/zerotier-one&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
&lt;/span&gt;&lt;span class=&quot;err&quot;&gt;ls&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;-l&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
&lt;/span&gt;&lt;span class=&quot;err&quot;&gt;#&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;生成moon配置文件&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
&lt;/span&gt;&lt;span class=&quot;err&quot;&gt;zerotier-idtool&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;initmoon&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;identity.public&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;moon.json&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
&lt;/span&gt;&lt;span class=&quot;err&quot;&gt;chmod&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;777&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;moon.json&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h3 id=&quot;自定义planet&quot;&gt;自定义planet&lt;/h3&gt;

&lt;p&gt;新建一个terminal, 在&lt;strong&gt;容器外&lt;/strong&gt;修改&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;moon.json&lt;/code&gt;, 位置对应挂载位置&lt;/p&gt;

&lt;p&gt;修改&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;stableEndpoints&lt;/code&gt;, 注意格式和实际公网ip&lt;/p&gt;

&lt;div class=&quot;language-json highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
 &lt;/span&gt;&lt;span class=&quot;nl&quot;&gt;&quot;id&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;b72b5e9e1a&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
 &lt;/span&gt;&lt;span class=&quot;nl&quot;&gt;&quot;objtype&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;world&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
 &lt;/span&gt;&lt;span class=&quot;nl&quot;&gt;&quot;roots&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
  &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
   &lt;/span&gt;&lt;span class=&quot;nl&quot;&gt;&quot;identity&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;b72b5e9e1a:0:a892e51d2ef94ef941e4c499af01fbc2903f7ad2fd53e9370f9ac6260c2f5d2484fd90756bec0c410675a81b7cf61d2bb885783bd6a8c28bce83bcab5f03fe14&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
   &lt;/span&gt;&lt;span class=&quot;nl&quot;&gt;&quot;stableEndpoints&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;127.0.0.1/9993&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;   &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;###&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;修改这一行后面ip及端口，ip为vps的ip，端口号为&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;9993&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
  &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
 &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;],&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
 &lt;/span&gt;&lt;span class=&quot;nl&quot;&gt;&quot;signingKey&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;45f0613e569a0549c74293c39b30495b594a003534290e8ade9ef82877aa7505d7a73eeabfc22c97c404e4caaf9f3c9eed2b134d696935c966e28f523364f15f&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
 &lt;/span&gt;&lt;span class=&quot;nl&quot;&gt;&quot;signingKey_SECRET&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;cc6afd67e7b7f84a92e2c8d3c2e7212c71e2ad0a4f5b3c03bf60ab1cd3b99281b57d9a2958d2bd8fc2bc77fdf2a1160099c2c61d3d9acc8cb311673ee120b4a6&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
 &lt;/span&gt;&lt;span class=&quot;nl&quot;&gt;&quot;updatesMustBeSignedBy&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;45f0613e569a0549c74293c39b30495b594a003534290e8ade9ef82877aa7505d7a73eeabfc22c97c404e4caaf9f3c9eed2b134d696935c966e28f523364f15f&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
 &lt;/span&gt;&lt;span class=&quot;nl&quot;&gt;&quot;worldType&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;moon&quot;&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;在&lt;strong&gt;容器内&lt;/strong&gt;生成moon文件, 此命令在docker容器内运行&lt;/p&gt;

&lt;div class=&quot;language-json highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;err&quot;&gt;zerotier-idtool&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;genmoon&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;moon.json&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
&lt;/span&gt;&lt;span class=&quot;err&quot;&gt;mkdir&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;moons.d&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
&lt;/span&gt;&lt;span class=&quot;err&quot;&gt;cp&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;*.moon&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;moons.d/&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;在&lt;strong&gt;容器外&lt;/strong&gt;生成planet文件&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;拷贝一份moon文件， 客户端可以用到，可在vps的挂载对应此容器的文件夹拷贝moon文件，为一串数字.moon文件。&lt;/li&gt;
  &lt;li&gt;下载&lt;a href=&quot;https://github.com/kaaass/ZeroTierOne/releases/tag/mkmoonworld-1.0&quot;&gt;mkmoonworld&lt;/a&gt;, 拷贝moon.json， 放在一个目录下&lt;/li&gt;
&lt;/ul&gt;

&lt;div class=&quot;language-json highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;err&quot;&gt;./mkmoonworld-x&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;86&lt;/span&gt;&lt;span class=&quot;err&quot;&gt;_&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;64&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;./moon.json&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
&lt;/span&gt;&lt;span class=&quot;err&quot;&gt;mv&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;world.bin&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;planet&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-json highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;err&quot;&gt;#&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;复制到容器内&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
&lt;/span&gt;&lt;span class=&quot;err&quot;&gt;docker&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;cp&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;./planet&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;ztncui:/var/lib/zerotier-one&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;重启容器&lt;/p&gt;

&lt;div class=&quot;language-json highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;err&quot;&gt;docker&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;restart&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;ztncui&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
&lt;/span&gt;&lt;span class=&quot;err&quot;&gt;docker&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;exec&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;-it&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;ztncui&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;bash&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;#&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;进入容器&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
&lt;/span&gt;&lt;span class=&quot;err&quot;&gt;#&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;在容器内操作&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
&lt;/span&gt;&lt;span class=&quot;err&quot;&gt;cd&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;/var/lib/zerotier-one&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
&lt;/span&gt;&lt;span class=&quot;err&quot;&gt;#　查看ｍoon&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
&lt;/span&gt;&lt;span class=&quot;err&quot;&gt;zerotier-cli&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;listmoons&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;访问&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;ip+端口&lt;/code&gt;对应的设置页面&lt;/p&gt;

&lt;p&gt;替换客户端的planet文件并重启服务， 再加入网络， 在网页端授权&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;客户端需要同时替换planet文件和moon文件&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;以上。&lt;/p&gt;
</description>
        <pubDate>Sat, 07 Oct 2023 00:00:00 +0800</pubDate>
        <link>https://PhDLuffy.github.io/2023/10/07/zerotier-planet-docker/</link>
        <guid isPermaLink="true">https://PhDLuffy.github.io/2023/10/07/zerotier-planet-docker/</guid>
        
        <category>软件</category>
        
        
      </item>
    
  </channel>
</rss>
