<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>Nachtzug</title>
  
  <subtitle>「夜行列車」</subtitle>
  <link href="https://nachtzug.xyz/atom.xml" rel="self"/>
  
  <link href="https://nachtzug.xyz/"/>
  <updated>2026-04-24T05:48:01.404Z</updated>
  <id>https://nachtzug.xyz/</id>
  
  <author>
    <name>静流</name>
    
  </author>
  
  <generator uri="https://hexo.io/">Hexo</generator>
  
  <entry>
    <title>在AI辅助下很快把几乎忘记的小vps捡起来了</title>
    <link href="https://nachtzug.xyz/2026/04/24/2026-april-update/"/>
    <id>https://nachtzug.xyz/2026/04/24/2026-april-update/</id>
    <published>2026-04-24T05:37:30.000Z</published>
    <updated>2026-04-24T05:48:01.404Z</updated>
    
    <content type="html"><![CDATA[<h2 id="简介">简介</h2><ul><li><p>问了大模型Nginx Proxy Manager怎么配置</p></li><li><p>问了二级域名怎么往vps上挂，能用来做什么，考虑后面新建一些站点，作为以后的实用型页面或者纯粹没用的小玩意</p></li></ul><p>AI可真好用啊</p><p>四月虽然也很忙，不过最近终于重新登录，把FGO第一部打完了，建号十年只玩了这么一点，上去一看感觉熟悉又陌生。</p><p>如果不是因为新手机空间够大、够折腾，我是不会折磨自己玩手机游戏的。</p><h2 id="第一阶段部署nginx-proxy-manager反向代理">第一阶段：部署NginxProxy Manager（反向代理）</h2><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">mkdir</span> -p ~/npm &amp;&amp; <span class="built_in">cd</span> ~/npm</span><br><span class="line">vim docker-compose.yml          <span class="comment"># 编写NPM的compose 文件</span></span><br><span class="line">docker-compose up -d            <span class="comment"># 启动NPM（暴露80/443/81）</span></span><br></pre></td></tr></table></figure><figure class="highlight yaml"><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><span class="line"><span class="comment"># docker-compose.yml</span></span><br><span class="line"><span class="attr">version:</span> <span class="string">&#x27;#&#x27;</span></span><br><span class="line"><span class="attr">services:</span></span><br><span class="line">  <span class="attr">app:</span></span><br><span class="line">    <span class="attr">image:</span> <span class="string">&#x27;jc21/nginx-proxy-manager:latest&#x27;</span></span><br><span class="line">    <span class="attr">container_name:</span> <span class="string">nginx-proxy-manager</span></span><br><span class="line">    <span class="attr">restart:</span> <span class="string">always</span></span><br><span class="line">    <span class="attr">ports:</span></span><br><span class="line">      <span class="bullet">-</span> <span class="string">&#x27;80:80&#x27;</span>   <span class="comment"># HTTP流量</span></span><br><span class="line">      <span class="bullet">-</span> <span class="string">&#x27;81:81&#x27;</span>   <span class="comment"># 管理后台流量</span></span><br><span class="line">      <span class="bullet">-</span> <span class="string">&#x27;443:443&#x27;</span> <span class="comment"># HTTPS流量</span></span><br><span class="line">    <span class="attr">volumes:</span></span><br><span class="line">      <span class="bullet">-</span> <span class="string">./data:/data</span></span><br><span class="line">      <span class="bullet">-</span> <span class="string">./letsencrypt:/etc/letsencrypt</span></span><br></pre></td></tr></table></figure><p><strong>作用</strong>：NPM作为<code>统一入口</code>,占用服务器的80/443端口,负责SSL证书申请+域名分发。</p><h2 id="第二阶段准备任意站点文件">第二阶段：准备任意站点文件</h2><p><code>projectname</code>改为任意需要的二级域名</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">sudo</span> <span class="built_in">mkdir</span> -p /opt/projectname</span><br><span class="line"><span class="built_in">sudo</span> vim /opt/projectname/index.html    <span class="comment">#写入静态页面</span></span><br></pre></td></tr></table></figure><p><strong>作用</strong>：站点文件放在宿主机,方便直接修改。</p><h2id="第三阶段启动projectname容器第一次失败">第三阶段：启动projectname容器(第一次,失败)</h2><figure class="highlight bash"><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></pre></td><td class="code"><pre><span class="line">docker run -d \</span><br><span class="line">  --name projectname \</span><br><span class="line">  --restart unless-stopped \</span><br><span class="line">  -p 127.0.0.1:8081:80 \</span><br><span class="line">  -v /opt/projectname:/usr/share/nginx/html:ro \</span><br><span class="line">  nginx:alpine</span><br></pre></td></tr></table></figure><p><strong>问题</strong>：projectname容器用了<code>-p 127.0.0.1:8081:80</code>,但NPM也在容器里。<strong>容器访问宿主机127.0.0.1 不是宿主机本身</strong>，导致NPM无法通过<code>127.0.0.1:8081</code>找到projectname。</p><h2id="第三阶段重复关键修复-加入同一docker网络">第三阶段（重复）：关键修复—— 加入同一Docker网络</h2><figure class="highlight bash"><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><span class="line"><span class="comment"># 先查NPM在哪个网络</span></span><br><span class="line">docker inspect nginx-proxy-manager \</span><br><span class="line">  --format <span class="string">&#x27;&#123;&#123;range $k,$v := .NetworkSettings.Networks&#125;&#125;&#123;&#123;$k&#125;&#125;&#123;&#123;end&#125;&#125;&#x27;</span></span><br><span class="line"></span><br><span class="line"><span class="comment"># 输出：npm_default</span></span><br><span class="line"></span><br><span class="line">docker <span class="built_in">rm</span> -f projectname</span><br><span class="line"></span><br><span class="line">docker run -d \</span><br><span class="line">  --name projectname \</span><br><span class="line">  --restart unless-stopped \</span><br><span class="line">  --network npm_default \</span><br><span class="line">  -v /opt/projectname:/usr/share/nginx/html:ro \</span><br><span class="line">  nginx:alpine</span><br></pre></td></tr></table></figure><p><strong>核心点</strong>: -<strong>去掉<code>-p</code>端口映射</strong>（外部根本不需要直接访问projectname）-<strong>加上<code>--network npm_default</code></strong>，让projectname和NPM在同一个Docker网络里-两个容器可以通过<strong>容器名直接通信</strong>（<code>http://projectname</code>）</p><h2 id="第四阶段域名解析">第四阶段：域名解析</h2><p>登录域名解析管理 → <strong>Networking</strong> →<strong>Domains</strong> → 选择<code>domain.com</code></p><p>添加一条A记录:</p><table><thead><tr><th>字段</th><th>值</th><th>说明</th></tr></thead><tbody><tr><td>Type</td><td><code>A</code></td><td>IPv4解析</td></tr><tr><td>Hostname</td><td><code>projectname</code></td><td>只填子域名部分，不要写完整域名</td></tr><tr><td>Will Direct To</td><td>你的服务器IP</td><td>就是NPM所在的那台vps</td></tr><tr><td>TTL</td><td><code>3600</code>(默认)</td><td>或改成 <code>600</code> 加快生效</td></tr></tbody></table><p>填完点<strong>Create Record</strong>。</p><p><strong>如果有IPv6</strong>，再加一条<code>AAAA</code>记录，Hostname同样是<code>projectname</code>，指向服务器的IPv6 地址。</p><h2 id="为什么这步必须在-ssl-之前">为什么这步必须在 SSL 之前</h2><p>Let's Encrypt的HTTP-01验证流程是:</p><figure class="highlight plaintext"><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></pre></td><td class="code"><pre><span class="line">Let&#x27;s Encrypt服务器</span><br><span class="line">      ↓ 访问 http://projectname.domain.com/.well-known/...</span><br><span class="line">      ↓ (这时需要DNS能解析到你的服务器！)</span><br><span class="line">   你的 NPM</span><br><span class="line">      ↓ 返回验证文件</span><br><span class="line">      ↓</span><br><span class="line">  Let&#x27;s Encrypt 签发证书</span><br></pre></td></tr></table></figure><p><strong>如果DNS没生效就点Request SSL Certificate，NPM会报错</strong>: <figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">Internal Error / CommunicationError / </span><br><span class="line">unauthorized :: ... DNS problem: NXDOMAIN</span><br></pre></td></tr></table></figure></p><h2 id="验证dns是否生效">验证DNS是否生效</h2><p>在本机或服务器上跑：</p><figure class="highlight bash"><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></pre></td><td class="code"><pre><span class="line"><span class="comment"># 方法 1:dig</span></span><br><span class="line">dig projectname.domain.com +short</span><br><span class="line"><span class="comment"># 期望输出:你的服务器 IP</span></span><br><span class="line"></span><br><span class="line"><span class="comment"># 方法 2:nslookup</span></span><br><span class="line">nslookup projectname.domain.com</span><br><span class="line"></span><br><span class="line"><span class="comment"># 方法 3:在线工具</span></span><br><span class="line"><span class="comment"># https://dnschecker.org 输入域名看全球解析状态</span></span><br></pre></td></tr></table></figure><p><strong>只有当<code>dig</code>返回正确IP后，才去NPM点SSL</strong>。</p><h2 id="泛域名的省事做法推荐">泛域名的省事做法(推荐)</h2><p>如果你以后还会加 <code>xxx.domain.com</code>各种子域名，<strong>一次性配置泛解析</strong>更省心：</p><p>在域名解析页面加一条：</p><table><thead><tr><th>Type</th><th>Hostname</th><th>Will Direct To</th></tr></thead><tbody><tr><td>A</td><td><code>*</code></td><td>服务器 IP</td></tr></tbody></table><p>这样以后新加<code>blog.domain.com</code>、<code>api.domain.com</code>、<code>whatever.domain.com</code>都<strong>不用再动DNS</strong>，直接在NPM里加ProxyHost就行。</p><p>不过要注意:<strong>泛解析 + Let's Encrypt通配符证书</strong>需要DNS-01验证(要在NPM里配域名解析页面的APIToken)，比单域名麻烦一点。如果只是每个子域名单独申请证书，泛A记录 +HTTP-01仍然能正常工作，推荐这种。</p><h2 id="第五阶段验证-上线">第五阶段:验证 + 上线</h2><figure class="highlight bash"><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><span class="line"><span class="comment"># 从NPM容器内部测试能否访问projectname</span></span><br><span class="line">docker <span class="built_in">exec</span> nginx-proxy-manager wget -qO- http://projectname <span class="comment">#无所谓的步骤</span></span><br><span class="line"></span><br><span class="line"><span class="comment"># NPM 后台(:81)添加 Proxy Host:</span></span><br><span class="line"><span class="comment">#   Domain: projectname.domain.com</span></span><br><span class="line"><span class="comment">#   Forward Hostname: projectname      ← 容器名</span></span><br><span class="line"><span class="comment">#   Forward Port: 80</span></span><br><span class="line"><span class="comment">#   SSL: 勾选 Let&#x27;s Encrypt</span></span><br><span class="line"></span><br><span class="line">curl -I https://projectname.domain.com   <span class="comment"># 验证成功</span></span><br></pre></td></tr></table></figure><hr /><h2 id="projectname之后的修改方式">projectname之后的修改方式</h2><p><strong>静态页面极简修改流程</strong>:</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">sudo</span> vim /opt/projectname/index.html</span><br></pre></td></tr></table></figure><p><strong>立即生效！</strong> 不需要重启容器，因为: -<code>-v /opt/projectname:/usr/share/nginx/html:ro</code>是<strong>挂载</strong>，不是拷贝- 浏览器刷新即可看到新内容(如有缓存加 <code>?v=2</code>)</p><p>如果要加新页面/图片： <figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">sudo</span> <span class="built_in">cp</span> about.html /opt/projectname/</span><br><span class="line"><span class="built_in">sudo</span> <span class="built_in">cp</span> -r images /opt/projectname/</span><br></pre></td></tr></table></figure></p><p><strong>只有在修改nginx配置（不是html）时才需要</strong>:<figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">docker restart projectname</span><br></pre></td></tr></table></figure></p>]]></content>
    
    
      
      
    <summary type="html">&lt;h2 id=&quot;简介&quot;&gt;简介&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;问了大模型Nginx Proxy Manager怎么配置&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;问了二级域名怎么往vps上挂，能用来做什么，考虑后面新建一些站点，作为以后的实用型页面或者纯粹没用的小玩意&lt;/p&gt;&lt;/l</summary>
      
    
    
    
    
    <category term="生活" scheme="https://nachtzug.xyz/tags/%E7%94%9F%E6%B4%BB/"/>
    
  </entry>
  
  <entry>
    <title>突发性耳聋</title>
    <link href="https://nachtzug.xyz/2026/02/19/2026-02-19-sudden-hearing-loss/"/>
    <id>https://nachtzug.xyz/2026/02/19/2026-02-19-sudden-hearing-loss/</id>
    <published>2026-02-19T09:52:40.000Z</published>
    <updated>2026-02-19T09:52:40.516Z</updated>
    
    <content type="html"><![CDATA[<blockquote><p>I thought what I'd do was, I'd pretend I was one of thosedeaf-mutes.</p></blockquote><h2 id="概述">概述</h2><h3 id="发生了什么">发生了什么？</h3><p>我被诊断为<code>突发性耳聋（sudden sensorineural hearing loss，SSNHL）</code>。</p><h3 id="我做了什么">我做了什么？</h3><p>就诊、住院、出院、吃药、高压氧舱、休息、活蹦乱跳。</p><h3 id="有什么总结">有什么总结？</h3><p>尽早就医、保证休息、拒绝饮酒。</p><h2 id="病情">病情</h2><p>一天早晨，我睁开眼，觉得很不对劲。试图起床，立刻觉得头晕恶心，天旋地转，视野不断地剧烈震颤难以聚焦，只要轻微移动头部位置，这种眩晕感就会连续发生。实在忍受不了刺激，挣扎着去厕所呕吐起来。此外还感觉左耳蒙蒙的，有什么阻碍了听觉。</p><h2 id="治疗经历">治疗经历</h2><h3 id="急诊">急诊</h3><p>由于发病初期我并没有独自行动能力，治疗全程由家属陪护完成。</p><p>先挂急诊，我描述病情，由医生判定情况。</p><p>进行急诊抽血和头部CT检查，进入CT室躺下去又是一阵眩晕，在即将吐在床上的一刻，我强制自主翻身下床，吐在了医疗废物垃圾桶内，把医生吓了一大跳，怕我摔倒。</p><p>做完CT直接安排我去神经内科门诊。这一步急诊可以选神经内科或耳鼻喉科。</p><p>神内门诊医生评估了我的平衡能力和眼球震颤情况，给我排了纯音听阈测试。</p><p>坐进听力测试室后我才注意到左耳侧除了蒙蒙的感觉，还有比平时夜深人静时巨大得多的耳鸣。</p><p>听力测试完成后，显示左耳轻-中度感音神经性聋，听力在高频方面有大幅削弱。</p><p>神内医生看着报告让我选住院或不住院，总之必须进行几天治疗。我选择了不住院，因为我觉得本院输液很方便，感觉不是什么大病，想回去完成工作。而后来这个选择马上就被推翻了。</p><p>因为我选择不住院，神内开了药物和MRI检查预约后，我转回急诊准备注射治疗，但是急诊医生在看了报告后强烈建议我住院，然后通知了神经内科给我重新排上。</p><p>这个时候一天已经过去了，时间来到了下午。在过去几小时中，我辗转在科室之间，有时还在呕吐，吐得只剩下胃酸，除了意识清醒之外，身上没什么部位属于自己了。</p><h3 id="住院">住院</h3><p>于是，我进入了住院病房，一级护理，ADL辅助，和其他头晕患者一起住三人间。</p><p>管床医生重新测试了我的平衡能力（有问题），检查了四肢肌力（5级，正常），并参考了耳鼻喉科会诊意见，正式告诉我的临床诊断是<code>突发性耳聋（sudden sensorineural hearing loss，SSNHL）</code>。</p><p>治疗方案：糖皮质激素输液冲击治疗+抗眩晕输液治疗+降血脂药+低糖饮食，第五天出院改口服激素，逐日减量到停药，出院后开始做高压氧舱治疗。</p><p>检查：排除其他心脑血管不良因素和头颅病变的各种检查，比如MRI，彩超等。</p><p>住院这几天，手上挂着留置针，基本没干什么，就是偶尔拿出电脑来干干活把材料提交了。从最高楼层的病房俯瞰风景，也看了看低层的自己工位的窗户。前三天需要坐轮椅去做检查。听其他有头晕症状的病友和家属唠叨。</p><p>同事和学生们成群结队来看我了，担心我完全听不到，问候了一番，送来了堪比年货的物资。老板也抽空来看我了，他说他已经有三次突聋的情况，让我好好休息。</p><p>管床医生每天例行来看我的情况，他也有突聋，后遗症是耳鸣。虽然他推荐我做高压氧舱，但他自己也没时间做，有这个设备的医院不多，至少本院是没有的。</p><p>轮班的护士天天照顾我，挂盐水，测血压血糖。有个护士说自己也突聋了两次，夜班还是太辛苦了。</p><p>其他检查一切正常，完全可以放心。</p><h3 id="出院">出院</h3><p>第五天，出院，排到了下午三点多拿到了出院小结，结清费用，取了药，回家已经很晚，约了第二天上午离家很近的高压氧门诊，运气不错。</p><p>去门诊取号，走进高压氧治疗中心的小房子，和医生会谈后，开了10次一个疗程的方案。过年前可以做5次，年后能继续做。</p><p>所谓高压氧舱，就是在高于一个大气压的密室环境里吸入高浓度的氧气进行治疗。高压氧治疗可以修复受损的神经细胞。舱内坐着一排也是有耳聋情况的患者，也有一些一氧化碳中毒、或别的原因意识不清瘫着的患者。</p><p>加压过程就像潜水一样需要闭嘴鼓气、张嘴吞口水扛住升压的耳内不适。一次治疗要做一个半小时，排除任何电子设备和易燃因素，坐在舱内还是挺无聊的，所以做了三天之后我带上了<strong>迷宫饭世界导览冒险者权威指南：完全版</strong>，估计再做个几次就能把书看完了。</p><p>经过五次高压氧舱的治疗，耳聋耳鸣症状已经得到极大缓解。毕竟我开始也只是轻中度聋，治疗及时，感觉听力还是有望恢复正常的。</p><h2 id="感想">感想</h2><p>我发病的30多个小时前，也就是两天前夜里还在聚会喝啤酒，喝了一杯金汤力，最后被倒了白酒混酒，有的人喝得七荤八素。虽然当晚和第二天我自己还好好的没有醉，还能塞着耳机听歌，可能其实已经受到了伤害，实际上发病前一天晚上已经有一点耳鸣的征兆。我已经一年没有过量饮酒，基本上是不沾烈酒，这次遭遇还是提醒了我。</p><p>出院后没几天，又发现一个认识的人突聋，艰难治疗康复中，恢复效果可能没有我好。这个疾病要在黄金治疗期（72小时）紧急治疗才可以，拖延超过一周以上，会导致听力损失更大。如果发现突聋后一个月都不积极治疗，想要再恢复就很难了。超过三个月的话，耳鼻喉科医生一般会认为基本治不好了。突聋在医务工作者和研究人员中竟然这么普遍，我确实是第一次知道。虽然诱发突聋的因素多种多样，但是对于健康人来说，主要还是生活作息方式、焦虑情绪的影响最大了，以后还是要注意。</p><p>把<em>The Sound ofSilence</em>加入到歌单后的一周之内我就聋了，这歌不行。不过后来我检查自己听力有没有好的时候也听的是这首歌。在出院前最后一天，我的左耳已经有了好转，从还只能听低频，到可以正常听到高频人声，基本上不影响日常立体声听力。</p><p>曾经不久前我还在思考如果自己要被逐步剥夺五感，最珍惜的听觉一定是要最后一个失去的。但是报应来得猝不及防，命运弄人。今后还是有可能复发突聋，这次的经历让我需要更加做好对身体的保护。</p>]]></content>
    
    
      
      
    <summary type="html">&lt;blockquote&gt;
&lt;p&gt;I thought what I&#39;d do was, I&#39;d pretend I was one of those
deaf-mutes.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&quot;概述&quot;&gt;概述&lt;/h2&gt;
&lt;h3 id=&quot;发生了</summary>
      
    
    
    
    
    <category term="生活" scheme="https://nachtzug.xyz/tags/%E7%94%9F%E6%B4%BB/"/>
    
  </entry>
  
  <entry>
    <title>近况报告</title>
    <link href="https://nachtzug.xyz/2026/01/08/2026-blog-update/"/>
    <id>https://nachtzug.xyz/2026/01/08/2026-blog-update/</id>
    <published>2026-01-08T12:18:28.000Z</published>
    <updated>2026-01-08T13:53:00.652Z</updated>
    
    <content type="html"><![CDATA[<p>各位新年好，我来记录一下这阵子发生的各种普通的事情。</p><h2 id="其实我没有那么想记录与表达"><a class="markdownIt-Anchor" href="#其实我没有那么想记录与表达"></a> 其实我没有那么想记录与表达</h2><p>我对于时间流逝尺度的感知很迟钝，这个博客的上一篇更新对我来说如同昨日一般新鲜。</p><p>过去的2025年已经成了最忙碌的一年，经历最多的一年，也是最快的一年。</p><p>但是每一天只不过都是在琐碎的日常中重复，不值得大书特书。关键在于，日常工作以不断输出文本和数据图像为伴，那么写博客也变得没有那么悠闲了，必须见缝插针，而且我习惯意识流写作，没有大纲，通常是写几行就燃尽。</p><p>周遭的世界已经发生了各种改变，回顾25年大事记，却又不禁感慨不过如此。大语言模型的疯狂计算，也持续从人类真实思考的历史资料中提炼复制出随机的统计学魅影。这更加抑制了我的表达欲。</p><h2 id="进一步减少了对社交媒体的使用"><a class="markdownIt-Anchor" href="#进一步减少了对社交媒体的使用"></a> 进一步减少了对社交媒体的使用</h2><p>严格来说，现在也只有<a href="https://mas.to/@shizuru" title="我的mastodon">Fediverse</a>和<a href="https://bsky.app/profile/nachtzug.xyz" title="我的Bluesky">Bluesky</a>比较纯粹，Twitter、微博、Threads这种汇聚了算法和噱头的平台却各有各的烂点。</p><p>为了拥有健康的数字生活，我已经卸载了本就没什么实用价值的Threads，不断强化Mastodon和Bluesky的信息流过滤。2026年我应该从Twitter账户的关注者开始削减，毕竟那里是残留最多无效社交关系和有害信息的平台。</p><p>进一步地，我最近已经将20个app和一个快捷指令自动化绑定，也就是打开它们的时候手机色彩滤镜会自动切换到黑白。这样可以有效减少屏幕的光线刺激，包括上述社交媒体在内、各种即时通讯、媒体娱乐也没有那么好刷了。</p><p>至于即时通讯软件，这种硬控时间的工具实在影响心智，使用也不方便。最近换了新手机，我甚至不能登录Telegram，永远过不了SMS Fee这一关，干脆从手机上卸载了。</p><h2 id="坚持锻炼还是有好处的"><a class="markdownIt-Anchor" href="#坚持锻炼还是有好处的"></a> 坚持锻炼还是有好处的</h2><p>平时的阻抗运动练习有点懒了，没有去几次，我的教练甚至因为做私教不稳定而跑去新的店当管理岗了，痛失健身机会。</p><p>但是网球是不能落下的，因此每到周日就得去练习。中间也尝试过两次室内发球机，不如在真的网球场上跑动有趣。随着训练的深入，体能也吃进了身体中，原来可能要喘不过气来的回合逐渐有所改善。</p><p>一周一练的强度虽然低了点，对于体重没什么影响。但我相信无论做什么运动，只要坚持就可以的。</p><h2 id="碎片化信息影响了观影体验于是我放弃了大多数动画"><a class="markdownIt-Anchor" href="#碎片化信息影响了观影体验于是我放弃了大多数动画"></a> 碎片化信息影响了观影体验，于是我放弃了大多数动画</h2><p>从Bangumi上的记录来看，25年能看的动画以及看完的动画基本上所有年份里最少、评价相对较低的。这可能与去年是个动画小年有关。</p><p>夯的作品层出不穷，拉的作品也有一大坨。我坚持到年末的作品居然也只有<code>机动战士Z高达</code>（也还差几集没有看完）。</p><p>值得推荐的有：</p><ul><li><code>金牌得主</code>、<code>罗小黑战记2</code>，态度积极又用心作画</li><li><code>琉璃的宝石</code>、<code>小城日常</code>，偏门得让人眼前一亮</li><li><code>乱马1/2</code>、<code>剑勇传说</code>，复古吹新风又欢乐</li><li><code>更衣人偶2</code>、<code>碧蓝之海2</code>，实在没有看完</li><li>一直心仪却没开始看的作品：<code>末日后酒店</code>，今年开始补了</li></ul><p>今年最佳剧集：<code>安多2</code>.在Netflix上看了一年剧集和电影（<code>行尸走肉</code>、<code>无耻之徒</code>、<code>怪奇物语</code>以及一些韩剧日剧），也多次走进电影院。</p><p>在电影院看的动画包括<code>你的颜色</code>、<code>高达GQX剧场版</code>、<code>幽灵公主</code>和<code>鬼灭之刃</code>，电影还是数<code>F1</code>最刺激，<code>碟中谍</code>已经看到乏味。</p><p>低端影视<a href="https://twitter.com/ddys_mov/status/1985973606011261204">没有了</a>，失去了一个看片渠道。</p><p>体验最佳的还是看电影，因为能保持对叙事连续性的把握。我不再适应一周一更的间断式追番，也可能是存在这些理由：</p><ul><li>我平等地把时间分给了各种信息、娱乐媒体、工作、生活中的其他事情，甚至看动画的平台都要分到哔哩哔哩、动画疯和Netflix，导致每一天能看动画的那个25分钟几乎都挤不出来，更不能集中收集当日更新的作品；</li><li>因为多邻国上多语种的学习，我对日语的专注度也下降了，有时听英语有时听日语，不同的语言系统会在脑子里冲撞，影响我对剧情的理解。</li></ul><h2 id="国内短暂出行几个城市"><a class="markdownIt-Anchor" href="#国内短暂出行几个城市"></a> 国内短暂出行几个城市</h2><p>之前一次坐飞机还要追溯到19年。因为各种各样的事情影响，我这几年不会去只有飞机才能快速抵达的远方，出行只坐高铁，可谓是安稳中度日，也省去了机票报销。</p><p>不过为了开会，去年才去坐了一趟国内航班，感觉飞机餐都有点掉档次。结婚后，人就要去两个城市，而且节日期间也还是要就近出门玩一玩。</p><p>今年因为工作和因为私事去的地方也够多了。还参加了多场婚礼，其中也有自驾的机会，对于未来的出行，逐渐习惯了多种多样的形式。</p><h2 id="总而言之"><a class="markdownIt-Anchor" href="#总而言之"></a> 总而言之</h2><p>最近一周把上一年的事情回顾了一下，没有什么特别的印象。</p><p>和Mastodon上的同好象友见了一面，唱了歌。</p><p>把数字生活收敛到新买的手机上，用力控制在社交媒体和其他平台上的信息交换的时间和频次，提高信息的品质。</p><p>继续坚持多邻国，尽管25年中间断了很久，但是年底又开始了学习。</p><p>因为有新的自主工作的任务，接下来还需要更加努力地把自己的工作内容整理出来，早日开发出想要的成果。</p><h2 id="这个博客的未来会怎样"><a class="markdownIt-Anchor" href="#这个博客的未来会怎样"></a> 这个博客的未来会怎样？</h2><p>我今天才微调了博客的显示、字体，小小更新了一下<a href="/about/">关于页面</a>，将现存的博文梳理了一下，删掉了个位数的不够成熟的意识流碎碎念。</p><p>总体来说，我非常喜欢我的博客这样缓慢而长期延续的形式。本来都想要把整个博客内容搬到bearblog上，但是刚注册上就发现要绑定我的域名到那边，以及获得一些我想要的特性，还得交一大笔钱……</p><p>我并不想把我的内容托管到具体某个人手里，还是我这边独立博客比较香，能用就行。</p><p>今后本博客写也好，继续搁置也好，反正循着自己舒服的节奏，组织出我想要表达的内容即可。</p><p>我倒是希望自己能专注于一门特定的兴趣以及自己的本职技能，多产出“故事”，少做“自我结构”。</p><p>那么就下次再见吧。</p>]]></content>
    
    
      
      
    <summary type="html">&lt;p&gt;各位新年好，我来记录一下这阵子发生的各种普通的事情。&lt;/p&gt;
&lt;h2 id=&quot;其实我没有那么想记录与表达&quot;&gt;&lt;a class=&quot;markdownIt-Anchor&quot; href=&quot;#其实我没有那么想记录与表达&quot;&gt;&lt;/a&gt; 其实我没有那么想记录与表达&lt;/h2&gt;
&lt;p&gt;我对于时间</summary>
      
    
    
    
    
    <category term="生活" scheme="https://nachtzug.xyz/tags/%E7%94%9F%E6%B4%BB/"/>
    
  </entry>
  
  <entry>
    <title>随时下车</title>
    <link href="https://nachtzug.xyz/2025/09/30/internet-as-metro/"/>
    <id>https://nachtzug.xyz/2025/09/30/internet-as-metro/</id>
    <published>2025-09-30T04:58:20.000Z</published>
    <updated>2025-09-30T04:58:20.241Z</updated>
    
    <content type="html"><![CDATA[<p>互联网是庞大的地铁系统。我的出行目的明确：完成站点之间的移动，今天的地铁就坐到这儿了。我遵守无形的“先下后上”规则，不争抢，不滞留，不将车厢据为己有。</p><p>到站后，我便下车。昨天的旅途与偶遇的混乱乘客，不值得占据今日的心绪。执着于记住每一个噪音，本身也是一种病态。</p><p>实践互联网的断舍离：使用它，但绝不依附它。随时下车，因为生活在站台之外。</p><p>相关非因果，观察非发现，统计非代表，概念非本体，认知非真相，同意非理解。</p>]]></content>
    
    
      
      
    <summary type="html">&lt;p&gt;互联网是庞大的地铁系统。我的出行目的明确：完成站点之间的移动，今天的地铁就坐到这儿了。我遵守无形的“先下后上”规则，不争抢，不滞留，不将车厢据为己有。&lt;/p&gt;
&lt;p&gt;到站后，我便下车。昨天的旅途与偶遇的混乱乘客，不值得占据今日的心绪。执着于记住每一个噪音，本身也是一种病态</summary>
      
    
    
    
    
    <category term="生活" scheme="https://nachtzug.xyz/tags/%E7%94%9F%E6%B4%BB/"/>
    
  </entry>
  
  <entry>
    <title>在Follow上完成你的博客RSS的所有权认证</title>
    <link href="https://nachtzug.xyz/2024/11/22/claim-your-verified-feed-to-follow-is-app/"/>
    <id>https://nachtzug.xyz/2024/11/22/claim-your-verified-feed-to-follow-is-app/</id>
    <published>2024-11-22T12:51:28.000Z</published>
    <updated>2024-11-22T12:51:28.497Z</updated>
    
    <content type="html"><![CDATA[<p><ahref="https://follow.is">Follow应用</a>好像开始公测了，我是从少数派的<ahref="https://sspai.com/post/94104">文章</a>得知的。如果不知道Follow是什么，那看过上面这篇文章就一定能明白。</p><p>如果刚好在使用Follow，而你本人又恰好是一个订阅源的所有者。那么Follow刚好提供了一个在它的平台上<strong>认证自己的订阅源所有权</strong>的功能。</p><p>按照它的说明，认证分为三种方法。</p><h2id="方法一发布文本内容到自己的订阅源">方法一：发布文本内容到自己的订阅源</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">This message is used to verify that this feed (feedId:XXXXXXXXXX) belongs to me (userId:XXXXXXXXXX). Join me in enjoying the next generation information browser https://follow.is.</span><br></pre></td></tr></table></figure><ul><li><code>feedId:XXXXXXXXXX</code>这个对应你要认证的订阅源在follow.is上显示的数字ID。在认证模块里是直接显示的。</li><li><code>userId:XXXXXXXXXX</code>这个对应你这个用户在follow.is上显示的数字ID。在认证模块里也是直接显示的。</li></ul><p>该方法最为简单直白，没有技术含量，把上述文本发布到自己的博客、社交平台动态，预计都能够实现认证。为了方便，请参照官方说明使用此方法。</p><p>当然，我都说<strong>预计</strong>，正是因为我没有用这个方法啦。</p><h2id="方法二把一段代码添加到自己的订阅源的description-字段内">方法二：把一段代码添加到自己的订阅源的<code>&lt;description /&gt;</code>字段内</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">feedId:XXXXXXXXXX+userId:XXXXXXXXXX</span><br></pre></td></tr></table></figure><p>同理，feedId和userId就是订阅源和你的用户ID，这个在复制的时候都可以看到，所以不再赘述，关键是你得会改动自己的订阅源。</p><p>以本博客采用<ahref="https://github.com/hexojs/hexo-generator-feed">hexo-generator-feed</a>生成的<code>atom.xml</code>格式为例，让我直接硬改<code>&lt;description /&gt;</code>简直是丈二和尚摸不着头脑。因为<code>Atom</code>和<code>RSS 2.0</code>的<ahref="https://zh.wikipedia.org/wiki/Atom_(%E6%A8%99%E6%BA%96)#Atom%E8%88%87RSS_2.0%E7%9A%84%E6%AF%94%E8%BC%83">标准有所不同</a>。</p><p>这样也导致了Follow会把我的订阅源里的<code>&lt;subtitle&gt;</code>字段识别为<code>description</code>。</p><p>也就是说，我应该想办法把原来的<code>&lt;subtitle&gt;</code>字段覆盖掉，或者采用<code>&lt;summary&gt;</code>字段之类符合规范的做法。</p><p>那么我的步骤是：</p><ol type="1"><li>在hexo的source目录中创建<code>_custom.xml</code>文件，开头的<code>_</code>是为了防止被hexo识别到而生成public文件。此xml文件模板请参照hexo-generator-feed的<ahref="https://github.com/hexojs/hexo-generator-feed/blob/master/atom.xml">官方模板</a>。</li><li>把<code>_custom.xml</code>文件里的<code>&lt;subtitle&gt;</code>字段这一行直接修改为：</li></ol><figure class="highlight xml"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="tag">&lt;<span class="name">subtitle</span>&gt;</span>feedId:XXXXXXXXXX+userId:XXXXXXXXXX<span class="tag">&lt;/<span class="name">subtitle</span>&gt;</span></span><br></pre></td></tr></table></figure><p>请记住feedId、userId都对应的是你的订阅源和用户ID。 3.再修改博客根目录下的<code>_config.yml</code>文件里的部分： <figure class="highlight yaml"><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></pre></td><td class="code"><pre><span class="line"><span class="attr">plugin:</span> <span class="string">hexo-generator-feed</span></span><br><span class="line"><span class="attr">feed:</span></span><br><span class="line">  <span class="attr">type:</span> <span class="string">atom</span></span><br><span class="line">  <span class="attr">path:</span> <span class="string">atom.xml</span></span><br><span class="line">  <span class="attr">limit:</span> <span class="number">20</span></span><br><span class="line">  <span class="attr">template:</span></span><br><span class="line">    <span class="bullet">-</span> <span class="string">./source/_custom.xml</span></span><br></pre></td></tr></table></figure><code>template</code>字段引用了你的自定义模板。</p><p>修改好之后生成发布一下博客，产生新的atom.xml订阅链接，然后你就可以到Follow上进行认证了。</p><p>认证完以后，你应该还可以把对应的订阅链接恢复原状，去除这个字段带来的任何影响。</p><h2id="方法三把相应内容复制到对应的rss生成工具">方法三：把相应内容复制到对应的RSS生成工具</h2><figure class="highlight xml"><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></pre></td><td class="code"><pre><span class="line"><span class="tag">&lt;<span class="name">follow_challenge</span>&gt;</span></span><br><span class="line">    <span class="tag">&lt;<span class="name">feedId</span>&gt;</span>XXXXXXXXXX<span class="tag">&lt;/<span class="name">feedId</span>&gt;</span></span><br><span class="line">    <span class="tag">&lt;<span class="name">userId</span>&gt;</span>XXXXXXXXXX<span class="tag">&lt;/<span class="name">userId</span>&gt;</span></span><br><span class="line"><span class="tag">&lt;/<span class="name">follow_challenge</span>&gt;</span></span><br></pre></td></tr></table></figure><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></pre></td><td class="code"><pre><span class="line"><span class="punctuation">&#123;</span></span><br><span class="line">  <span class="attr">&quot;follow_challenge&quot;</span><span class="punctuation">:</span> <span class="punctuation">&#123;</span></span><br><span class="line">    <span class="attr">&quot;feed_id&quot;</span><span class="punctuation">:</span> <span class="string">&quot;XXXXXXXXXX&quot;</span><span class="punctuation">,</span></span><br><span class="line">    <span class="attr">&quot;user_id&quot;</span><span class="punctuation">:</span> <span class="string">&quot;XXXXXXXXXX&quot;</span></span><br><span class="line">  <span class="punctuation">&#125;</span></span><br><span class="line"><span class="punctuation">&#125;</span></span><br></pre></td></tr></table></figure><p>同样这里的id也要从你的Follow界面中直接复制。如果你是RSS生成器的用户，这个方法显然会很直观。</p><p>最终，我也在Follow上拥有了一个橙色的勾勾。也很感谢之前就把我的博客订阅加到Follow里的朋友，我感到非常意外（</p>]]></content>
    
    
      
      
    <summary type="html">&lt;p&gt;&lt;a
href=&quot;https://follow.is&quot;&gt;Follow应用&lt;/a&gt;好像开始公测了，我是从少数派的&lt;a
href=&quot;https://sspai.com/post/94104&quot;&gt;文章&lt;/a&gt;得知的。如果不知道Follow是什么，那看过上面这篇文章就一定能明白。</summary>
      
    
    
    
    
    <category term="互联网" scheme="https://nachtzug.xyz/tags/%E4%BA%92%E8%81%94%E7%BD%91/"/>
    
    <category term="RSS" scheme="https://nachtzug.xyz/tags/RSS/"/>
    
    <category term="Follow" scheme="https://nachtzug.xyz/tags/Follow/"/>
    
  </entry>
  
  <entry>
    <title>在使用NexT主题的Hexo博客中加入Mastodon创作者归属</title>
    <link href="https://nachtzug.xyz/2024/11/21/custom-head-fediverse-creator/"/>
    <id>https://nachtzug.xyz/2024/11/21/custom-head-fediverse-creator/</id>
    <published>2024-11-21T09:32:43.000Z</published>
    <updated>2024-11-21T09:48:43.314Z</updated>
    
    <content type="html"><![CDATA[<p>一句话概括：用NexT自定义文件模板更改主题配置，加入“Mastodon创作者归属”的代码：<code>&lt;meta name="fediverse:creator" content="..."&gt;</code>。</p><p>Mastodon对“作者归属”的描述：</p><blockquote><p>作者归属</p><p>你是否在 Mastodon 之外撰写新闻或博客文章？控制它们被分享到 Mastodon时的署名方式。</p></blockquote><p>效果就是当一篇署名是你本人的文章被分享到Mastodon的时候，它能够和那些非你本人署名的文章区分开来，指向你的Mastodon账号，也能避免你被不明链接错误署名。</p><p>要获得<strong>该代码</strong>，Mastodon用户可以访问<code>修改个人资料&gt;验证</code>，拉到下面查看创作者归属。</p><p>NexT主题已经有很成熟的<ahref="https://theme-next.js.org/docs/advanced-settings/custom-files.html">修改教程</a>。建议直接参考。</p><p>以下是消化后的简易步骤：</p><ol type="1"><li>首先在你的Hexo博客根目录下创建空白文件：</li></ol><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">source/_data/head.njk</span><br></pre></td></tr></table></figure><ol start="2" type="1"><li>在 head.njk 文件中添加以下内容（使用你自己的代码）：</li></ol><figure class="highlight html"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="tag">&lt;<span class="name">meta</span> <span class="attr">name</span>=<span class="string">&quot;fediverse:creator&quot;</span> <span class="attr">content</span>=<span class="string">&quot;...&quot;</span>&gt;</span></span><br></pre></td></tr></table></figure><ol start="3" type="1"><li>在站点配置文件（或主题配置文件，正常来说是博客根目录下的<code>_config.next.yml</code>）中去掉注释，启用这个修改：</li></ol><figure class="highlight yaml"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line"><span class="attr">theme_config:</span></span><br><span class="line">  <span class="attr">custom_file_path:</span></span><br><span class="line">    <span class="attr">head:</span> <span class="string">source/_data/head.njk</span></span><br></pre></td></tr></table></figure><p>这样做的好处是：</p><ul><li>不直接修改主题文件，便于维护</li><li>在主题更新时不会丢失自定义内容</li><li>符合NexT推荐的自定义方式</li></ul><p>如果你想针对不同文章设置不同的content值（针对多个作者和/或多个账号），还可以：</p><ol type="1"><li>在文章的front-matter中添加自定义变量：</li></ol><figure class="highlight yaml"><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></pre></td><td class="code"><pre><span class="line"><span class="meta">---</span></span><br><span class="line"><span class="attr">title:</span> <span class="string">文章标题</span></span><br><span class="line"><span class="attr">fediverse_creator:</span> <span class="string">your_custom_value</span></span><br><span class="line"><span class="meta">---</span></span><br></pre></td></tr></table></figure><ol start="2" type="1"><li>然后修改<code>head.njk</code>的内容为：</li></ol><figure class="highlight html"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">&#123;% if page.fediverse_creator %&#125;</span><br><span class="line"><span class="tag">&lt;<span class="name">meta</span> <span class="attr">name</span>=<span class="string">&quot;fediverse:creator&quot;</span> <span class="attr">content</span>=<span class="string">&quot;&#123;&#123; page.fediverse_creator &#125;&#125;&quot;</span>&gt;</span></span><br><span class="line">&#123;% endif %&#125;</span><br></pre></td></tr></table></figure><p>这样就可以在需要的文章中自定义fediverse:creator的值了。</p><p>以上内容有Claude加笔，故可用性无法100%保证。</p>]]></content>
    
    
      
      
    <summary type="html">&lt;p&gt;一句话概括：用NexT自定义文件模板更改主题配置，加入“Mastodon创作者归属”的代码：&lt;code&gt;&amp;lt;meta name=&quot;fediverse:creator&quot; content=&quot;...&quot;&amp;gt;&lt;/code&gt;
。&lt;/p&gt;
&lt;p&gt;Mastodon对“作者归属”</summary>
      
    
    
    
    
    <category term="互联网" scheme="https://nachtzug.xyz/tags/%E4%BA%92%E8%81%94%E7%BD%91/"/>
    
    <category term="mastodon" scheme="https://nachtzug.xyz/tags/mastodon/"/>
    
  </entry>
  
  <entry>
    <title>Game 2023 Over. Continue?</title>
    <link href="https://nachtzug.xyz/2023/12/17/2023-review/"/>
    <id>https://nachtzug.xyz/2023/12/17/2023-review/</id>
    <published>2023-12-17T11:49:32.000Z</published>
    <updated>2023-12-22T08:42:55.544Z</updated>
    
    <content type="html"><![CDATA[<h2 id="概述">概述</h2><p>2023年是变与不变并存的一年。这一年在公共领域发生的事仿佛没有给个别赛博史官留下任何印象，导致他们还在回顾2022年。应当对这种症状表现出足够的宽容。</p><p>在COVID-19的余波中，生活逐渐恢复，但是病毒的威胁仍旧存在；</p><p>多个地区的武装冲突仍在持续，自然灾害和人身事故频发，这些都造成惨烈的后果；</p><p>大型语言模型（LLM）应用的泡沫填充了人类苍白的布若卡氏区的脑沟；</p><p>Twitter不怎么安详地入土，一些新生的功能零碎的社交产品继承了它的难民，让本身就畸形的社区氛围再度恶化；</p><p>LK-99的闹剧最终成了烂坑99，其他热点“创新”事物也同浮云一般飘过。</p><p>发生了各种各样的事件，想要细看的话还是直接浏览各个语言版本的<ahref="https://zh.wikipedia.org/zh-cn/2023%E5%B9%B4">维基百科 -2023年</a>比较好。当然，也可以直接查看<ahref="https://www.youtube.com/watch?v=d51diKTSi2M">FailArmy的年度汇总</a>。</p><p>对于个人，这一年也过得非常快，尽管体验了各种各样的新事物，但到了年末依然觉得收获有限。</p><h2 id="攻略进度">攻略进度</h2><h3 id="突击学车考出驾照">突击学车考出驾照</h3><p>花了一个月多一点的连续学习时间，通过了驾考拿C1证。</p><p>作为经验丰富的键盘车手，感觉真正日常开车并没有希望能取代模拟驾驶的快乐，更何况我也没需求，不买车。</p><p>也许只有僵尸大量发生的时候才有机会爽快开车，或者还是直接驾驶战车吧。</p><h3 id="解锁射箭基本动作">解锁射箭基本动作</h3><p>这部分已经在<ahref="/2023/05/25/flawless-failure/">之前的博文</a>中描述过了。临时娱乐，就去室内射箭馆射了几十箭，左肩都酸了，说明锻炼不够到位。</p><p>有机会给弓附个魔。</p><h3 id="习得现代复活魔法cpraed">习得现代复活魔法CPR+AED</h3><p>这项技术不属于我的职业领域，但又是我的必修环节。</p><p>培训过程轻松又严谨，还是挺有用的，今后有机会的话可以放心持证救人。</p><p>希望没有用到的时候。</p><h3 id="出门转了转">出门转了转</h3><p>去过了三个地方，其中两个是全新体验。</p><p>比如一边淋着大雨一边在马路上骑行；比如一边在人家做客一边马不停蹄地加班。有效放松了心情。</p><h3 id="久违地和高中同学见了面">久违地和高中同学见了面</h3><p>现在在现实和网络中遇见或共事的人群中多少有个别人的脑子有问题，相比之下，高中同班同学真是人生唯一舒适圈。</p><p>精英的上限太高，性格怪异，望尘莫及；普通人的下限太低，碰到蠢的就是一秒也不想多相处。只有高中同学每个人既有才华，又能互相读懂对方的优缺点的（当然也有滤镜效果存在）关系，让人能不感到难受。</p><p>或许之后都碰不到这样一群可以在学识和智识上让我诚心佩服，且不会让我感到存在价值被侮辱的人们了。</p><h3 id="找到契机重新开始打网球">找到契机重新开始打网球</h3><p>虽然健身进度缓慢，但是也可以直接开始打网球，当作复健。</p><p>找了个高水平教练来改善动作，提高打球效率，对于学到的内容还比较满意。</p><p>不确定啥时候能变成高水平，不过比起身体的锻炼，更重要的是，球拍会开心。</p><h2 id="书影音游">书影音游</h2><p>动画作品如流水，不过年度动画肯定是<code>葬送的芙莉莲</code>，一集一个完整小故事或几集一个大篇章，穿插回忆的现在时叙事，手法不算新颖，但是观众很受用。虽然现在也不太关注幕后的花絮，不过看着剧情演出和作画的亮眼表现，就知道近十年来所有高度集中资源的动画项目里，这部完全超越了其他靠周边效应赚钱的廉价流水线快餐；</p><p>在其他看过的动画里，<code>跃动青春</code>、<code>天国大魔境</code>、<code>冰海战记第二季</code>、<code>我心里危险的东西</code>、<code>放学后失眠的你</code>都堪称优秀；</p><p>此外也特地补了<code>高达0079</code>和<code>08MS小队</code>，今年的高达份量还不够饱满，还应该把剩下一点尾巴的<code>G复国</code>看完，而<code>水星的魔女</code>完全成了不伦不类的大团圆烂尾；</p><p>院线电影看了<code>银河护卫队3</code>、<code>蜘蛛侠：纵横宇宙</code>、<code>碟中谍7</code>、<code>奥本海默</code>，多少还是值得的。</p><p>真人影视主要是在看Netflix上的韩剧、美剧和电影。没多少铭记的作品，纯粹是杀时间。</p><p>中间有段时间看僵尸特别多，顺便下饭，比如<code>行尸走肉</code>、<code>釜山行</code>、<code>僵尸校园</code>。<code>最后生还者</code>理论上也算是这个范畴的。</p><p><code>超异能族</code>、<code>猎魔人</code>和<code>星期三</code>算是中规中矩。</p><p>最后一个季度还把<code>怪奇物语</code>看了，人物塑造和怀旧感做的不错，其他剧情方面换算成动画打分也就7分吧。</p><p>看书没啥印象，反正看漫画比较多，<code>冰海战记</code>、<code>飞翔的魔女</code>和<code>MIX</code>可以慢慢看，其他都在放置。</p><p>同人本加成人漫画看了40本左右。</p><p>文学类看了<code>黄金罗盘</code>系列，<code>里染天马</code>系列。体育馆比水族馆好看些。顺便也要恭喜青崎有吾老师的<code>不死少女的谋杀闹剧</code>动画化，尽管我看了下感觉叙事太长就搁置了。希望里染天马能动画化，那就太meta了。</p><p>音乐当然还是动画主题曲占了绝大部分。年度歌手有<code>milet</code>和<code>YOASOBI</code>，以及又开始痴迷的<code>阿部真央</code>。最喜欢的原声带是林友树的<code>放学后失眠的你</code>，其实牛尾宪辅的<code>我心里危险的东西</code>也很不错。</p><p>游戏……大概又增加了100小时的<code>战地4</code>，多也不是那么多，但是相比玩的其他游戏确实也多。</p><p>Steam上的消费次数在变少，但有一次大促买了一堆，省了700多块钱。今年新碰的游戏是<code>梦幻遥控车</code>，时隔20年终于入正版，真令人感慨。<code>雨世界</code>操作不是很适应，等换了电脑再慢慢研究。年底买了<code>魔法使之夜</code>语音版，很圆满。</p><p>主要还是把时间花费在<code>欧卡2</code>和<code>漫漫长夜</code>上。今年的游戏时间应该会很难看，在有PSP的情况下，很难去玩PC。</p><blockquote><p>补充：意外的是，<code>文明6</code>的游戏时间才是最长的，<code>漫漫长夜</code>变短了。</p></blockquote><p>玩<code>高达vs高达 NEXT PLUS</code>把PSP的按键搓坏了，上淘宝买了一副配件。</p><h2 id="bad-end记录">BAD END记录</h2><ol type="1"><li>用日亚Apple礼品卡给日区AppStore游戏氪金，很短时间内就被风控了，有点零钱没能全部花出去；</li><li>大量动画追番补番火葬场，搁置、拖拉数目恐达成历史新高，看看十二月底究竟能回收多少部；</li><li>工作任务也绝赞多开中。没关系，做不完就当作已经做完了。</li></ol><h2 id="经验和感触">经验和感触</h2><ol type="1"><li>应当学会放手，注意力和时间是有限的。比如，年度总结不值得，能早点写完就不要拖；</li><li>每天损失两小时睡眠的话，几乎就等于一年有91天用来通宵。这段时间通常无法保持很好的精力，只能浪费在无谓的事情上，比如刻板地工作或娱乐，而不能转化为任何物质或情绪价值，那还不如睡觉；</li><li>让个体被打上标签的社会和促成这种社会风气的人群无处不在。不可能拐弯抹角地让所有人都觉得舒服，反而可以试试抛弃愧疚感，有话直说，直接行动，让所有人都不舒服，尤其是前面提到的这类人；</li><li>避免被热点吸引，毕竟我经常能领先热点十年但就是不让人发现。再者我喜欢陈旧的东西；</li><li>保持创作，不动脑子的话阿尔茨海默病风险大概会提高；</li><li>在虚构的故事当中寻求真实感的人脑袋一定有问题，解释真实世界不引用虚构故事的人生活一定很无聊；</li><li>今年有个社会新闻，能很好概括网上一些矛盾：就是一群人大半夜在高速公路上出殡，弄出的烟雾太大，结果超速卡车把他们给撞了，司机负刑事责任。所有很不合理的社会现象就很像是这辆超速卡车，而面对这些现象高谈阔论的群体很像这群本身毫无规则原则意识的出殡人——仅仅是因为有共同的伤痛或愤怒，让他们有了同病相怜的感觉。实际上这种同病相怜算不上团结，而是集体把过错全部推给社会而已。</li></ol><h2 id="关于本博客">关于本博客</h2><p>长期长草是不太好意思。本身是想做生活和技术总结的，但是说得太多难免会暴露隐私。</p><p>日常生活非常非常安定，也没有什么努力突破的地方，做好自己就可以。何况工作日日忙碌，实在不想花时间多写。</p><p>懒得解释自己的人生，也不在意别人对他们自己的解释。如果有什么重大的事情发生，博客会照样更新的。</p><h2 id="展望">展望</h2><ol type="1"><li>找机会出国转转。旅游是一方面，在学术会议茶歇上吃东西是另一方面；</li><li>从2020年至今，新冠同我无缘，或者我确实体现不出任何症状。可能我的ACE2受体上确实没有这款病毒的入侵通道，或者就是单纯运气好。不知道明年能否坚持住；</li><li>曾经给自己的生命设立了一个虚构的1000天倒计时，2024年，这个倒计时的终结也很快会来到，可惜作为迎接生命最后一刻的演习，我并没有感觉这1000天内有什么闪耀的时刻，而只是安稳无为地度过罢了。每一天都无法预料，不知道1000天结束后会发生什么，要么死亡说来就来，要么继续过下去，任何一种选择都是合适的；</li><li>继续不用大会员，用五颗红心刷爆多邻国。</li></ol>]]></content>
    
    
      
      
    <summary type="html">&lt;h2 id=&quot;概述&quot;&gt;概述&lt;/h2&gt;
&lt;p&gt;2023年是变与不变并存的一年。这一年在公共领域发生的事仿佛没有给个别赛博史官留下任何印象，导致他们还在回顾2022年。应当对这种症状表现出足够的宽容。&lt;/p&gt;
&lt;p&gt;在COVID-19的余波中，生活逐渐恢复，但是病毒的威胁仍旧存</summary>
      
    
    
    
    
    <category term="生活" scheme="https://nachtzug.xyz/tags/%E7%94%9F%E6%B4%BB/"/>
    
  </entry>
  
  <entry>
    <title>射箭</title>
    <link href="https://nachtzug.xyz/2023/05/25/flawless-failure/"/>
    <id>https://nachtzug.xyz/2023/05/25/flawless-failure/</id>
    <published>2023-05-25T09:24:11.000Z</published>
    <updated>2023-05-25T09:24:11.592Z</updated>
    
    <content type="html"><![CDATA[<p>两个本科毕业出国的大学室友时隔多年回国，先和其他同学聚，而我因为练车不能和他们玩。</p><p>第二天，教练眼里的必过学员（也不是），浑身插满打完仗回家flag，尽失天时地利人和，在大雨中以分别两次在起点、终点前自杀的离谱方式挂掉了第一回科目三。我就像被风灵踢出驾驶舱的狸猫一样懵，立即买了最快的火车票跨城赶去和室友逛校园约饭。</p><p>饱餐一顿后无所事事，我就随手指着商场里一家小小的射箭馆说要不要去试试。我们三个几乎都是第一次，就花钱体验半个小时，射箭馆的工作人员耐心地帮我们上护具和讲解弓箭使用，等我们基本能射后开始计时。</p><p>初学14磅反曲弓，一共射了四个回合，每回合12支箭。我的动作不标准，习惯也比较差，所以经常射偏，不过也有射中9环的。</p><p>感觉射箭和击球一样有一种魔力，箭离弦而去的瞬间，之前某种微妙的不满也在一点点释放。可能是因为本身也没有太在意之前的失败，实际上最有压力的环节却是拉弓的时候要去思考如何做对。</p><p>射完箭之后才体会到，明明我脑子里想的是犯错也无所谓，但是实际行动就是在细枝末节上强迫自己追求准确，因为做错了事就是会像拉错了弓一样伤害到自己或者伤害到弓。这导致生活常常陷入消耗，因此我更容易在选择上事与愿违，才养成了把注意力全部投入到不需要衡量对错的事物上去。</p><p>精心谋划、胡乱决策，就是我的矛盾。</p><p>也就这样，我越走越远，身边聚集起来的人也越来越精准，他们就像这个社会的机器，对自己精益求精，也毫无恶意地鼓励我做更正确的事，认为我永远能达成他们的期待，就像他们认为我也在期待他们一样。</p><p>离开射箭馆的时候，带我们的工作人员一边送我们一边问之后还能不能来，要不要办张会员卡。我实在没忍住回答她说，其实早在新冠之前，这家射箭馆和商场一同开业的第一天我就关注了，只不过这是我第一次进来，因为周围的人并没有一个想尝试射箭的。看着她一脸快要哭出来的表情，恐怕这几年生意受到了不少打击。我只好抱歉地离开。</p><p>左臂的前三角肌酸痛了两天多了，才开始慢慢恢复，看来持弓的动作真的不咋标准。</p><p>下次，还要试试吗？</p>]]></content>
    
    
      
      
    <summary type="html">&lt;p&gt;两个本科毕业出国的大学室友时隔多年回国，先和其他同学聚，而我因为练车不能和他们玩。&lt;/p&gt;
&lt;p&gt;第二天，教练眼里的必过学员（也不是），浑身插满打完仗回家flag，尽失天时地利人和，在大雨中以分别两次在起点、终点前自杀的离谱方式挂掉了第一回科目三。我就像被风灵踢出驾驶舱的</summary>
      
    
    
    
    
    <category term="日记" scheme="https://nachtzug.xyz/tags/%E6%97%A5%E8%AE%B0/"/>
    
  </entry>
  
  <entry>
    <title>交错的日常</title>
    <link href="https://nachtzug.xyz/2022/11/29/another-unexpected-holiday/"/>
    <id>https://nachtzug.xyz/2022/11/29/another-unexpected-holiday/</id>
    <published>2022-11-28T18:19:48.000Z</published>
    <updated>2022-11-28T18:28:54.143Z</updated>
    
    <content type="html"><![CDATA[<p>周日早上得知本学院学生出现一例核酸阳性。起初宿舍区一大片临时管控；确定感染者所属单位后，学院就立即被封楼，实验室一些同学被关在楼内，直到当天半夜被转运走隔离。本人作为住校外的迟到惯犯，自然是<strong>又</strong>一次因为早上不通勤而躲过封楼封校。这也坚定了我上班一定要迟到的信念。</p><p>相比上次的假阳性，这次显然不是虚惊一场了，经过一轮全员核酸后，周一继续出现更多混管阳性，说明过去几天来城市中应该已经发生了社会面传播。不断有密接的学生被转移隔离。</p><p>我同另外两位因为刚出差回来、健康码有标记、本来就要三天三检而延迟进校的人，就这样被挡在校外，只好在小区楼下的咖啡店远程办公。午饭可以在周边的小馆子解决，这些小店扫场所码进店的规矩其实都比较松，形式主义。</p><p>本来居家是更保险的，只不过另两位说家里的网实在太差，再加上反正每天都要出门核酸。也多亏这样，有了几天能边喝茶聊天边工作的时光，还能在附近小韩料店吃个火锅，看看电视上的《请回答1988》。</p><p>楼下咖啡店是个平日里大概门可罗雀的小店，我们也算非定期的“常客”了，三个人进店几乎就占据了中间最大的桌子。一天内也会来往一些顾客，通过听人说话，也能知道其他一些常客都是同校的教职工和学生，这次都很有默契地来避难。</p><p>咖啡店的老板是一个戴黑框眼睛、中等偏廋、比较友善、但是激动时容易暴露出轻微口吃的男人，有养猫。他也会和顾客搭话，但是我们在认真工作的时候，他偶尔会没把握好说话的时机，而变成对空气说话。老板戏称是每次隔壁学校封了，这儿生意会稍微变好一点。</p><p>在短短的两天内，我们也稍微聊了一下新冠风险变化、天气和假期、世界杯，以及最近各地好像是一呼百应一般发生的抗议事件。我们也会聊到猫，何况这只猫在第一天就没出现，似乎跑出去一天一夜还没回来。</p><p>这两天，附近韩料店的老板也会跑过来坐坐，用他半熟的中文和咖啡店老板聊天。一个中文一般的韩国人和一个略微口吃的中国人聊得这么欢，能看出来他俩关系的确很不错，而他们的生意真的都不太行。</p><p>韩料店老板甚至在吐苦水说生意太差，封控管理也造成困难，再加上租金的压力，说不定明年真的要关店回韩国了。咖啡店老板则会交换一些生活琐事，比如他如何在深夜帮助一个因为自己送外卖而熟识的附近酒店的前台女孩打抱不平，怒斥一个住霸王店且骚扰这个前台女孩的男性客人的经历。但是可能因为表达能力有限，或者两人存在文化背景差异，韩料店老板听了好几遍才明白。</p><p>周日下午，他们还聊到咖啡店的猫，之前这只猫被送去韩料店抓老鼠，之后就无影无踪了。结果在下大雨的周一下午，这只猫带着一身脏污回来了，韩料店老板说刚刚才发现原来猫一直在他店里没走，还不幸被粘鼠板扯掉了一撮毛。然后我们惊讶地得知这只橘猫是公的，而上一只我们本来很熟悉的看店母猫早就失踪了，不知道是不是被坏人抱走了。现在这只猫只是继承了名字。我内心默念咖啡店老板您真是个散养猫大师。</p><p>两个老板后来又在合计怎么向房东交涉降低房租价格，看来平时因为疫情的影响，生意的确变差了不少，这次爆发出来的社会面传播估计增加了不少压力，最终连带着要在房租上进行节约。在房租问题上还是咖啡店老板出的头。希望他们交涉顺利。</p><p>周一下午，社区的治安人员进店要求所有餐饮店严格执行进店扫场所码制度，但是他们其实在短短一小时内已经上门通知了三次，而店里正坐着两位从外省回来，健康码上还有“不聚集”标记的顾客。我因此不慎发出了过于明显的嗤笑，那位治安大叔只能露出无奈的神色说自己也没有办法。这个表情让我不禁想起先前有个学生在网上说自己退休的老爸在乡镇协助防疫，结果被人指着鼻子骂的事。这大概就是不同人之间交错的人生吧，谁都无法彻底站在对方的角度为他考虑。</p><p>还没来得及洗干净身子的橘猫在椅子上睡大觉，咖啡店内播放着流行曲目的钢琴版或无人声版，工作环境稍显舒适，不免让人昏昏欲睡，不过好在这两天免去走两百步路的通勤时间，工作续航力<del>显著</del>提高。在周一晚上十点，差不多该打烊的时候，当天最后一点工作结束，我抬起头发现老板出门了，而猫喵喵乱叫了一通，到门口去守望主人。店里的另一个常客居然点了螺蛳粉到店，我们真的是时候离开了。</p><p>这时候咖啡店老板从淅沥小雨中回到店里，他还以为刚才送螺蛳粉的外卖小哥是来取咖啡的外卖的，还疑惑地问这么晚谁点外卖。然后他向我们解释说，韩料店老板请他去那边看世界杯韩国对加纳，可惜韩国落后。丢下这句话，他又跑走了，留下客人看店。</p><p>因为这个插曲，我们又和点螺蛳粉的顾客聊了一会，然后发现我们其实有共同认识的老师，六度人脉又生效了。我们彼此交换了一下情况，认识寒暄了一番后，突然身后不远处的韩料店里，传来了一阵极度兴奋的欢呼声。看来韩国队终于进球了。</p><p>这是一个容易让人感到迷失的时期。</p><p>气候、疫情和经济政治局势已经极大地影响到了住在这里的每一个人。由于学校内的新冠阳性检出可能还在上升期，病毒传播追踪情况也不明朗，谁也不知道明天会发生什么。说不定不知不觉中我也会感染，这可能是我立100个反向flag也救不回来的karma。不管怎么说，在咖啡店的远程工作还要继续，每天的活动路径也会受到逐渐增加的风险区域的挤压，我们生活的区域风险升级也许只是时间问题。</p><p>不过我习惯保持着<strong>焉知非福</strong>的心态过下去，即使能深切体会到身边人的压力与烦恼，也不会过多地沉浸在与他们一样的消极情感中，而是坚持自己的想法。比如说，因为出了一天远门而无法进入学校，本因为工作受影响而感到郁闷的人，我之前就已经劝导过对方焉知非福。更不曾想到周日一觉醒来，情况完全变了，对方从不能上班直接变成不需要上班也不需要被封控，不也挺好吗？</p><p>其实每个人所追求的事物多少有差异，但是从人性的角度上看其实终究是有相通之处，殊途同归。有些人究竟是为了什么才把自己的本性丢弃了呢？说到底，我也没认真想过自己想要什么，但是只要把日常之间夹杂的非日常过出平凡日常的味道，任何小小的经历也令我十分满足。这点收获，在如今的日子里，虽然不能称作幸福，但是完全足够用来挤掉任何可能令我不快的缺憾。</p>]]></content>
    
    
      
      
    <summary type="html">&lt;p&gt;周日早上得知本学院学生出现一例核酸阳性。起初宿舍区一大片临时管控；确定感染者所属单位后，学院就立即被封楼，实验室一些同学被关在楼内，直到当天半夜被转运走隔离。本人作为住校外的迟到惯犯，自然是&lt;strong&gt;又&lt;/strong&gt;一次因为早上不通勤而躲过封楼封校。这也坚定了我上</summary>
      
    
    
    
    
    <category term="生活" scheme="https://nachtzug.xyz/tags/%E7%94%9F%E6%B4%BB/"/>
    
    <category term="日记" scheme="https://nachtzug.xyz/tags/%E6%97%A5%E8%AE%B0/"/>
    
  </entry>
  
  <entry>
    <title>使用Pipedream自动化实现Twitter多媒体数据到Telegram的自动转发</title>
    <link href="https://nachtzug.xyz/2022/10/25/pipedream-serverless-automation-twitter-to-telegram/"/>
    <id>https://nachtzug.xyz/2022/10/25/pipedream-serverless-automation-twitter-to-telegram/</id>
    <published>2022-10-25T09:42:25.000Z</published>
    <updated>2022-10-28T13:53:43.041Z</updated>
    
    <content type="html"><![CDATA[<blockquote><p>开车也要一本正经地开。</p><p>本文的产出：一个新的、包含激烈的NSFWR18二次元插画内容的、自动发布的、支持媒体组消息的<ahref="https://t.me/s/moe2eropic"><i class="fab fa-telegram"></i>Telegram频道</a></p><p>未成年的人、自认为未成年的人或对R-18内容没有兴趣的人，千万不要手贱点进去。</p><p>该频道中的内容均已署名和给出源链接，图片版权归原作者所有。</p></blockquote><h2 id="简介">简介</h2><p><ahref="https://pipedream.com/">Pipedream</a>是一个自动化工具，可以在这篇<ahref="https://www.aafeng.uk/pipedream/">中文文章</a>中进一步了解其特性。</p><p>有了前人的介绍，本文其实无需大书特书，毕竟最终实现的东西并没有什么技术难度，权当记录一下探索的过程。</p><p>该工具的相关竞品中，比较出名的有：</p><ul><li><a href="https://ifttt.com">IFTTT</a></li><li><a href="https://make.powerautomate.com">Microsoft PowerAutomate</a></li><li><a href="https://zapier.com/">Zapier</a></li></ul><p>根据<ahref="https://pipedream.com/docs/">官方文档</a>的介绍，Pipedream的特性包括：</p><ul><li>无服务器运行时和工作流服务</li><li>开源触发器和操作数百个集成应用程序</li><li>一键式OAuth和基于密钥的身份验证，适用于数百个API（直接在代码中使用令牌或与预构建的操作一起使用）</li></ul><p>而且，官方宣称免费用户每个月可以调用10000次（每天333次），每天使用30分钟的计算时间额度。这个限额对于不是太频繁的操作来说，其实挺好的。</p><h2 id="发现pipedream的原因">发现Pipedream的原因</h2><p>首先，IFTTT免费版无法满足我。</p><p>我曾经构建了几个自动化流程，把Twitter上插图画师的作品全自动转发到一个Telegram频道。IFTTT原生接入的Twitter触发器似乎比较<ahref="https://i.imgur.com/AaMMvok.png">简陋📷</a>，获取不到完整的推文数据。于是只能把默认的数据项喂进触发条件中，用来激活TelegramBot转发的行为。转发后的图片消息在Telegram里展示的效果勉强过得去（转发的媒体似乎是低清画质，且因为Twitter搜索的限制，不支持敏感内容），因此频道运行了一段时间，在一年多的时间里积累了上万张图片或图链资源。</p><p>我的IFTTT工作流的触发逻辑就是“我自己构建的Twitter画师列表里，收到<strong>高赞</strong>和<strong>高转发</strong>的图片”，实际上这个机制并不严谨，因为粉丝数目非常大的大触画师随便发张午饭的拉面照片，也可能会被点很多赞。Twitter列表机制有点问题，维护Twitter列表也比较浪费时间，前后攒了接近900个画师，现在很少增加了。</p><p>何况，众所周知IFTTT后来<ahref="https://www.youtube.com/watch?v=4CSZgm1bi64"title="记得这个视频好像被踩了很多">推出了订阅制方案</a>，免费用户无法无限制构建自己的流程，我即使为此付了一小段时间的费用，但是效果依然差强人意。包括其他自动化，比如根据天气情况自动发推、在GoogleSheet里预排期未来十几年的推文等等，也因为IFTTT的限制而停用了。去年我决定把那个图片频道废弃掉，一时间也不再考虑自动化的事。留下的IFTTT自动化只剩下一个从Telegram频道发布内容到Twitter。</p><p>但是今年我又开了个Twitter分号，尽可能多地把我知道的画师全部关注起来。并且在这个帐户上，别的什么都不做，只点赞插画；更让Twitter的推荐算法给我的首页时间线疯狂投喂推荐的作品。因此，半年期间已经攒下了7000个点赞内容。</p><p>Twitter本身想要批量获取图片是比较困难的，想获取原画质图片的话，要么就手动在网址后加参数，要么用自动化脚本、油猴插件代替你的鼠标完成这件事。而在手机上，上述操作显然就没这么方便。点赞操作也不能自动保存图片，而Twitter经常性封禁R-18画师，一旦画师帐户消失，点赞的那些图也会消失，不及时保存的话就只能在第三方图站上检索到。</p><p>我曾想利用IFTTT的RSS触发器，结合<ahref="https://rsshub.app/">RSSHub</a>的功能把我Twitter帐号的点赞时间流给RSS化，然后构建自动化流程，但是试验之后，效果依然差强人意。是时候走出IFTTT这个低门槛的舒适圈了。</p><p>打开Google搜索<code>send a photo with telegram bot api on new item in feed from RSS</code>，正所谓得来全不费功夫，仿佛量身定制一般，Pipedream出现在检索结果第一条。</p><p>点进去研究了一下，发现根本不需要用RSS触发，Pipedream自身便接入了<ahref="https://i.imgur.com/7ZFS0Xq.png">非常完整的TwitterAPI📷</a>，令人觉得起步便有了一些信心。</p><h2 id="个人工作流的构建">个人工作流的构建</h2><p>以下为个人从头构建工作流的步骤记录，如果有人看不懂，可以参照官方的<ahref="https://pipedream.com/apps/twitter/integrations/telegram-bot-api/">Twitter-Telgram整合</a>和<ahref="https://pipedream.com/apps/twitter/triggers/my-liked-tweets">我的Twitter点赞触发</a>中预设好的工作流进行模仿学习，我相信那样上手速度会更快。</p><ol type="1"><li>使用GitHub帐户授权登录（还支持<ahref="https://i.imgur.com/IOiSEpK.png">Google授权登录、邮箱注册📷</a>）</li><li>在面板中<code>new</code>一个workflow以构建工作流</li><li>在第一个<ahref="https://i.imgur.com/zAEPBtr.png">框体📷</a>中选择触发器trigger来开启工作流的第一个步骤step，选择Twitter；也可以继续在这个框中继续增加新的trigger</li><li>在列表中选中选择第一个<a href="https://i.imgur.com/McAPn6w.png">MyLikedTweet📷</a>作为数据源，并绑定Twitter帐户，需要进行一次授权；其实下面还有个操作，是读取其他用户点赞的数据源，可以访问想要观察的其他用户的点赞操作<ul><li>默认的两次读取数据间隔是15分钟，是有考虑到API的请求限制；视需求可以改为30分钟或更久，也可以改成以天、星期、月为周期的定期计划，更支持CRON</li><li>选时区Timezone对于以天、星期、月份为周期定时执行的是有必要的，这样可以让你选择正确的执行时间</li><li>但是我不确定时区服务是否还有点问题，其实这个时区选了也白选，会跳回UTC，可能是临时性问题</li></ul></li><li>出现了触发器的<ahref="https://i.imgur.com/VzlyiuT.png">配置界面📷</a>，可以在其中选择要运行的示例事件；第一次它会自动读取新事件，也可以手动在Twitter上执行一些点赞操作；然后回到触发器界面，点一下<code>Try Now</code>，在列表中把每条被点赞的推文事件显示出来，展示出该推文数据格式化的数组，可以选一个事件来测试</li><li>将鼠标移到数据上方，会出现<code>Copy Path</code>和<code>Copy Value</code>的选择，点击前者，就能自动复制变量字段，这个变量可以用来传递到下面的步骤中，比如<code>steps.trigger.event.extended_entities.media[0].media_url_https</code>正是这条推文的第一个图片媒体的传统链接，也是我需要直接获取的数据</li><li>点击"+"号，add astep继续新建下一步骤；前面能够获取到Twitter的数据，实际上已经万事具备了；简单来说，在这一步骤中可以直接选<ahref="https://pipedream.com/apps/telegram-bot-api">Telegram Bot</a></li><li>要绑定对应的机器人，如果没有Telegram Bot，找<ahref="https://t.me/BotFather"><span class="citation"data-cites="BotFather">@BotFather</span></a>用<code>/newbot</code>命令新建一个，复制好回传的token进行绑定，并且也需要邀请bot以管理员身份加入需要自动发布消息的Telegram频道或群组</li><li>在接下来的Action行为中选择<code>Send a Photo with Telegram Bot API</code>，在<ahref="https://i.imgur.com/9Jd0cgL.png">该步骤📷</a>中，选择需要调用的TelegramBot，并输入对应频道、群组的公开ID或者群号，在数据栏中，将上一步获取的数据传递进去；因为尽可能希望以原图画质进行上传（但是其实存在<ahref="https://core.telegram.org/bots/api#sending-files">文件大小限制</a>，也肯定会被Telegram压缩），所以我在之前获取的<code>&#123;&#123;steps.trigger.event.extended_entities.media[0].media_url_https&#125;&#125;</code>，也就是默认传统图片链接之后加上<code>?name=orig</code>（其实改成<code>:orig</code>也生效），并输入到相应的数据栏中</li><li>这个Action还支持填入Caption图注的数据，并且根据Telegram BotAPI，它支持HTML格式的Caption，更改一下parsemode即可，因此可以为图注加上原图链接、标签等特殊效果</li><li>构建完成后，可以利用事件选择器里的相关推文事件进行几次测试，如果运行正常，那就可以部署了</li></ol><p>初步效果：</p><script async src="https://telegram.org/js/telegram-widget.js?21" data-telegram-post="moe2eropic/579" data-width="100%"></script><h2 id="自定义代码">自定义代码</h2><p>根据上述工作流的思路，可以构建更复杂的工作流，比如推送<ahref="https://yande.re">yande.re</a>的每日/周/月/年热图。当然，yande.re官方似乎只提供了<ahref="https://yande.re/post/atom">post的RSS</a>，或者叫做<ahref="https://yande.re/post/piclens?tags=">piclens</a>，没有popular的RSS.所以这里借助需要借助<a href="https://rsshub.app/">RSSHub</a>来实现。</p><p>举个例子，获取五张最近24小时内的热图，RSS地址是https://rsshub.app/yande.re/post/popular_recent/1d?limit=5，具体请参照RSSHub的文档。</p><p>然后举一反三，在Pipedream中新建一个工作流，触发器是RSS中的新项目<code>New Item in Feed from RSS API</code>，填入上面的RSS地址，设置成每天运行一次。</p><p>接下来，本来也可以进行TelegramBot发图操作的，但是我一时兴起，希望把yande.re图片的标签数据输入到图片消息的图注中，并给每个标签加上"#"符号。展示太多标签也不行，所以当一张图被打了太多标签时，还要随机挑选5个标签。</p><p>TelegramBot的步骤框中只能填入一点点字符串内容，不支持这么复杂的格式化操作，因此在这之前可以增加一步<code>Run custom code</code>来处理触发器的数据，并把数据传递给下一步，在这个工作流中我选择了比较方便的<ahref="https://i.imgur.com/tmGqbvu.png">Python📷</a>。</p><p>代码：</p><figure class="highlight python"><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></pre></td><td class="code"><pre><span class="line"><span class="keyword">import</span> random</span><br><span class="line"><span class="keyword">def</span> <span class="title function_">handler</span>(<span class="params">pd: <span class="string">&quot;pipedream&quot;</span></span>):</span><br><span class="line">  <span class="comment"># Reference data from previous steps</span></span><br><span class="line">  cat = pd.steps[<span class="string">&quot;trigger&quot;</span>][<span class="string">&quot;event&quot;</span>][<span class="string">&quot;categories&quot;</span>]</span><br><span class="line">  <span class="keyword">if</span> <span class="built_in">len</span>(cat) &gt; <span class="number">5</span>:</span><br><span class="line">    cat = random.sample(cat, <span class="number">5</span>)</span><br><span class="line">  tags = <span class="string">&#x27;&#x27;</span></span><br><span class="line">  <span class="keyword">for</span> c <span class="keyword">in</span> cat:</span><br><span class="line">    <span class="keyword">if</span> <span class="string">&#x27;/&#x27;</span> <span class="keyword">in</span> c:</span><br><span class="line">      c = <span class="string">&#x27;_&#x27;</span>.join(c.split(<span class="string">&#x27;/&#x27;</span>))</span><br><span class="line">    tags += <span class="string">&#x27;#&#x27;</span>+c+<span class="string">&#x27; &#x27;</span> </span><br><span class="line">  <span class="comment"># Return data for use in future steps</span></span><br><span class="line">  <span class="keyword">return</span> &#123;<span class="string">&quot;foo&quot;</span>: &#123;<span class="string">&quot;test&quot;</span>:<span class="literal">True</span>&#125;, <span class="string">&#x27;tags&#x27;</span>: tags&#125;</span><br></pre></td></tr></table></figure><p>最后，这段代码返回的tags变量<code>&#123;&#123;steps.python.$return_value.tags&#125;&#125;</code>就是我要传递给TelegramBot的额外数据了。</p><blockquote><p>注意：yande.re的一些图片体积<strong>非常大</strong>，根据上面提到的<ahref="https://core.telegram.org/bots/api#sending-files">文件大小限制</a>，如果选择SendPhoto这个工作流，则执行失败的概率较高。所以，理论上用SendDocument可以支持更大的文件；而直接发文字消息，把链接附上，是最稳定的做法。当然，完全可以在自定义代码里执行一段将图片压缩的操作，当然我没有亲自尝试过，而且这样操作很可能会过多消耗每天的计算时间额度，不推荐。</p></blockquote><h2id="将多张媒体的推文转发到telegram的mediagroup">将多张媒体的推文转发到Telegram的MediaGroup</h2><p>回头审视一开始的Twitter→Telegram工作流。有些推文里带了四张图，而SendPhoto操作只能发一张图，难道没有更好一点的方法，把多图塞进一条消息里吗？</p><p>当然有，那就是<code>Send an Album</code>，又称为<ahref="https://pipedream.com/apps/telegram-bot-api/actions/send-album">MediaGroup</a>，媒体组。 可以在Telegram的<ahref="https://core.telegram.org/bots/api#sendmediagroup">文档</a>找到这一功能的相关参数。</p><p>因此我需要将之前的工作流的最后一步改成<code>Send an Album</code>，随之而来的问题就是：媒体组的API输入参数要求是一段JSON数组，而我输入的推文的图片数量是不固定的（1张到4张，现在甚至可以视频图片混着发），肯定没法直接手动编辑这个数组，所以这里需要再次增加一段自定义代码来处理。</p><p>为媒体组增加Caption参照了<ahref="https://stackoverflow.com/questions/58893142/how-to-send-telegram-mediagroup-with-caption-text">StackOverflow上的一个问答</a>，原来只要在第一张图的位置加上caption和parse_mode就好。</p><p>但是当我写完Python代码后，我发现这个工作流执行几乎每次都会在Python运行这一步出错，导致大量的自动转发失败，但是<strong>偶尔也会成功</strong>。报错内容主要是<code>read ECONNRESET</code>或<code>read ECONNREFUSED</code>.相同思路的代码，代码内容也没有错误，在yande.re的工作流上就从来不会失败。令人百思不得其解，查了一堆资料，都说是服务器关闭了连接，但是我的Python代码仅仅是字符串拼接和构建数组而已，并没有任何网络请求。</p><p>最终，在消耗了大量额度进行测试后，我猜测Pipedream上执行Python还不够稳定……</p><p>而Pipedream对Node.js的支持好像更成熟，因此我随手替换为JavaScript代码。这回终于能100%成功执行了。</p><figure class="highlight javascript"><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><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br><span class="line">51</span><br><span class="line">52</span><br><span class="line">53</span><br><span class="line">54</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment">// To use previous step data, pass the `steps` object to the run() function</span></span><br><span class="line"><span class="keyword">export</span> <span class="keyword">default</span> <span class="title function_">defineComponent</span>(&#123;</span><br><span class="line">    <span class="keyword">async</span> <span class="title function_">run</span>(<span class="params">&#123; steps, $ &#125;</span>) &#123;</span><br><span class="line">      <span class="comment">// Return data to use it in future steps</span></span><br><span class="line">      <span class="keyword">var</span> triggerEvent = steps.<span class="property">trigger</span>.<span class="property">event</span>;</span><br><span class="line">      <span class="keyword">var</span> userName = triggerEvent.<span class="property">user</span>.<span class="property">name</span>;</span><br><span class="line">      <span class="keyword">var</span> screenName = triggerEvent.<span class="property">user</span>.<span class="property">screen_name</span>;</span><br><span class="line">      <span class="keyword">var</span> fullText = triggerEvent.<span class="property">full_text</span>;</span><br><span class="line">      <span class="keyword">var</span> extMedias = triggerEvent.<span class="property">extended_entities</span>.<span class="property">media</span>;</span><br><span class="line">      <span class="keyword">var</span> sauceLink = triggerEvent.<span class="property">url</span>;</span><br><span class="line">      <span class="keyword">var</span> origUrls = [];</span><br><span class="line">      <span class="keyword">var</span> mediaGroup = [];</span><br><span class="line">      <span class="keyword">function</span> <span class="title function_">getVideo</span>(<span class="params">videoVariants</span>) &#123;</span><br><span class="line">        <span class="keyword">var</span> maxRes = <span class="number">0</span>;</span><br><span class="line">        <span class="keyword">for</span> (<span class="keyword">let</span> j = <span class="number">0</span>; j &lt; videoVariants.<span class="property">length</span>; j++) &#123;</span><br><span class="line">            <span class="keyword">if</span> (videoVariants[j].<span class="property">bitrate</span> &gt;= maxRes) &#123;</span><br><span class="line">                <span class="keyword">var</span> targetUrl = videoVariants[j].<span class="property">url</span>;</span><br><span class="line">                maxRes = videoVariants[j].<span class="property">bitrate</span>;</span><br><span class="line">            &#125;</span><br><span class="line">        &#125;</span><br><span class="line">        <span class="keyword">return</span> targetUrl;</span><br><span class="line">      &#125;</span><br><span class="line">      <span class="keyword">for</span> (<span class="keyword">let</span> i = <span class="number">0</span>; i &lt; extMedias.<span class="property">length</span>; i++) &#123;</span><br><span class="line">          <span class="keyword">var</span> mediaType = extMedias[i][<span class="string">&#x27;type&#x27;</span>];</span><br><span class="line">          <span class="keyword">switch</span> (mediaType) &#123;</span><br><span class="line">            <span class="keyword">case</span> <span class="string">&#x27;video&#x27;</span>:</span><br><span class="line">                origUrls[i] = <span class="title function_">getVideo</span>(extMedias[i].<span class="property">video_info</span>.<span class="property">variants</span>)</span><br><span class="line">                <span class="keyword">break</span>;</span><br><span class="line">            <span class="keyword">case</span> <span class="string">&#x27;animated_gif&#x27;</span>:</span><br><span class="line">                origUrls[i] = <span class="title function_">getVideo</span>(extMedias[i].<span class="property">video_info</span>.<span class="property">variants</span>)</span><br><span class="line">                mediaType = <span class="string">&#x27;video&#x27;</span>;</span><br><span class="line">                <span class="keyword">break</span>;</span><br><span class="line">            <span class="attr">default</span>:</span><br><span class="line">                origUrls[i] = extMedias[i][<span class="string">&#x27;media_url_https&#x27;</span>]+<span class="string">&#x27;?name=orig&#x27;</span>;</span><br><span class="line">                <span class="keyword">break</span>;</span><br><span class="line">          &#125;</span><br><span class="line">          mediaGroup[i] = &#123;</span><br><span class="line">              <span class="string">&quot;type&quot;</span>: mediaType,</span><br><span class="line">              <span class="string">&quot;media&quot;</span>: origUrls[i]</span><br><span class="line">          &#125;;</span><br><span class="line">      &#125;;</span><br><span class="line">      <span class="keyword">var</span> mediaCaption = <span class="string">&quot;&lt;b&gt;&quot;</span> + userName + <span class="string">&quot;&lt;/b&gt; ( #&quot;</span> + screenName + <span class="string">&quot; ) &quot;</span> + fullText + <span class="string">&quot;\n\n&lt;a href=&#x27;&quot;</span>+ sauceLink +<span class="string">&quot;&#x27;&gt;⚡Sauce&lt;/a&gt;&quot;</span> + <span class="string">&quot; | Load Original: &quot;</span>;</span><br><span class="line">      <span class="keyword">var</span> imgSerial = <span class="string">&#x27;&#x27;</span>;</span><br><span class="line">      <span class="keyword">for</span> (<span class="keyword">let</span> i = <span class="number">0</span>; i &lt; origUrls.<span class="property">length</span>; i++) &#123;</span><br><span class="line">          <span class="keyword">var</span> imgNum = (i+<span class="number">1</span>).<span class="title function_">toString</span>();</span><br><span class="line">          imgSerial = imgSerial + <span class="string">&quot;&lt;a href=&#x27;&quot;</span>+origUrls[i]+<span class="string">&quot;&#x27;&gt;▶Media_&quot;</span>+ imgNum +<span class="string">&quot;&lt;/a&gt; &quot;</span>;</span><br><span class="line">      &#125;;</span><br><span class="line">      mediaCaption += imgSerial;</span><br><span class="line">      mediaGroup[<span class="number">0</span>][<span class="string">&#x27;caption&#x27;</span>] = mediaCaption;</span><br><span class="line">      mediaGroup[<span class="number">0</span>][<span class="string">&#x27;parse_mode&#x27;</span>] = <span class="string">&quot;html&quot;</span>;</span><br><span class="line">      </span><br><span class="line">      <span class="keyword">return</span> &#123;<span class="string">&quot;mediaGroup&quot;</span>: mediaGroup&#125;;</span><br><span class="line">    &#125;,</span><br><span class="line">  &#125;)</span><br></pre></td></tr></table></figure><p>最终返回的album变量<code>&#123;&#123;steps.program.$return_value.mediaGroup&#125;&#125;</code>就是包含了图片和图注信息的JSON数组，可以直接送给<ahref="https://i.imgur.com/Vsjh6zA.png">下一步动作📷</a>。</p><p>最终效果：</p><script async src="https://telegram.org/js/telegram-widget.js?21" data-telegram-post="moe2eropic/1310" data-width="100%"></script><h2 id="pipedream的配额限制">Pipedream的配额限制</h2><p>免费用户每个月可以调用10000次（每天333次），每天使用30分钟的计算时间额度。</p><p>在帐户的<ahref="https://pipedream.com/settings/billing">账单界面</a>会显示当天的调用次数以及计算时间的<ahref="https://i.imgur.com/gpO7U7D.png">消耗量📷</a>。</p><p>在每个工作流的设置界面里，可以<ahref="https://i.imgur.com/P96VrQr.png">人为调整📷</a>默认的执行频率和超时时间，以达到防止超过第三方API请求频率限制、节省计算调用预算或增加计算消耗的目的。</p><p>每天的额度会在UTC时间的0点重置，对于东八区来说还是挺友好的，毕竟在晚上提前把额度用完了，睡一觉醒来就正好重置。我在最初几天高频率操作，还是很容易被限额，今后只要正常操作的话，作为免费的开发者套餐，这样的额度还是够用的。</p><p>如果不想被限额，官方提供了每月19美元的Pro套餐（几乎相当于一个Netflix的UHD大会员），每月99美元的团队套餐，以及自由定价的企业套餐。看了一下，如果有人有极为强烈的个人需求或者商业需求，可以考虑一下他家的套餐。也许是因为他家好像还不是很有名，以后要是用户变得更多了，后续的资费和服务会如何发生变化，我暂且持观望态度。</p><p>因此我的建议依然是不付费，以及用其他的自动化工具分摊自己的自动化需求。</p><h2 id="展望">展望</h2><p>我构建的Twitter→Telegram转发的工作流还不算全自动化，因为每个事件都是我在Twitter上手动点赞触发的，当然，这是为了人为筛选图片质量，确保无关的图片不要混进来。</p><p>理论上，全自动点赞收图机可以这么设置：</p><ul><li>触发器：定时获取某用户、某列表的推文（如日本画师列表、国际媒体列表）</li><li>动作：判断推文的数据中是否包含图片（或者其他你想要的数据）</li><li>动作：统计推文的转推数和点赞数，如果达到阈值，则继续执行（画师高赞图一般就是插画作品）</li><li>动作：顺便点个赞或转发（可选操作）</li><li>动作：将想要的推文数据转发到Telegram</li></ul><p>其实思路和我当初用IFTTT一致，而Pipedream的优点在于这个过程可以高度自定义，执行步骤也多。</p><p>或许有人觉得，这么点任务，搞个Telegram Bot配合TwitterAPI在服务器上运行就好了。</p><p>但是这些现成的自动化工具的卖点正是无服务器，而且整合的应用接口越多，其所能做的任务就比一台服务器上自己辛苦配置的工具能做的要更丰富。因此这些工具还是有值得一试的价值的。未来也可以继续使用这类工具去自动捕捉我所关注的信息资源，趁着互联网还活着的时候，尝试一下也没有什么损失吧。</p>]]></content>
    
    
      
      
    <summary type="html">&lt;blockquote&gt;
&lt;p&gt;开车也要一本正经地开。&lt;/p&gt;
&lt;p&gt;本文的产出：一个新的、包含激烈的NSFW
R18二次元插画内容的、自动发布的、支持媒体组消息的&lt;a
href=&quot;https://t.me/s/moe2eropic&quot;&gt;&lt;i class=&quot;fab fa-t</summary>
      
    
    
    
    
    <category term="互联网" scheme="https://nachtzug.xyz/tags/%E4%BA%92%E8%81%94%E7%BD%91/"/>
    
    <category term="工具" scheme="https://nachtzug.xyz/tags/%E5%B7%A5%E5%85%B7/"/>
    
    <category term="自动化" scheme="https://nachtzug.xyz/tags/%E8%87%AA%E5%8A%A8%E5%8C%96/"/>
    
  </entry>
  
  <entry>
    <title>无所胃</title>
    <link href="https://nachtzug.xyz/2022/07/09/this-is-called-peptic-ulcer-disease/"/>
    <id>https://nachtzug.xyz/2022/07/09/this-is-called-peptic-ulcer-disease/</id>
    <published>2022-07-09T14:22:22.000Z</published>
    <updated>2022-07-14T14:55:25.664Z</updated>
    
    <content type="html"><![CDATA[<blockquote><p>警告：本文含有描述排泄物的文字。</p></blockquote><p>要说现在的我与之前的我有什么不一样，那就是，从不被发现就不算生病的亚健康变成了真正的病人。</p><p>确诊了胃溃疡，告别了生活习惯的荒唐，和美食的邂逅也泡了汤。</p><h2 id="就诊前">就诊前</h2><p>6月26日晚10点第一次发现异常。坐完马桶的我这辈子第一次意识到到大便的颜色黑得有些过分，色号可能介于煤球和黑咖啡之间。</p><p>尽管以前也偶然注意到类似的现象，彼时基本可以断定排便前吃过黑色的东西。现在回想起来，以前的判断可能过于轻率了吧？</p><p>马上Google了一通，很多寻医问药的网站都指出了同一个可能：”黑便=消化道出血“。只是说有可能，但对我来说怎么可能呢？怀着坚强的侥幸心理，我慢悠悠地走了回去。</p><p>正值出梅的猛暑，就算在夜里还是走出一身汗，燥热感冲击着躯干。</p><p>权衡了一下消化道出血死和热死的难受程度，然后决定去便利店买一根雪糕和一罐ほろよい冷却一下。</p><p>我并非没有考虑风险。出了事的话，这就是最后一根雪糕，还可以怪罪到酒精头上。</p><p>于是晚上大概确实是出事了。</p><p>洗完澡，睡前又排了一次黑便，并且这次更加严重，完全符合黑色柏油样，并且不成形。用手机拍了几张照片准备用来咨询医生。</p><p>站起身时发生了比往常还要严重的体位性低血压，不得不蹲下缓缓。在密闭的卫生间中浑身冒汗，但是走出卫生间拿毛巾擦身子的话又要顶着一身汗去吹空调的冷风，我的头顶似乎有一个不断缩短的血条。</p><p>几分钟后状态有所好转，我也没有任何胃痛的感觉。晚上急诊恐怕看不了什么，连胃镜都做不了。但是如果不去医院，我预估最大的风险可能是睡觉的时候持续失血发生休克。可毕竟折腾到了半夜，实在困了，最终还是决定先睡觉观察情况。</p><p>一睡就是九个多小时，醒来时已经接近6月27日的中午。又排了一次典型的黑便，意识到得赶紧去医院。早上还收到了工作相关的邮件，但那时候已经完全顾不上工作，匆匆把事情交代给了别人，预约上当天的消化内科，打了车就奔向村里最好的医院。</p><h2 id="就诊">就诊</h2><p>大医院人满为患，好在我有提前预约，等号排队的时间在出租车程中就消耗掉了，没过多久就叫了我的号。</p><p>给我看病的医生是个冷酷的美女，看不出年龄是比我大还是小。她虽然一开始持怀疑态度，但是通过我留下的照片，确认了黑便状况属实，并且询问了我神志是否清楚。我确认我这段时间从来没晕过，即使是体位性低血压我也没失去意识。</p><p>为了进一步描述清楚自身状态，我还告诉医生我的心率已经升到到110以上。感觉医生的眉毛似乎都快挑到天上了。</p><p>然后医生给我开了血检（血常规+CRP+凝血谱）和粪检（粪常规+隐血）。这辈子第一次要做粪检，有一种很神圣的感觉。或者可能只是我回归了看阿拉蕾的初心吧。</p><p>抽了血，去急诊楼做粪检，因为之前在别的楼层瞥到标志，我以为我也有专用厕所可以用。结果急诊的医生随手指了最近的厕所，让我看一下没有人就进去。</p><p>大概是上一个使用者按冲水开关过猛，我进厕所时，坑位在汨汨地漏水，实在不像是可以满足不污染样本的条件。</p><p>于是我一直等到水停下来才开始操作，用那个精巧的瓶盖带挖勺的粪检瓶采集了自己的粪便。总之全过程干净卫生。</p><p>检测结果都出来了。血红蛋白、红细胞压积偏低，以及大便隐血。这个结果连我都知道是怎么回事了，于是我带着报告找医生复查宣判。</p><p>医生说，这个毫无疑问是消化道内有出血状况，一般是上消化道出血，建议立即做胃镜。她问我有没有48小时核酸阴性证明。</p><p>我：没有。</p><p>医生：你没有？！</p><p>她咄咄逼人，仿佛下一秒就要怒拍桌子让我跪下。但是没有的东西就是没有，何况已经是七天做一次核酸的的时代了，我只是刚刚超过了48小时而已。</p><p>最后的方案是预约第二天早上的普通胃镜，然后就是一些谨遵医嘱的事宜。此时我的内心反而十分平静，体能状态也渐渐恢复。走出诊室，朝预约胃镜的方向慢慢前进，我一边晃悠一边用手机和人聊天告知自己的情况。</p><p>不过在我仍然在晃悠，还未走到胃镜预约分诊台的时候，医生似乎因为什么事情而走出来了，正好碰见了我。</p><p>她问我有没有预约上胃镜，一听没有，她直接让我快点跟着她走，还说晚了都不一定能约上。被如此关照，我忍不住道了歉，毕竟普通门诊必然忙得要死，实在是不想给她添麻烦。</p><p>医生走到分诊台，直接跟分诊医生打招呼，说让我尽早做上第二天的胃镜，于是我顺利地填好了相关材料，领到了说明。此时内心有一种被天使帮助的感动。</p><p>材料上只提示要自带干毛巾，似乎没看到别的有意义的说明了。作为胃镜初心者，我对此真的有点忐忑不安。</p><p>取了胃镜需要用到的两种药，二甲硅油+达己苏。晚上住在医院旁边的酒店，确保得到充分休息。上午的胃镜，因此前一晚十点后就得断食空腹。</p><h2 id="胃镜">胃镜</h2><p>第二天，去内镜中心，签到，付钱挂上内镜医生的号，进准备室等待。</p><p>身边大多是年长的人，基本都在往手臂中输液注入药品，还不断有些被移动病床推出来的人，这些都是做无痛胃镜的病人。无痛胃镜需要全身麻醉，所以需要有人陪同来做。</p><p>干净明亮的内镜中心十分忙碌，似乎并不是约了几点就能在指定时间做上。也有声称七点就来等到现在都没做上的人在大声抱怨（实际上根据他输液量和坐下来的时间判断，估计是很晚才进准备室）。这时候就有一个手拿文件的医生过来安抚他。</p><p>看这个负责安抚的医生，好像动画公司里现场的制作进行。</p><p>终于轮到我了，医生指导我把前一天取的两种药喝下去准备。先喝白色的二甲硅油，消除胃里的泡沫，再喝达己苏，麻醉喉咙消除反射。大概就是这么个顺序，听说也有只喝一种药的。如果有人要做胃镜的话还是听医生的。</p><p>走入内镜室，医生让我除下身上多余物品，包括眼镜，松开裤腰，左侧卧于床上，头枕在自带的干毛巾上，毛巾下垫着纸。</p><p>医生给我一个牙垫咬住，并保持头部微曲的姿势，一切就准备就绪了。医生说：很快就好，坚持一下。</p><p>我并不感到害怕，但也没有任何心理准备，因为：我根本不知道要做什么，也不知道要坚持什么……</p><p>一根手指粗的缆线通过嘴巴探入食道，大概是麻醉的作用，我并不能判断这玩意在我体内的探进深度。</p><p>起初还算好，但是很快我就发生了咽反射，干呕起来，引起了医生焦虑和不耐烦的哀叹，诸如“这样根本看不清”、“大概连幽门都下不去”、“你不要忍着”等等。</p><p>等一下，不要忍着是什么意思？我可是第做胃镜，啥都不知道啊，不忍着岂不是呕得更厉害。</p><p>然后不知是护士还是助理医师帮我解了围，帮助我双手交握，并指导我坚持用鼻子吸气，嘴巴呼气，放轻松。我这才意识到刚才我并没有很好地在呼吸，而出现咽反射时为了抵抗憋着气，反而无法抑制干呕。</p><p>如何呼吸这种事，医生居然一开始没告诉我。此时脑海中已经完完全全冒出“你个瘪三算计我”的台词，可惜嘴里咬着东西讲不出口，况且也不文明。</p><p>当然，我也没有明确表示我是第一次做胃镜，也许本来应该说清楚的。</p><p>学成了胃之呼吸以后，身体确实平静了下来，咽反射也停止了。医生说，就趁现在赶紧做掉吧。因为有认识相关的医学研究人员，我比较清楚胃肠镜操作为了把消化道内的景像拍清楚，是必须要走一个过程，所以听到这句话的时候，我猜测大概是打算趁反应不剧烈的时候把关键的病灶拍到就算完事了吧。</p><p>“这么大一个溃疡”，医生感叹道。我只得认命。</p><p>可惜，因为一开始的干呕，涕泗横流，鼻腔里塞着分泌物，我逐渐失去控制胃之呼吸的体力，呼吸又紊乱起来，咽反射也随之而来。医生又重复哀叹起来。</p><p>最终，精神上比肉体更痛苦的普通胃镜做完了，我清理好自己的面部，把沾着口水和鼻咽分泌物的毛巾扔进垃圾袋。</p><p>医生的临别话语是：下次记得预约无痛胃镜吧。</p><p>额，下次我会练好胃之呼吸的，做普通胃镜吧。</p><h2 id="诊断">诊断</h2><p>做胃镜前，手背上留了个条形码贴纸，用机器扫码取了胃镜报告。</p><p>预约过当天的消化内科，于是去找了医生。医生指着报告说胃窦处有一个0.4cm * 0.6cm的溃疡，就是出血的原因。另外还指出十二指肠处有一个溃疡愈合留下的疤痕组织。</p><p>可怜我的胃，大概早就有问题了。话又说回来，十二指肠也拍得比较清楚，说明胃镜成功通过幽门了，这次胃镜不算失败。医生也指出胃镜显示出可能存在幽门螺旋杆菌（HP）感染，要等五天后的病理报告正式确认。</p><p>于是医生给我开了两种药：雷贝拉唑钠肠溶片和硫糖铝口服混悬液，都是饭前吃。</p><p>做完胃镜两小时内不能进食，之后先喝温水，无不适的话可以吃流食，第二天恢复正常饮食，避免刺激。</p><p>五天后，病理报告出来了，胃窦粘膜慢性炎+幽门螺旋杆菌感染，医生让我继续服药，吃两个月，药不够了自己去开，然后停药两周后再来治疗，除去幽门螺旋杆菌。并要我一辈子注意饮食，三餐规律，细嚼慢咽。</p><h2 id="写在最后">写在最后</h2><p>这就是两个星期以来我经历的个人健康最大危机。随着年龄的增长，类似的毛病肯定会接二连三地杀过来，如果不及时准备的话，下次也可能像这次一样碰到问题。不过胃溃疡还是很常见的，其他方面健康的人可以不用紧张。</p><p>自己的身体自己负责，落到这步田地也跟我过去几年高强度搬砖，并且最后这一两年作息严重紊乱有关，尽管睡眠勉强维持在睡够的水平，不过胃先受不了了。</p><p>刚做完胃镜，就要搬家，好在并不麻烦，而且搬家后的生活也一下子变得舒服许多，趁现在稍微回归一下正常的节奏也不错。特别是吃饭细嚼慢咽似乎还有助于减少卡路里摄入，当然重点还是吃一顿饭时能看的动画时长增加了。</p><p>消化道出血的事情并没有告诉父母，我只是暗中提醒他们我们一家都已经是HP感染者，还是要注意护理和及时检查的。但没想到他俩都觉得没太大关系，毕竟我爸是抗菌治疗失败的，而我妈现在并没有表现出症状。还是以后再提醒吧。</p><p>话说回来，我该什么时候告诉医生和我的相关亲朋，我小学的时候大概也许可能不小心把一根不尖的铁钉吞了下去，当时有点害怕，也从来没有确认到底有没有顺利排出异物，但是直到今天，好像什么事也没有发生呢？</p>]]></content>
    
    
      
      
    <summary type="html">&lt;blockquote&gt;
&lt;p&gt;警告：本文含有描述排泄物的文字。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;要说现在的我与之前的我有什么不一样，那就是，从不被发现就不算生病的亚健康变成了真正的病人。&lt;/p&gt;
&lt;p&gt;确诊了胃溃疡，告别了生活习惯的荒唐，和美食的邂逅也泡了汤。</summary>
      
    
    
    
    
    <category term="日记" scheme="https://nachtzug.xyz/tags/%E6%97%A5%E8%AE%B0/"/>
    
  </entry>
  
  <entry>
    <title>复健</title>
    <link href="https://nachtzug.xyz/2022/06/01/2022-06-01-rehabilitation/"/>
    <id>https://nachtzug.xyz/2022/06/01/2022-06-01-rehabilitation/</id>
    <published>2022-06-01T14:12:24.000Z</published>
    <updated>2022-06-01T14:28:16.888Z</updated>
    
    <content type="html"><![CDATA[<p>形式上看，上海算是解封了。虽然我不在上海，但是还是保持步调一致地再开博客以示纪念。写几个字，权当复健，免得手和脑子都变得笨拙。</p><p>半夜没睡，从2点45分开始硬是撑着看完本届纳达尔打赢德约的四分之一决赛，等到比赛结束，天已大亮，于是补了三四个小时的觉。真是一个难忘的儿童节。</p><p>梅雨季的闷热不断消磨着出门的动力，洗了澡才出门。吃着全家的便当，冷柜里丰富的食物种类也侧面展示着上海的复苏。活着就好。</p><p>这两个月的片单，想得起来的记一笔：</p><ul><li>春季新番动画多部</li><li>新蝙蝠侠</li><li>月光骑士</li><li>花园里的吸血鬼</li><li>亮剑</li><li>成龙历险记</li><li>达伊的大冒险</li><li>圣诞之吻</li><li>爱、死亡和机器人</li><li>请回答1988</li><li>史前星球</li><li>欧比旺</li></ul><p>愚人节时对博客进行了一部分调整，主要是把旧博文先转移到一个主页看不到的地方，再把博客index设置成404页面。今天再次更新，就是为了把原来的博文挑选一些出来重新展示，也顺便把index恢复成正常的主页了。</p><p>NexT使用jsDelivr作为默认的CDN服务提供商。由于该CDN已经被<ahref="https://www.v2ex.com/t/849894">DNS污染</a>，今天才发现发现有些FontAwesome图标无法正常显示。有些人的博客干脆整个页面都不显示……</p><p>查询文本，定位到cdn设置在<code>_config.next.yml</code>中，改成备选的unpkg即可。</p><p>春季新番动画主题曲大赛的冠军估计是《杜鹃的婚约》的OP和ED吧。</p><center><iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/XWB5xEzIfzo" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe></center><center><iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/0llzTiAMYY8" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe></center>]]></content>
    
    
      
      
    <summary type="html">&lt;p&gt;形式上看，上海算是解封了。虽然我不在上海，但是还是保持步调一致地再开博客以示纪念。写几个字，权当复健，免得手和脑子都变得笨拙。&lt;/p&gt;
&lt;p&gt;半夜没睡，从2点45分开始硬是撑着看完本届纳达尔打赢德约的四分之一决赛，等到比赛结束，天已大亮，于是补了三四个小时的觉。真是一个难</summary>
      
    
    
    
    
    <category term="日记" scheme="https://nachtzug.xyz/tags/%E6%97%A5%E8%AE%B0/"/>
    
  </entry>
  
  <entry>
    <title>不过是一年又结束了的2020年</title>
    <link href="https://nachtzug.xyz/2020/12/31/2020-review/"/>
    <id>https://nachtzug.xyz/2020/12/31/2020-review/</id>
    <published>2020-12-31T08:18:18.000Z</published>
    <updated>2020-12-31T08:18:18.618Z</updated>
    
    <content type="html"><![CDATA[<blockquote><p>泣かないで これで終わりじゃない</p><p>ただ時が過ぎて消えただけ</p></blockquote><p><strong>2020就要过去这件事，有些缺乏现实感。</strong></p><p>因为各种各样的原因，今年仿佛发生了许多重要的事件，却没能让时间流淌得慢一些，就像一场有着丰富镜头剪辑的垃圾爆米花电影不知不觉到了终幕。</p><p>今年跨越了人生的10000个地球日，时光转瞬即逝，不知道接下来还有多少个10000天。愈发感受时间的珍贵，希望明年我能更好地利用时间做更多有意义的事，取得较好的突破。</p><p>若从过往的只言片语中复盘过去365天度过的日常，我相信自己能勉强堆出几大段话来。可惜这样的任务前两年我做了不少，今年却毫无兴致。我在内心承认自己的普通，甚至过于平凡，毕竟连着三年过着一成不变的生活，对于我追求非日常的未来的信心的打击还是很大的。</p><p>尽管如此，我还是不得不在寒风凛冽的晴朗冬日中对自己的一年做出总结。</p><h2 id="健康">健康</h2><p>仔细想想，年初那三个月的居家自肃对身心造成的损失在剩下的九个月里才慢慢显现出来，当时完全没有预料到这一切，甚至于在最后两个月才逐渐发现问题所在，我实在是缺乏远见。</p><p>一言以蔽之，长期困在笼子里的动物容易产生刻板行为。而我就是不小心掉进动物园的受害者之一。其结果就是我比以前更敏锐地意识到自己的一些无意识习惯，它们在毫无必要地消耗我的精神，而我却无法摆脱。</p><p>这算是借口，人与野兽不同；但无法否认现象存在，毕竟人也确实是动物。我也不想怪罪爆发至今仍没有好转迹象的新型冠状病毒肺炎大流行，毕竟比起八千万受苦于冠病的人们，我是个活蹦乱跳的幸运儿，掌握着自己人生的主导权，所有的事情我都应该为自己负责，而不能归咎于外因。选择已经做出，时间也一去不复返。</p><p>全年几乎没做梦，要么就是没有一场梦能记录下来。大概是因为本年我的睡眠时间一直勉强维持在造成生命危险的基准线6小时左右，每天入睡前我都想好了怎么在死后自动删除硬盘里的文件和我在网上留下的足迹。</p><p>托口罩的福，全年都未出现呼吸道感染的症状，鼻腔也通透了许多。生活中认识的人也没有感染新冠的情况。物理防御万岁，身体健康比什么都重要。</p><h2 id="成长">成长</h2><p>学到的新知识也很琐碎，无法梳理出明确的结构，倒不如说我居然还有老本可以吃，不至于退步，实在是谢天谢地。</p><p>工作很忙，但是没有取得明显的进步，甚至可以大言不惭地说几乎在原地踏步。而各种兴趣驱动的事务，因为太忙，以及上面提到的压力，无法爽快地进行。单说故事创作，发出来的只有区区三篇短文，更多的稿子还达不到完成条件，就停留在草稿箱里无暇顾及。以至于我现在写下这些文字时都在疑惑浪费时间做年终总结的意义何在，甚至不如再多干点正事或者多吃一顿咖喱饭。</p><h2 id="经济">经济</h2><p>如之前的博文所写，今年七月之前我删除了一堆订阅服务，好把开支节省下来用于其他消费，还能减少不必要的时间浪费。一些暴雷事件与我无缘，最近的也仅仅是是擦肩而过，所以我算是运气不错。但这些事加深了我对订阅制以及数字授权的不信任感，花了钱收获的东西仍然不属于我，那我花钱有什么意义？所以2020年的一个重要决定是：对于任何虚拟商品，除非是真爱，否则首选白嫖，找不到白嫖资源再考虑买断，无法买断的再视情况订阅。</p><p>总结一下，虽然自己衣食无忧，但有些地方变得比以前抠门了。</p><h2 id="休闲">休闲</h2><p>如果以“可防可控”为世界变化的分水岭（当天我意识到情况不妙开始戴口罩了），在那之前看的最后一部动画大概是《誓言的终章》。那时候的心情也许就像2019年6月知道久美子三年级篇制作决定时，一无所知地期待未来吧。实际上，经过去年那场惨案的锻炼，今年我受任何事件触动的阈值都很高，丝毫不感到大惊小怪。</p><p>年底看的最后一部完结动画是《橙路》，这部是80年代的作品，众人对它的评价很高。今年原作者松本泉病逝，所以截至今年这部作品的部分相关人员包括原作者、女主声优、一些参与过系列动画的业者因为各种原因都已经去世了。不由得感慨一番。</p><p>与上面的经济因素相关，尽管全球流媒体平台不断壮大，动画的内容也越来越多，我却逆潮流而行，看动画和电影的主要方式又回归了BT。看过最好的剧场版是《剧场版白箱》，整个故事稍显虎头蛇尾，节奏也比较局促，但光是喵森吃咖喱这段也能加分了。我觉得相比这一部剧场版，如果把武藏野之前的时光河马失败和后续制作SIVA剧场版的历程做成一季动画，也许能延续TV的好评。</p><p>今年网球四大满贯赛事缺了一项，也没有奥运会。这种情况在我关注网球十几年来还是头一回，不得不适应。今年费德勒早早退出赛季，在他回归之前我对网球没什么盼头。希望明年有机会看到东京奥运会成功举办。</p><p>新游戏方面，今年玩过一部《丸子与银河龙》，是一部7小时的电波系短篇视觉小说，CG和动画都很棒，并且由爽快而美好的故事剧情。玩了《一生推不如一生恋》，马马虎虎。下半年还通过夏篇入坑《flowers》系列，由于没什么时间，打算过阵子再好好体验。补票了战地3、4，重温游戏里的2020年，再次感叹单机剧情对现实状况的神预测。入坑了ForzaHorizon 4，沉迷拍照模式。</p><h2 id="人际">人际</h2><p>因为要保持社交距离，今年基本没去什么地方，所以也没和太多人有来往，安静一点倒也不错。</p><p>身为黑蜥蜴星人，我和地球人还是有隔阂。人际关系方面还是像以前一样没有去主动拓展圈子，但是在与关系较远的人相处态度上变得更柔和了一些。</p><p>今年没法在线下进行高中毕业后最重要的一次周年聚会，于是通过线上会议与全球各地的同学重新联系。后来发生的一件事情却给这不平凡的一年再添一笔，虽然是他人的事情，但是此事对于个人的震撼并不小。高中毕业恋爱至今，看起来几乎在谈婚论嫁阶段的一对同学，因为男方劈腿多人的行径由被小三的女方主动暴露而分手。事情就发生在我身边——男方七年同学，女方更是我十三年的同学，两人和我交情都不错。这样的案例却不是我听说过的第一起，更早之前我还认识另外一位女性受害者，事件与此如出一辙。因此这件事发生时，此前的心理准备抵消了我的愤怒。</p><h2 id="总结">总结</h2><p>我们所在的时间线应该是主线世界，而不是高维智慧生物创建的实验性分支。如果时间旅行真的能被发明出来，我希望未来人带着解决新冠以及优化赛博朋克2077的方案回到现在。至今没有奇迹发生，也就是说不可能有什么时间旅行，甚至人类灭绝前也不一定能看到新冠大流行结束，2077顺利优化。</p><p>虽然还有很多话要说，但是连续几年翻来覆去真的没有什么意思，总结一下，就这些吧。</p><p>对于逝去的人们：你们曾经努力生活过，辛苦了。祝福爱你们的和你们爱过的人能怀着对你们的思念，并承载着与你们相处的记忆，过完幸福的人生。</p><p>对还活着的人类：虽然世界变样了，人也随时会死，但是不管是好事还是坏事都会平等地降临，请遵从自己的意愿，怀抱希望好好活着。</p><p>对于自己有什么期望：坚持做“只问是非，不计利害”的人；多运动保持健康；吃无限碗咖喱；多学几样超能力；不老不死不灭。</p>]]></content>
    
    
      
      
    <summary type="html">&lt;blockquote&gt;
&lt;p&gt;泣かないで これで終わりじゃない&lt;/p&gt;
&lt;p&gt;ただ時が過ぎて消えただけ&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;strong&gt;2020就要过去这件事，有些缺乏现实感。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;因为各种各样的原因，今年仿佛发生</summary>
      
    
    
    
    
    <category term="生活" scheme="https://nachtzug.xyz/tags/%E7%94%9F%E6%B4%BB/"/>
    
  </entry>
  
  <entry>
    <title>Niagara Launcher + Diffuse + 流体手势导航，组成清爽简约又美观的沉浸式桌面</title>
    <link href="https://nachtzug.xyz/2020/11/30/android-niagara-launcher/"/>
    <id>https://nachtzug.xyz/2020/11/30/android-niagara-launcher/</id>
    <published>2020-11-30T11:19:11.000Z</published>
    <updated>2020-11-30T11:19:11.432Z</updated>
    
    <content type="html"><![CDATA[<p>索尼 Xperia 手机自带的启动器已经彻底拥抱原生 Android，而在过去使用了Nova Launcher, Lawnchair和微软桌面后，我却终于对“搜索栏+Dock+网格排布图标”的类 Pixel式桌面布局产生了视觉疲劳。</p><p>iOS 14 更新带来了“应用抽屉” App资源库，也支持了桌面小部件，总算给我眼前一亮的感觉。当然与其说苹果终于开窍学习Android，我更愿意认为 iOS 14 的视觉感受更像当年的 Windows Phone.</p><p>受这种审美的影响，购入 Xperia 10 II后，我总是没法找到视觉和实用的平衡。何况索尼从 XZ3 起便不再支持 Xperia主题，而我之前付费下载的 XPERIA™ - DUALSHOCK™4 Theme也就无法继续兼容手里的新设备，我连一点点美化的心思都动不了，<strong>索尼罪大滔天</strong>。</p><p>因此为了找回这种平衡，我把目光转向了其他没试过的第三方启动器上。首选就是曾经关注过的Niagara Launcher.</p><h2 id="niagara-launcher">Niagara Launcher</h2><p>Niagara Launcher 在 Google Play商店仍是抢先体验状态，和我第一次见它时并没有变化，这代表开发者还没有正式发布的打算。不过事到如今，这并不妨碍我试用它。</p><p>顾名思义，与尼亚加拉瀑布同名的它主打的是瀑布流的主屏幕体验<ahref="#fn1" class="footnote-ref" id="fnref1"role="doc-noteref"><sup>1</sup></a>，设置完成后，屏幕上只有自带的时间·日程·天气微件<ahref="#fn2" class="footnote-ref" id="fnref2"role="doc-noteref"><sup>2</sup></a>（当播放音乐时还会显示出媒体微件）和至多8个——当然更多也没关系，只是官方推荐至多8个——的常用应用列表（收藏夹）。无独有偶，iOS中的 “Siri建议”组件也会用户动态列出基于使用情况的8个app，我就常用这个桌面组件代替钉死在桌面上的app图标。总之，这个模式非常符合我的个人习惯。</p><p>瀑布流的另一个特色是：只要你触摸或滑动屏幕左右任意一侧，就能唤出按照首字母排列的全部应用列表<ahref="#fn3" class="footnote-ref" id="fnref3"role="doc-noteref"><sup>3</sup></a>，上下滑动即可快速检索应用<ahref="#fn4" class="footnote-ref" id="fnref4"role="doc-noteref"><sup>4</sup></a>，也可以在搜索框中找到想要打开的应用。应用排序已经于2019年<ahref="https://twitter.com/NiagaraLauncher/status/1189458055408295936">支持中文</a>。</p><p>值得注意的是，因为其桌面布局，应用的通知会直接显示在图标和文字的右侧空间，更加便捷直观。启动器也结合了手势操作，在一个应用上向右滑动可以展开快捷操作抽屉，并能预览和回复通知，向左滑动可以消除通知。</p><p>当进入启动器的设置页面时，就可以找到更多功能，比如在桌面右下角安放一个简洁的Google 搜索按钮，这个按钮也支持上滑展开快速搜索。</p><p>也可以在收藏夹下方显示常用应用，在原来8个 app基础上再动态显示一两个最近打开频率高的。对于 Xperia系列新机21:9的长屏幕来说，塞下十个应用也不在话下。</p><p>如果觉得自带的微件不够好用，也支持增加其他微件。不过 Niagara对微件有不少限制，它不能在自带微件的上方，也不能在收藏夹的下方，而是固定在两者之间。可以调整微件上下缘来更改屏幕上各个组件的的高度。或者，也可以在设置里用自定义的微件取代自带微件。但是我猜多数不支持透明化的微件很难和Niagara 的风格相容。</p><p>其他功能包括：第三方图标包支持、Sesame集成、双击字母表快速锁屏等。</p><h3 id="pro-版特性">Pro 版特性</h3><p>付费方案有两种：一种是七天试用，年付订阅，另一种是一次性买断，我推荐前者，理由：1.要体验全部功能还是付费好；2.如果觉得不喜欢可以一周内取消。</p><h4 id="天气">天气</h4><p>换掉了 Google Awareness API, 改用 DarkSky，可以自定义位置而无须申请位置权限。</p><h4id="升级轻扫手势支持自定义文件夹">升级轻扫手势，支持自定义文件夹</h4><p>轻扫手势快捷操作并不稀奇，其他启动器都有，不过现在你可以在轻扫手势中<ahref="#fn5" class="footnote-ref" id="fnref5"role="doc-noteref"><sup>5</sup></a>绑定别的app（相当于应用文件夹），比如轻扫“相机”，可以在菜单中选择打开其他高级相机app，或者轻扫“设置”，直接唤出绿色守护休眠快捷按钮。</p><h4 id="自定义字体">自定义字体</h4><p>默认字体 Work Sans, 自带字体 Josefin Sans,你可以替换成自己心仪的字体。</p><h4 id="隐藏状态栏">隐藏状态栏</h4><p>打造沉浸式桌面的最重要特性——虽然这也不稀奇，其他启动器多少也可以做到。可以通过向下轻滑桌面的手势预览状态栏，动作大一点就是下拉通知栏。此外如果担心隐藏状态栏后看不到电量，桌面自带的微件也支持显示电量。</p><h4 id="耳机识别">耳机识别</h4><p>非常有趣的特性，当连接耳机后，设备的默认音乐app就会置顶显示在主屏幕的应用列表中，方便用户访问。可以手动添加其他音乐app让它们一起显示出来。曾今索尼的Smart Connect 是连耳机自动打开音乐 app 的神器，但是因为 Android 10的限制，它不再支持直接唤起其他应用，而只能在通知栏让用户交互点击打开音乐——毫无美感的鸡肋。让我们忘掉通知栏吧。</p><h3 id="仍然存在问题">仍然存在问题</h3><ul><li>Google 上划操作闪退，可能是因为我的 Google 是 beta 版，但是 Xperia原生启动器并无此问题。</li><li>不支持添加PWA到桌面/快捷操作菜单，也不支持添加微信小程序。</li><li>双击字母表锁定会立即锁定，与绿色守护这种要求锁屏之前有一段延时的应用有冲突。</li></ul><h2 id="流体手势导航">流体手势导航</h2><p>装上了瀑布流启动器，隐藏了状态栏，大概还得做点什么让屏幕更加沉浸。于是我把目光放在了导航栏上。Android10 禁用第三方启动器的手势导航，因此装上 Niagara那一刻三大金刚又回到了屏幕上。</p><p>不过没关系，有个通用的方法，如果想要强制非 root设备开启第三方启动器支持手势导航，可以用 USB 调试模式执行 adb 命令：</p><figure class="highlight powershell"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">adb shell cmd overlay enable com.android.internal.systemui.navbar.gestural</span><br></pre></td></tr></table></figure><p>但是实测发现，索尼的手势导航和 Niagara不能好好相处，体验很差。于是放弃。再次想起了以前在 Xperia Z5上用过的流体手势导航。</p><p>免费版的体验足够好，所以我也没有尝试付费，如果不差钱想体验全部功能的话可以支持一下。</p><p>流体手势导航也支持屏幕左右边缘的手势，不过 Xperia也自带一个侧感手势条，可以取代前者的手势。</p><p>安装完成后，三大金刚就隐藏了，但是仍然可以通过丰富的手势实现三大金刚式操作。</p><h2 id="diffuse">Diffuse</h2><p>最后到了琢磨壁纸美化的时候了。</p><p>网上有很多与 Niagara对应的美化方案，毛玻璃模糊效果的壁纸和一些第三方图标包、天气微件可以让桌面更好看。也可以用一些特别设计的撞色壁纸，突出图标部分和空白部分的视觉辨识度。</p><p>直至我发现了有人用 Niagara + Diffuse 的方案，顿觉相见恨晚。</p><p>Diffuse 分为免费版和收费版。它是一款模拟 Apple Music动态歌词背景可视化效果的 Live Wallpaper应用。它利用媒体播放通知栏以及麦克风权限（可选），模糊当前播放的音乐专辑封面，采用其色调，并以抽象的实时流动的形态显示在桌面上<ahref="#fn6" class="footnote-ref" id="fnref6"role="doc-noteref"><sup>6</sup></a>，还会随着音乐的节拍而运动。这个应用支持大部分自带音乐以及国际主流的流媒体音乐。为了体验全部特性我购入了收费版。</p><p>安装后，为了配合 Niagara 的显示，务必打开 Diffuse中的“启动器自适应着色”和 Niagara外观设置中能选中“基于壁纸”的所有选项，否则当壁纸主色调和启动器字体颜色差不多的时候会看不清字让人非常难受。</p><p>考虑到动态壁纸的耗电，以及麦克风权限泄露隐私的风险，Diffuse也只是个锦上添花的选择，除了让桌面变得炫酷美观，并没有什么实用性，也就没有特意与启动器搭配的必要。</p><p>介绍结束。当完成以上应用搭配后，一个稍显高级的无刘海无挖孔的全面屏沉浸式桌面就大功告成了。</p><p><strong>（基本没怎么看的）参考文献</strong></p><ol type="1"><li><p><a href="https://sspai.com/post/52692">可能是 Android手势的终级解决方案：Fluid Navigation Gestures - 少数派(sspai.com)</a></p></li><li><p><a href="https://sspai.com/post/61406">聊聊 Android 11的「桌面逻辑」 - 少数派 (sspai.com)</a></p></li><li><p><ahref="https://sspai.com/post/53821">这款布局宛如「瀑布」的启动器，和你以往用过的都不一样：NiagaraLauncher | App+1 - 少数派 (sspai.com)</a></p></li><li><p><a href="https://sspai.com/post/53515">Niagara Launcher 🔹 fresh&amp; clean 的使用1年的感受 - 少数派 (sspai.com)</a></p></li><li><p><ahref="https://www.reddit.com/r/NiagaraLauncher/comments/i0jqye/the_swipe_up_to_search_google_feature_stopped/">The"swipe up to search Google" feature stopped working. When I click theicon, it works. I don't know why. Any tips?：NiagaraLauncher(reddit.com)</a></p></li></ol><p><strong>附图</strong></p><section id="footnotes" class="footnotes footnotes-end-of-document"role="doc-endnotes"><hr /><ol><li id="fn1"><p><a href="https://i.ma.ga/EWRC2.jpg">🔗主屏幕.jpg</a><ahref="#fnref1" class="footnote-back" role="doc-backlink">↩︎</a></p></li><li id="fn2"><p><a href="https://i.ma.ga/dXh4j.gif">🔗日程微件.gif</a><ahref="#fnref2" class="footnote-back" role="doc-backlink">↩︎</a></p></li><li id="fn3"><p><a href="https://i.ma.ga/qK2qf.gif">🔗滑动列表.gif</a><ahref="#fnref3" class="footnote-back" role="doc-backlink">↩︎</a></p></li><li id="fn4"><p><a href="https://i.ma.ga/DmznL.jpg">🔗应用检索.jpg</a><ahref="#fnref4" class="footnote-back" role="doc-backlink">↩︎</a></p></li><li id="fn5"><p><a href="https://i.ma.ga/4f4nr.gif">🔗快捷操作.gif</a><ahref="#fnref5" class="footnote-back" role="doc-backlink">↩︎</a></p></li><li id="fn6"><p><a href="https://i.ma.ga/jLT2i.gif">🔗Diffuse.gif</a><ahref="#fnref6" class="footnote-back" role="doc-backlink">↩︎</a></p></li></ol></section>]]></content>
    
    
      
      
    <summary type="html">&lt;p&gt;索尼 Xperia 手机自带的启动器已经彻底拥抱原生 Android，而在过去使用了
Nova Launcher, Lawnchair
和微软桌面后，我却终于对“搜索栏+Dock+网格排布图标”的类 Pixel
式桌面布局产生了视觉疲劳。&lt;/p&gt;
&lt;p&gt;iOS 14</summary>
      
    
    
    
    
    <category term="电子垃圾" scheme="https://nachtzug.xyz/tags/%E7%94%B5%E5%AD%90%E5%9E%83%E5%9C%BE/"/>
    
  </entry>
  
  <entry>
    <title>悲しみのほうれん草を断ち切る刃を振るう。</title>
    <link href="https://nachtzug.xyz/2020/07/22/kanasimi-no-hourensou/"/>
    <id>https://nachtzug.xyz/2020/07/22/kanasimi-no-hourensou/</id>
    <published>2020-07-22T13:56:59.000Z</published>
    <updated>2020-07-22T14:17:50.691Z</updated>
    
    <content type="html"><![CDATA[<blockquote><p>打个比方，如果每个人都将电视播报的死讯，与自己的死亡同等视之，那这个世界究竟会充满多少的悲伤呢？如果将世界上的所有痛苦，都以自己是当事人的方式来承受，那活着究竟会变得多么困难呢？</p><p>如果连蝉的死，都能产生和自己死亡相同的感觉，那这个世界究竟会变得多么绝望呢？</p><p>为了解决这个问题，每个人都会准备一个滤镜。用来明确区分自己和他人，让自己对别人的悲伤变得迟钝。</p><p><strong>《重启咲良田》 3 - 河野裕</strong></p></blockquote><p>突然想起小学四年级以前的一件小事。</p><p>放学走路回家，在差不多倒数第二个红绿灯的地方，瞥到地上有一条蚯蚓，但是下一刻自己的右脚便随着保持身体平衡的本能踩了上去。</p><p>虽然在百科全书上读过蚯蚓再生能力强的文章，但是看着身体中间扁掉的蚯蚓不停地挣扎，当时我发自内心地觉得蚯蚓也是会死的，而且它也能感受到痛苦。于是我把蚯蚓转移到行道树下的土上，任由它自生自灭。随后我大概想了关于命运和适者生存之类的话题。</p><p>一般蚯蚓会在阴暗潮湿的土壤中活动，它之所以爬到干燥的水泥地上遭受猛烈阳光的炙烤，大概是因为天气太过闷热，让土壤变得不适宜生存，也有可能是它本身的机能已经不正常，于是爬出了安全的环境，就像鱼跳出了水缸。不管怎么样，比生的希望更有可能出现的是死的命运。我无心的一脚大概只是加速了它消逝的过程。</p><p>也许在迈步之前更小心一点的话，那条蚯蚓就不会受伤。但是对于已经发生的事，无法挽回，也是在那时候第一次意识到的。</p><p>虽然跟这件事情完全无关，我初中以后一直很注意脚底，甚至走路都尽量不发出声音，反倒能把人吓一大跳。</p><p>后来，再次近距离接触到那么大的蚯蚓，就是在高中的解剖蜡盘上了。而且无论解剖了几条蚯蚓，我似乎并不会常常想起当时这件小事，也不会恶趣味到再试一次蚯蚓中间踩扁之后还能不能再生。我只知道，理论上，蚯蚓的再生和断开体节的位置有关系，不同的位置会影响再生的结果。也就是说实际上那条蚯蚓可能真的不会死，小时候的我只是一厢情愿地那么认为罢了。</p><p>也许我早就不会为生命的消逝感到悲伤，或者假装无视这种悲伤。祖辈陆续去世也是，一年前的这个时候也是，几天前的时候也是。</p><p>如果有一个机会能让时光倒流回这件小事之前，精确地模拟出当时所有的环境因素，抹去我会踩到蚯蚓的记忆，我到底会不会做出不一样的选择？</p><p>或许根本没有机会，我来不及准备。当重力拉着我的身体运动时，我和蚯蚓之间命运的联系就基本确定。</p><p>人和蚯蚓在进化关系与体格上都存在较大的差异，因此，这种压倒性的优势下，我似乎只能不带怜悯也无需仇恨地对待对方。我已经忘记当时为什么要把蚯蚓转移到树下了，也许只是抱着一丝它能活下去的希望。这么做毫无意义，因为我对它不由自主的伤害已经发生了，而悲伤已经传递到我的身上。为了消除伤害给自己造成的罪恶感而拯救，是徒劳的，可能也是一种伪善。</p><p>这种伪善的讽刺程度，与在面对还能拯救的人却无动于衷的行为相比，就变得极为明显。</p><p>我也想着自己某一天被强大而无情的自然力量或者事故杀死的命运，只是它仍未降临。期待自己能活得足够久，直到世上无人知晓我，就不需要有人为我离去而感到痛苦，让悲伤的连锁在我的身上终结。</p><p>大概这算是生而为人的证据之一吧。</p>]]></content>
    
    
      
      
    <summary type="html">&lt;blockquote&gt;
&lt;p&gt;打个比方，如果每个人都将电视播报的死讯，与自己的死亡同等视之，那这个世界究竟会充满多少的悲伤呢？如果将世界上的所有痛苦，都以自己是当事人的方式来承受，那活着究竟会变得多么困难呢？&lt;/p&gt;
&lt;p&gt;如果连蝉的死，都能产生和自己死亡相同的感觉，那这个</summary>
      
    
    
    
    
    <category term="生活" scheme="https://nachtzug.xyz/tags/%E7%94%9F%E6%B4%BB/"/>
    
  </entry>
  
  <entry>
    <title>说说这个 Xperia 10 II</title>
    <link href="https://nachtzug.xyz/2020/07/08/xperia-10-ii/"/>
    <id>https://nachtzug.xyz/2020/07/08/xperia-10-ii/</id>
    <published>2020-07-08T13:53:48.000Z</published>
    <updated>2020-07-12T12:22:42.344Z</updated>
    
    <content type="html"><![CDATA[<p>经过快两个星期的等待，上个月购入的 Xperia 10 II总算是平安发货到了我的手中。</p><h2 id="购买经历">购买经历</h2><p>6月23日凌晨，我在进入七月就将服役两年整的 iPhone X 上观看了 WWDC2020，其中 iOS 14的发布的过程令我心情激动，四年果粉不请自来，在浅色床单上憋笑。</p><p>然后当日的上午，趴在地上想了想：这届 iOS 不太行（public beta发布之前我可以随便黑，更何况我这次不一定会选择测试 pb而是直接等正式版呢？让我多黑几个月吧！），大肆宣传了一堆实际上算是在Windows Phone 上就发扬光大过的特性（磁贴、应用列表），一群人却在喊抄袭Android, 真就死得早的没法说话呗。当然，Siri的新设计不错，可是并没有什么用。</p><p>我就去当年买下 Xperia Z5 Dual（青川绿）的淘宝店里，翻出了5月14号初识、6月21日种草的 Xperia 10 II（薄荷绿），一看标着“现货”，于是不管三七二十一就是一个下单。</p><p>没过几分钟，客服告诉我：没货，断货好久了。</p><p><strong>草。</strong></p><p>过几天又问了一次，还是没有好消息，所以我不再抱希望，干脆把那笔钱扔进淘宝里当作反向理财，等到iOS 14 public beta确定发布后再打算。于是我开始漫长的等候，终于在上周六，突如其来的快递提醒，触动了我敏感的心灵，尽管淘宝的发货状态都还没更新，但我立刻意识到：这就是我在等的东西！</p><p>说起来，Xperia 1 II已经发售，大家的讨论和购入目标应该都集中在那部一经面世就震慑信仰的旗舰机上。没想到连中端机都这么难等，不管是不是疫情影响，看来索移大概真的不好卖。（其实也有可能是六月份购买的人可以拿到赠品，促销效果太好。）</p><h2 id="这次选手机的标准">这次选手机的标准</h2><p>在选手机的时候我通常想得很多，而买手机的时候又会想得很少。实际上，我理想的手机标准比下面罗列的条件要更严格，但是那样的手机不存在。</p><ul><li>Android 10，接近原生</li><li>运行内存比用过的手机大（4GB起步）</li><li>存储空间比用过的手机大（128GB起步）</li><li>屏幕是OLED材质+小尺寸+FHD及以上分辨率+没有刘海、挖孔、美人尖等奇形怪状的摄像头侵入</li><li>也不可以有弹出式摄像头</li><li>带 3.5 mm 耳机孔</li><li>有指纹识别但不可以是后背指纹</li><li>电池要比 iPhone 11 系列大 （3501 mAh 起步）</li><li>可以的话，甚至不要国产手机</li></ul><p>结果通过 <a href="https://www.gsmarena.com/search.php3">PhoneFinder</a> 利用上面的筛选条件命中了一些机型，其中好看而且最轻的一款正是Xperia 10 II, 151 g的重量，完全可以洗刷当年<strong>索半斤</strong>的污名，不如就叫它索三两吧。</p><h2id="为什么不追求处理器和大运行内存">为什么不追求处理器和大运行内存</h2><p>还不是为了省钱。</p><p>就过去五年的使用经验来说，我日常频繁使用的 app屈指可数，也不喜欢在后台放一堆进程浪费电。</p><p>不怎么玩手游，因为玩着爽的手游太少，真的爽的也是体验测试一下就好，谈不上坚持玩。如果一天有12个小时可以玩游戏，我肯定会花十个小时玩战地，剩下两个小时拿来看动画。</p><p>这几年有些时候，甚至连诺基亚3100都重新拿出来用，免得正常生活被手机干扰。所以说买个旗舰机对我来说真的浪费，够用就好。</p><p><strong>还不是为了省钱。</strong></p><p>当然，最终下单的时候，我就一个想法：这薄荷绿颜色真好看，买买买。</p><p>当年一眼看中 Xperia Z5想必也是一样的思路，大概是对特殊色号和特殊型号有执念吧，如果没有这个薄荷绿，我可能就退而求其次<del>持币待购</del>买Xperia 1 II 基佬紫了<del>等跳水</del>。</p><p>因此我并不是有多推崇这部手机，而只是它刚好符合我的偏好，而且诸多特点集合于一身，并找不到替代品。</p><p><img src="https://files.catbox.moe/1emv9z.jpg"title="尽力调了白平衡，富士的色调是原罪" /></p><h2 id="体验">体验</h2><p>收货时的人生三大错觉之一：收到空盒。因为真的很轻。</p><p>然后是开箱，情绪稳定，毕竟不是开宝箱。店家没送任何东西（今天发现赠品大概是分开寄了，因为我又有一个新快递），盒子里面有且仅有自带原装配件，一个垃圾耳机，一个垃圾充电头。</p><p>开机，看了无数次的激活界面，我的内心已经毫无波动。配置好网络，登录Google 账号，然后一路设置并且让手机自动安装更新和 app.之前因为疫情在家自肃的时候，闲着无事把 Z5 和 Pixel C 都刷入了magisk，特别是 Pixel C还翻了几次车，因此不得不激活好几次，今年实在不想再看到这个界面了。</p><p>说起来那台 Z5 root之后的体验比原来好一点点，除了电池损耗过于严重以及机身发热导致的降频到了难以忍受的程度，再加上root完之后我太过得意忘形让手机来了个平地摔，把本来还凑合的屏幕摔漏液了。原本摔三次加一次泡水过程中sim卡因为水压弹出而直接在水中重启，最后依然毫发无伤的硬核战绩，终于在这次事故中被终结。<strong>也许这就是人生吧。</strong> 当时我一度想去淘宝买个 Z5 Premium去体验一下同时代的第一台4K屏手机，但最终还是冷静了下来：真的不值得。</p><p>前面的颜色太奇怪了，上个真实颜色.</p><p><img src="https://files.catbox.moe/nupvei.jpg"title="不能免俗地开箱留念，其实没啥好看" /></p><p><img src="https://files.catbox.moe/dua5nb.jpg"title="前面的颜色太奇怪了，上个真实颜色" /></p><h3 id="手感">手感</h3><p>托带鱼屏的福，机身窄，而塑料边框的摩擦力恰到好处，并减轻了重量，因此握持手感不错。正反面大猩猩6代玻璃有点滑溜溜的，放在微微倾斜的绒布或者纸质表面，甚至会缓慢滑动，不得不注意要平稳放置，或者干脆找个支架确保安全。之后打算用套套保护起来。指纹识别模块和电源键重新整合（鬼知道前代的分离式设计到底抽了什么风），单按锁屏，而触摸即可直接唤醒并解锁手机。</p><p>我的上一台索尼还是Z5，当时要先单按电源键一下亮屏，然后才会进行指纹识别，对此我已经形成了经常摸指纹模块的肌肉记忆。现在为了避免手滑随意解锁手机导致误触，我决定改变自己的习惯。震动有点麻手，可能是因为习惯了iPhone.</p><h3 id="操作">操作</h3><p>索移为了方便带鱼屏单手操作，推出了侧边感应功能，双击屏幕边缘的小功能条就能唤出快捷操作。</p><p>当然，分屏和侧边感应功能都是老 Xperia 了，配合 Android 10,体验确实不错。然后就是 Android 通病，非 root 情况下，插中国内地 sim卡就会导致 Google Discover （原 Google即时贴）失效，再怎么折腾也不能保证成功。面对这种玄学问题自然是选择放弃，等过几年root 了再说。</p><p><img src="https://files.catbox.moe/f9d4ug.jpg"title="见怪不怪的分屏模式" /></p><p><img src="https://files.catbox.moe/wcwesx.jpg"title="侧边感应单手模式" /></p><p>这一代 Xperia 删掉了一直以来自带的垃圾 Album 图库，改用 GooglePhotos, 向着原生化更进一步。正好我已经用了好几年 Google Photos,这个改动真是再方便不过了。说起来这是我的第一部正统 Android 10手机，虽然今年刚在 Pixel C 上刷了10，但是原生的手机还是第一次用上。</p><p>相机中的<strong>夜间模式</strong>应该是个突出亮点，而手动模式开启 HDR成像颜色也不错。然而没有比较就没有伤害，大概因为最近是连续的阴雨天，我完全看不出傻瓜模式还有什么存在价值……</p><p>视频支持4K拍摄，包括16 : 9和21 : 9两种格式，也支持120 fps慢动作（废话）。</p><p><img src="https://files.catbox.moe/qe6wof.jpg" /></p><p><img src="https://files.catbox.moe/0loyqf.jpg" /></p><p>毕竟是新机，除了一些国产应用开屏雷击广告浪费时间，打开 app的速度尚可，非常稳定。可因为处理器的限制，说操作过程中一丁点卡顿都没有，那确实是白日做梦。而至于后台进程，我只发现从正在播放视频的哔哩哔哩中切出去使用微信后，有时会出现哔哩哔哩后台被杀的情况。看了眼微信的运存占用状况，我觉得这基本是微信的锅。</p><p>2020年的 Xperia依然默认使用三大金刚键操作，当然，可以在设置里改成手势操作，但是取消了小药丸方案。本来我是想重新安装以前购买的Xperia™ - DUALSHOCK™4主题，因此觉得保留三大金刚是挺好的。哪知这些主题居然早就不适配新版Android 了，只好作罢，并且换成了手势操作。</p><p>Smart Lock中并没有面容解锁，因此指纹解锁是唯一的生物识别手段。在疫情仍然严重不得不天天带着口罩的情况下，指纹解锁更占优势。之前iPhone X 只能用 Face ID 可太痛苦了。</p><p><img src="https://files.catbox.moe/11fh02.jpg"title="索尼罪大恶极" /></p><h3 id="屏幕">屏幕</h3><p>自 Xperia 1 以来最大的噱头就是21 :9格式的屏幕了，号称能提供更好的看片体验。不过作为中端机，Xperia 10 II的屏幕仅仅是 FHD (2520×1080)，并且不支持 HDR.虽然有点膈应，但是也不得不服，谁叫我不买 Xperia 1 II 呢。</p><p>而21 : 9和18 :9屏幕的尴尬之处在于，尽管在线数字内容及流媒体平台，比如 Netflix, GooglePlay Movie 和 YouTube的确能提供适配这块屏幕的高清片源，而下载的蓝光资源分辨率多是1920×~~~的，这就意味着从电脑里复制电影到手机上播放，要么就保持原尺寸留下黑边，要么就适配屏幕，拉伸视频并牺牲一点点清晰度（事实上不是很明显）。而再往上就是4KUHD资源，占存储空间不说，这块屏幕反正也体验不了4K. 在 iPhone X之后继续在这台手机上体验到宽屏幕的痛，这大概就是所谓的消费陷阱吧。当然，除我之外大概没多少人会买这款手机，我就不提醒那些会在这一点上纠结的潜在买家了。</p><p><img src="https://files.catbox.moe/7x70ee.jpg"title="4K 极速车王，凑合看看" /></p><h3 id="其他">其他</h3><p>USB-C 2.0 传输速度还是很感人，拷个十多个GB的电影体验就不够舒适。</p><p>TIM似乎会闪退，当然也有可能是别的原因，不得已，时隔一百年又用上了QQ.</p><p>2020年了，国产软件的开屏雷击广告依然没有适应21 :9的格式，因此会呈现纵向拉伸的滑稽状态。</p><h3 id="补充说明">补充说明</h3><p>再用了几天，逐渐暴露出更多很索尼的问题（特性），大部分还是在意料之中的。</p><p>拍照体验差，不管是对焦还是成像，速度都有点慢，举着手机真的很尴尬。不知道把像素调小以及关掉定位能不能解决这个问题，反正当年是这样，现在还是这样。真怀疑相机部门和手机部门存在利益冲突，前者实际上是想让后者去死的。</p><p>画质增强功能对 Netflix似乎是负优化。虽然我以前就不喜欢索尼的画质增强效果，但是没想到这回还是这么严重。不过本来就是弥补没有HDR的缺陷，当然是选择关掉它。</p><p>开机时不时会出现三角维修符号，很烦但是不影响使用。查了一下这几年Xperia 的通病。为什么当年 Z5 就没这问题？原因应该不是出在硬件上，而是Xperia Home UI 卡死导致的……开个机都能卡死的UI？</p><p>联动上一个问题，在全屏的时候对于手势操作的感应较差，屏幕侧边扫出小横条或者通知栏的时候甚至会卡一下，然后就蹦出bug report. 我还没有仔细研究过 bug report 的内容，看起来是桌面 + Android10共同作用导致，希望下一次更新能解决这次的问题（如果还有更新的话）。</p><p>关于指纹，没想到中国银行无痛支持指纹登录。然而并没有什么卵用。配置了一下中国银行的HCE支付，出门应该会变得方便些（虽然依然没什么机会出门）。</p><h2 id="总结">总结</h2><p>对于一部分需求特殊的人来说，Xperia 10 II 恰到好处，无可替代。</p>]]></content>
    
    
      
      
    <summary type="html">&lt;p&gt;经过快两个星期的等待，上个月购入的 Xperia 10 II
总算是平安发货到了我的手中。&lt;/p&gt;
&lt;h2 id=&quot;购买经历&quot;&gt;购买经历&lt;/h2&gt;
&lt;p&gt;6月23日凌晨，我在进入七月就将服役两年整的 iPhone X 上观看了 WWDC
2020，其中 iOS 14</summary>
      
    
    
    
    
    <category term="电子垃圾" scheme="https://nachtzug.xyz/tags/%E7%94%B5%E5%AD%90%E5%9E%83%E5%9C%BE/"/>
    
  </entry>
  
  <entry>
    <title>兜兜转转</title>
    <link href="https://nachtzug.xyz/2020/07/01/go-round-and-round/"/>
    <id>https://nachtzug.xyz/2020/07/01/go-round-and-round/</id>
    <published>2020-07-01T12:10:44.000Z</published>
    <updated>2020-07-01T12:28:20.524Z</updated>
    
    <content type="html"><![CDATA[<p>不知不觉进入七月了，这个悲惨而滑稽的世界还在苟延残喘，无知的家伙在自己的坟墓边起舞，我却还在写博客，真是不务正业。</p><p>前几天当我整理订阅制服务的项目时，意识到在其中一些使用频率较低的服务上的开销逐渐成为我日常生活的负担。通常我会隔很久整理一次订阅制服务，因此有些懒得取消的月付项目就拖得较久，空耗好几个月的钱；而有些年付项目钱都已经花出去了，也需要及时取消免得今年再产生未来的扣费。</p><p>经过一番轻松的计算和毫不留恋的断舍离，一些没必要享受或者免费也可享受的项目从我的列表中消失了，这么算来每个月可以省下375元，一年就是4500多元。过去把生活重心放在网络上，可能觉得这样的开销也是值得的，但是随着疫情的不断发展以及自己收入多多少少受到的冲击，这笔省下来的钱就变得相当有分量。总之，互联网逃离计划还是要逐渐推进。</p><p>最后我把目光放在还在运行的 Linode VPS上。本来我的博客搭建在这个每月5刀的服务器上，而上面除了一直在跑的ehforwarderbot和偶尔运行的下载、代理相关等任务外就毫无用武之地。当时选了 CentOS可能也限制了发挥，起步环境太差，修修补补勉强撑过来了。</p><p>回想起最初是用着免费的 githubpage，到后来购买域名、配置服务、安装博客和主题、开启https、生成证书和启用 HTTP/2基本是一气呵成的搭建博客经历，毫无疑问是有意义的，也从他人的文章和推特好友那里学到了不少知识，毕竟也没过去多久，所以印象还比较深。</p><p>为了维护这来之不易的成果，防止博客莫名其妙就挂掉，我通常很小心地调整服务器的配置，基本不会去乱动hexo和主题的版本，也不想去调试里面一些过于复杂的内容。久而久之博客的一些功能就显得比较落后。</p><p>加之不久前手抽把 ehforwarderbot的给更新坏了，实在是懒得修复。这么一来这台服务器持续运行的意义就只剩开博客。于是我想，还是迁移吧。</p><p>昨天在本地重建了博客并部署到自己的 github page.在部署之前测试了不少新主题，包括 typography、aomori 和 quark.每个主题都各自有吸引我之处，但也有我不能忍受的配置缺陷。当然有些主题还在开发中，所以是可以体谅的，单纯就是我不适合去调教它们。最后还是不能免俗地用回了next 主题。这玩意就像 iOS一样，很多人都在用，用起来就变得索然无味，但是别的又不如它全面和好用。</p><p>之前守着的不知道落后多久的旧版本所自带的 FontaAwesome 字体里还没有mastodon的符号，更新后终于支持了。另外还发现了一个暗黑模式的开关，会跟随浏览器的模式切换浅色和暗黑主题，非常适合当前主流。最后还打开了搜索功能。评论功能依然选择关闭。导入博文非常方便，其他的主题配置也从原来的文件里恢复。于是最后，博客基本看不出来是升级重装过的。</p><p>接着就是把域名从原来的地址解绑，换成解析到 github page上。这些步骤都有官方文档指导或者现成的资料，所以操作起来也很快。唯一需要注意的是我原来因为在Linode 上搭了博客，就偷懒干脆用起了它家自带的 DNS解析。结果我发现它的文档里有这句话：</p><blockquote><p>要使用 Linode DNS 管理器为您的域名提供服务，您的帐户必须具有活动的Linode。如果您删除所有活动的 Linode，则将不再为您的域名提供服务。</p></blockquote><p>Fine. 我是铁了心要删除 VPS的，这么搞的话我就换，加之域名商自带的解析速度和稳定性也很感人（这是马后炮，其实我出于天然的怀疑，本来就不想用它），决定换用DigitalOcean 的免费解析服务。毕竟我在 DO也有现成账号，而且翻了翻文档好像也没说像 Linode 这样非得有个活动 VPS才给解析服务，风评似乎还不错。于是马上就试了。没过几分钟，效果立竿见影，除了HTTP/2 失效之外其他的应有尽有，没必要再用第三方工具折腾证书什么的。</p><p>最后一步就是恢复除了卖萌并没什么卵用的404页面。对这一步 github上也有简洁明了的指导，一下就完成了。</p><p>至此博客迁移完毕。</p><p>步骤就不写了吧，无非是“<ahref="https://lmgtfy.com/?q=%E5%9C%A8+github+%E4%B8%8A%E6%90%AD%E5%BB%BA+hexo+%E5%8D%9A%E5%AE%A2%E5%B9%B6%E7%BB%91%E5%AE%9A%E5%9F%9F%E5%90%8D">在github 上搭建 hexo 博客并绑定域名</a>”这种一 google就能看到步骤满天飞的内容，多参考靠谱文档，加上不怕失败的尝试，猴子也能搭博客。</p><p>顺便，我没有参考目前 hexo 官网上的教程<ahref="https://hexo.io/zh-cn/docs/github-pages">将 Hexo 部署到 GitHubPages</a>中关于 Travis CI 的部分，毕竟搭个博客而已，杀鸡焉用牛刀 aka我没时间看新文档。</p><p>感想：通过搬迁博客和删除 Linode VPS,每月最终省下了411元。我的内心毫无波动，只想省下订阅的钱，好让我在其他兴趣上败家。</p>]]></content>
    
    
      
      
    <summary type="html">&lt;p&gt;不知不觉进入七月了，这个悲惨而滑稽的世界还在苟延残喘，无知的家伙在自己的坟墓边起舞，我却还在写博客，真是不务正业。&lt;/p&gt;
&lt;p&gt;前几天当我整理订阅制服务的项目时，意识到在其中一些使用频率较低的服务上的开销逐渐成为我日常生活的负担。通常我会隔很久整理一次订阅制服务，因此有</summary>
      
    
    
    
    
    <category term="日记" scheme="https://nachtzug.xyz/tags/%E6%97%A5%E8%AE%B0/"/>
    
  </entry>
  
  <entry>
    <title>0202年在 Pixel C 刷魔趣ROM</title>
    <link href="https://nachtzug.xyz/2020/03/28/pixel-c-mokee-magisk/"/>
    <id>https://nachtzug.xyz/2020/03/28/pixel-c-mokee-magisk/</id>
    <published>2020-03-28T06:31:48.000Z</published>
    <updated>2020-07-08T13:58:40.539Z</updated>
    
    <content type="html"><![CDATA[<h2 id="前言">前言</h2><p>Pixel C 又开始电量尿崩了，放着不管一天多电就能跑光， timerfd疯狂唤醒，就算清除 Google 数据都没用。那就一鼓作气 root并且直接刷魔趣ROM上 Android 10 吧！</p><h2 id="准备工作">准备工作</h2><p>阅读资料，下载资源</p><p>https://www.mokeedev.com/guide/getting_started.html</p><p>https://download.mokeedev.com/dragon.html</p><p>https://flash.mokeedev.com/ （其实没用，只是帮你完成一些步骤）</p><ul><li>Magisk-v20.4.zip</li><li>MK100.0-dragon-202003280436-NIGHTLY.zip</li><li>open_gapps-arm64-10.0-nano-20200325.zip</li><li>twrp-3.3.1-2-dragon.img</li></ul><p>把指定资源放进目标文件夹，再打开计算机的终端进入该文件夹。</p><h2 id="刷机">刷机</h2><h3 id="解锁设备">解锁设备</h3><p>进入设置-开发者选项-允许 oem 解锁</p><figure class="highlight powershell"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">adb reboot bootloader</span><br></pre></td></tr></table></figure><p>设备重启并显示 waiting for fastboot command….</p><figure class="highlight powershell"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">fastboot oem unlock</span><br></pre></td></tr></table></figure><p>按电源键确认，设备发出一声“滴”然后重启，显示“正在清空”（为什么是中文？）</p><p>有点慢……</p><p>为了确保正常，重启试试（没问题，恢复出厂了，跳过激活设置重新打开 usb调试）</p><h3 id="刷入-recovery">刷入 recovery</h3><figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">adb reboot bootloader</span><br><span class="line">fastboot flash recovery .\twrp-3.3.1-2-dragon.img</span><br></pre></td></tr></table></figure><p>进入重启循环无法进入 recovery？</p><p>改成 <code>fastboot boot .\twrp-3.3.1-2-dragon.img</code> , 好了</p><p>选择 <code>格式化 data 分区</code></p><p>在高级选项中选中 adb sideload，读条时刷入 mokee magisk opengapps</p><figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">adb sideload xxx.zip #每执行一次成功后再在 TWRP 中选 adb sideload</span><br></pre></td></tr></table></figure><p>重启</p><p>卡在 Google 标志了？！</p><p>为了保险，重新线刷了一次，这次终于出现 mokee logo （后来发现，卡在Google 标志，可能多重启几次会好，大概是 nightly 不够稳定）</p><p>妈的，这logo丑哭了</p><h2 id="开机后设置">开机后设置</h2><p>像一个正常 google 设备一样设置，从 Google云拖回设备备份，更新应用……</p><p>Magisk Manager 有了，但是 safetynet 检查不通过，ctsProfile: false.不行，这样装不了 Netflix.</p><p>安装 <code>magiskhide props config</code> 和 <code>busybox</code>模块</p><p>顺便一说这个魔趣 ROM 自带终端，帮助我迅速解决 safetynet问题，不用临时下一个 termux 了。直接在终端里操作：</p><figure class="highlight shell"><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><span class="line">su</span><br><span class="line">props</span><br><span class="line">1 # edit device fingerprint</span><br><span class="line">f # Pick a certified fingerprint</span><br><span class="line"><span class="meta prompt_"># </span><span class="language-bash">找到品牌 设备 系统版本</span></span><br></pre></td></tr></table></figure><p>然后就是安装其他 magisk 模块……</p><p>全剧终</p><h2 id="后记">后记</h2><p>上一篇博客提到可能是2020年最后一篇博客，不过这篇就是打上一篇的脸。其实我是不太喜欢记录这些杂碎的技术笔记的，毕竟2020年还要折腾Pixel C这种设备，实在是过时了。顺便一说为了搞个纯写作环境，我自己的创作会集中放在另一个分站上https://utsk.wordpress.com/，而这边的博客还是保持想到啥写啥的碎碎念状态，文字质量不会太高。</p>]]></content>
    
    
      
      
    <summary type="html">&lt;h2 id=&quot;前言&quot;&gt;前言&lt;/h2&gt;
&lt;p&gt;Pixel C 又开始电量尿崩了，放着不管一天多电就能跑光， timerfd
疯狂唤醒，就算清除 Google 数据都没用。那就一鼓作气 root
并且直接刷魔趣ROM上 Android 10 吧！&lt;/p&gt;
&lt;h2 id=&quot;准</summary>
      
    
    
    
    
    <category term="电子垃圾" scheme="https://nachtzug.xyz/tags/%E7%94%B5%E5%AD%90%E5%9E%83%E5%9C%BE/"/>
    
  </entry>
  
  <entry>
    <title>也不知道会不会是2020年最后一篇博客</title>
    <link href="https://nachtzug.xyz/2020/03/12/araya/"/>
    <id>https://nachtzug.xyz/2020/03/12/araya/</id>
    <published>2020-03-12T06:08:59.000Z</published>
    <updated>2020-07-01T12:27:51.551Z</updated>
    
    <content type="html"><![CDATA[<p>足不出户的第47天，被自己的低产吓到。看来不光是衣服换得慢了，家里的网速慢了，就连思考、行动和交换信息都变慢了。</p><p>2020年起的这两个多月，世界上发生了很多事情，但是头等大事还是<code>COVID-19</code> 的爆发与防控。</p><p>这件事从最初的“怎么会这样”到现在的“啊，终于到这一步了，那么然后呢”，在我的印象里的优先级正在逐步下降。</p><p>不是说这件事跟我完全无关，我只是一如既往地，凑巧地，平安地站在事件漩涡中一个比较平静的区域而已。而这种一如既往的幸运的累积就会造成我习惯性地淡漠，尽管我还会因为一些人和一些事而产生崭新的情绪波动，但是终究不能彻底改变随遇而安的心态。</p><p>简单来说我对痛苦的阈值很高，因此要让我对痛苦的东西产生同情，必须是极端特殊、第一次发生而且与我密切关注的人有关的事情。</p><p>最初的最初我也是无法视而不见的。因为我的女朋友就是武汉人，她回家的五天后武汉封城，而我们之前就讨论过有关疫情的应对，对她回武汉这事有所顾虑，但是毕竟当时谁也料不到事态演变得这么快。</p><p>本来我们也计划了二月份去日本旅行一次。虽然我个人并不是迫切地想去日本，毕竟不管是经济理念上还是旅行计划上我都和女朋友设想得不太一样，但是为了不扫了她的兴，而且两个人都没去过，去一次也有意义，我还是配合着提供时间、目的地和观景路线，她兴致勃勃地做吃住行的规划，然后我们就赶着准备签证材料并寄出。</p><p>在女朋友回家的最初几天，武汉宣告封城的几天前，我还留在学校。大多数人都回家准备过年了。我先是出门买了一点口罩（只买了五只，我不好意思拿空超市的货架），又翻出了以前囤在寝室的两包口罩。第二天又出门买了很多罐头、意面、饼干和速食存在实验室，计划着正月初四就赶紧回学校当死宅。</p><p>大概是我的<em>一个猜想就能触发相关噩兆</em>的扭曲因果体质（一般人可以理解为<code>墨菲效应</code>），疫情的全面爆发影响了后续的一切，女朋友全家人被关在武汉的家里，有几天差点断粮于是我帮忙远程下单抢菜（现在她家里的资源供应暂时恢复了，虽然还是不能出家门一步）；我当然也没法回到学校，于是在家陪着父母；签证无望，随后日本也被疫情攻陷。这其中一些事情是一月份就能猜到的，但是有些细节是第一次体验，所以感到有些手忙脚乱。</p><p>一开始几天一直盯着病例数字并且定期用数据做图，然后得出啥也没用的结论。不过后来，每日的病例新增率降到一个值以后我便不再坚持记录，毕竟当时也猜想过疫情最终会变成大流行，而且可能性与日俱增。</p><p>一开始还根据网上的资料列好了 bug out bag的必备清单，并且放进了购物车，准备物流通畅的时候马上下单，以免之后情况恶化。后来因为迟迟不能离开家回到学校，而且物流也不像完全正常的样子，这个计划便一直搁置着，到我现在改了主意，打算等世界崩溃了之后，直接去实体商店里搜刮必备的资源。</p><p>前阵子不小心把随机选择的三题作文写成了一部<ahref="https://nachtzug.xyz/2020/02/16/rubbles-grassland-music/">短篇小故事</a>，实在费了不少力气，原本一周练习一次的计划也只能搁置。从2019年度总结算起也总共只写了三篇文章，输出并不多，大概是因为一直在家里，连思考都枯竭了吧。现在居家工作，每周定期开组会完成进度汇报，进度其实也堪忧。讲道理，本专业应该在这次疫情中冲在科研前线才对，只不过我们的研究对象和病毒没什么关系，所以只是空有想法，没有实际的材料。而且实验室其他人都对此兴致缺缺，只是优先思考自己的出路罢了，更何况本来就<ahref="https://nachtzug.xyz/2018/05/20/make-a-promise/">不喜欢本专业的我</a>呢。</p><p>至于国内互联网，前有李文亮的相关讨论，后来又发生了肖战粉丝举报 AO3事件，现在又是艾芬采访相关的密码战。在这些与疫情相关或无关的阵地上，不同的战争又在热烈地进行着。其中肖战粉丝中的狂热者和同人圈的对抗已经升级成了秘密战争，也不知道半个月后又会是什么情况。今日奇观全是审查制度和GFW 造成的，不过我猜我们也没机会目睹这些事物倒塌了。</p><p>今天汤姆汉克斯夫妇、NBA球员感染的新闻成了趋势的热门，似乎名人效应比世界卫生组织的告示要有用得多。我对此毫不惊讶，大部分人总觉得名人都感染了，那事情绝对大条了。而我只知道病毒可不管感染的人的身份，它的扩散也是符合自然规律的，名人之所以感染不是事情变大条的标志，而是事态一直很严重，个别人的感染不过是概率事件而已。比起那些人，我更担心日本动画和声优业界人员是否早已加强防护，担心网球运动员们是否从赛事取消的新闻中得到警示……</p><p>讽刺的是去年年末写下的<ahref="https://nachtzug.xyz/2019/12/29/fuck-2019/">总结</a>，本来只是希望2020年有所改观，结果反倒一点都没有说错。</p><blockquote><p>人类也继续不可避免地衰退着。</p><p>每个地方的各种话题都在鸡同鸭讲，吵得不可开交，最后不了了之。</p><p>有些举着正义、公道等等大旗的人，一旦被指出行为上的错误，便会恼羞成怒，攻击纠正他的人，说到底也只是为了个人目的行动，与弱者斗争，要求别人为自己让路的巨婴罢了。</p><p>另一些人麻木地饱食终日，沉浸在精神与肉体刺激中，哈、哈、哈地发情，并经常因为自己的懒惰与常识性错误抱怨连天。</p><p>一部分人类变得更愚蠢，一部分人类变得更痛苦，而有些痛苦和愚蠢是相通的。</p><p>原来如此，可是这又关我什么事呢？</p><p>不管怎样，观察这样多元的世界与人类，真是太有趣了。</p></blockquote><p><strong>对于人类无可挽回的衰退，究竟要从哪一步开始做对的事情，以确保事情不会变得更糟？</strong></p><p>这个问题对我来说已经是过去时了。这个世界从2019年7月18日起就完全不正常。那一天有很多我关心着的无辜的人逝去，而犯下罪行的人不过是个带着恶意的白痴。</p><p>即使我有时间旅行的能力，扭转事件发生的前因，但也无法保证今后不再发生类似的事件，像青叶真司一样的人物还是会在什么地方再度出现。</p><p>而这次的疫情，科学手段已经足够证明，它本身是自然发生的情况，但是它的扩散也有人为因素影响。只是我们永远没有机会去证明，如果某些人和单位能正确地履行职责，是不是就能避免这样的情况。或许，那就是另一个故事了。只是有人依然借此机会相互攻击，试图把全人类共同面对的问题，推到民族和种族的政治层面上。连上火星种土豆都八字还没一撇的人类，却要被病毒按在地球上摩擦，还自以为很懂的样子在细枝末节的问题上争论。</p><p>对于这种现象我怎么想？引用莎拉波娃的话就是：“Fine with me.”</p><p><imgsrc="https://66.media.tumblr.com/tumblr_m9rxn66wix1rvr01vo1_400.gif" /></p><p>活着的人一定要珍惜此刻与身边所拥有的东西，善待自己。</p><p>接下来唯一可以指望的就是<code>抑止力</code>了。</p><p>7月22日的奥运首场比赛，现在看起来还很早很早。</p>]]></content>
    
    
      
      
    <summary type="html">&lt;p&gt;足不出户的第47天，被自己的低产吓到。看来不光是衣服换得慢了，家里的网速慢了，就连思考、行动和交换信息都变慢了。&lt;/p&gt;
&lt;p&gt;2020年起的这两个多月，世界上发生了很多事情，但是头等大事还是
&lt;code&gt;COVID-19&lt;/code&gt; 的爆发与防控。&lt;/p&gt;
&lt;p&gt;</summary>
      
    
    
    
    
    <category term="日记" scheme="https://nachtzug.xyz/tags/%E6%97%A5%E8%AE%B0/"/>
    
  </entry>
  
  <entry>
    <title>去你妈的2019</title>
    <link href="https://nachtzug.xyz/2019/12/29/fuck-2019/"/>
    <id>https://nachtzug.xyz/2019/12/29/fuck-2019/</id>
    <published>2019-12-29T03:10:23.000Z</published>
    <updated>2020-07-01T12:28:14.326Z</updated>
    
    <content type="html"><![CDATA[<blockquote><p>昨天第一次写下的标题是“滚蛋吧2019”，看了几遍觉得太不文明了。思索再三，还是改成这样吧。</p></blockquote><p>「いつか」は来ない。それは永遠に先の未来を言うのだから。</p><h2 id="如何度过这一年">如何度过这一年</h2><h3 id="新的体验">新的体验</h3><p><strong>在 duolingo上开坑</strong>，包括法语、德语、西班牙语，当然也少不了日语。到了下半年，也几乎没时间学习了。duolingo的日语太简单，直接一路零错误推下去不带喘气，其作用仅仅是刷连续几天学习的战绩，但是很多时候忘了刷，连续的战绩就没有了。其他几门语言里法语可能学的稍微多一点，但是进步也仅仅体现在会看法语原声日语字幕的电影了（阿黛尔的生活），除了纯看字幕，也会尝试去听听台词。同时开几个语言的感觉太混乱了，目前的使用体验说明duolingo是为了小语种和多语种入门用户服务的玩具而已。继续学下去，能学多深我也不清楚，明年继续努力刷。</p><p><strong>美波唱歌真好听</strong>，カワキヲアメク一跃成为我网易云音乐总播放量最多的歌。后来还看了一次她的个人直播，中间有临场翻唱环节，唱功还是挺强的。还好我早几年听的是Aimer， 不然口味可能会被美波带偏。</p><p><strong>写一份其实不关我事的项目文书</strong>，以前也写过文书，但是这次不太一样，是被拖进不相关的项目组里。你永远不知道，和你一起写项目文书的外单位队友会在提交正文的死线前一晚提出多少（过去一个月都没那么多的）修改请求……最后自然是黄了</p><p><strong>给手表换外壳</strong>，我让碎壳的低配 G-SHOCK吃灰了四年后才想到，我可以上淘宝买表壳自己换……而且电池大概真的能用十年，已经买了八年还是九年来着。</p><p><strong>去爱丁堡</strong>，但是出差全程被接待方投喂中餐自助和中餐外卖。事后才想起自己走过的某个街头也是复联3的片场之一，算是圣地巡礼了。中途和另两位同学还有一位教授跑去吃了大众点评上都赫赫有名的海鲜西餐。他家能成为大众点评的网红，大概和老板热爱中国，而且真的去过中国，还在中国开分店有关吧。总之还是挺好吃的。</p><p><strong>写了个维基词条</strong>，第一次创建编辑维基百科词条，是为了自己喜欢的漫画，写的内容还比日文词条多。写得太不专业了，不过它的可视化编辑器略难用，切换到源代码才顺利写完。感谢帮助编辑的巨佬，一看对方贡献，已经超过160000次编辑，战斗力太强了吧。之后也会继续考虑利用自己了解的知识去完善维基百科。</p><p><strong>去德国</strong>，出差间隙还跑了好几个城市（柏林、科隆、马格德堡），吃了大猪肘，并碰巧直接来到哈雷网球公开赛的球场边，运气太好了。</p><p><strong>和推友面基</strong>，某天去吃了好吃的汉堡，然后去学校转了转；过了几天又一起去游戏展玩。其实我个人不会主动去搞线下交流，主要是因为1.没时间，2.没时间。但是面基的过程还是挺丰富有趣的，我还是要感谢和新认识的人度过的时光。</p><p><strong>杭州终于有 CoCo壱番屋了</strong>，有口福吃大份的咖喱。</p><h3 id="虚构写作及翻译">虚构写作及翻译</h3><p><ahref="https://nachtzug.xyz/2019/04/20/stand-alone-killer/">没有名字的杀人魔</a></p><p><ahref="https://nachtzug.xyz/2019/07/13/the-dragon-of-the-north/">个人翻译~ 来自北方的恶龙（爱沙尼亚童话）</a></p><p><ahref="https://nachtzug.xyz/2019/11/11/painting-or-cat-dilemma/">救世界名画还是救猫？</a></p><p>还有三个长坑没时间填，写作过程还是挺快乐的，但是写作占用的时间并不会给我带来任何收益。就写这么点东西，依然能暴露出许多基本问题，看来还是需要多磨炼。</p><h3 id="年間を振り返る">10年間を振り返る</h3><p>2019年也是2010年代的结尾，2020就要来了，之前也回顾了过去十年发生的事情。尽管我更愿意回顾过去十年看过的动画。</p><p><img src="https://i.imgur.com/kAC8Er8.png" /></p><h3 id="不服跑个分">不服跑个分</h3><p><imgsrc="https://nebula.moe/nebula-mstd/media_attachments/files/000/180/881/original/96263a890c6ebcfc.png" /></p><h3 id="梦话">梦话</h3><ul><li>梦里看新闻</li></ul><blockquote><p>看电视，新闻报道，冬天海上暴风雨，却有女子驾一艘充气游艇出海，三个海巡队员开快艇一边开扩音进行劝导，一边用滑稽的舞蹈打信号。结果快艇没一会儿就撞上游艇侧腹（电视很贴心地给了撞船特写，还能隐约听到队员和女子惨叫），队员全部落海，被救上来后接受采访。</p><p>记者：冷不冷？</p><p>队员：冷，我们三个人的贴身衣物都是用斜纹面料织的，没加保暖层。</p><p>记者：心里什么感觉？</p><p>队员：心里苦。蝎子咬狼毒不毒，狼咬羊狠不狠，我们像是蝎子被羊咬了是最狠毒的，农户都知道养蝎子的时候要看着蝎子不被别的动物咬，不然蝎子就被自己毒素毒死了。（我：你说这个谁懂啊！）</p><p>记者；形容一下这次经历。</p><p>队员：三个白银打排位碰上了王者…</p><p>（然后我就醒了。醒来狂笑。）</p></blockquote><ul><li>梦里用日语面试</li></ul><blockquote><p>梦见坐飞机去日本的教授家里面试，在场可能有不少中国学生但是大家都说日语，我跪坐着听他们提问本专业相关问题，然后艰难地用有限的词汇量回答。后来大脑突然意识到这是梦，没必要打肿脸充胖子，我的神经立刻放松下来，随口说“日本語がよくわかりません”，于是大家都笑了，现场充满了快活的空气。</p></blockquote><ul><li>在重复做过的梦里立下 flag</li></ul><blockquote><p>又做了相似的梦，从海中浮起，上岸后冒雨去火车站</p><p>（结果那天的确因为没去火车站而被安排了去爱丁堡交流）</p></blockquote><ul><li>梦见世界末日</li></ul><blockquote><p>梦里的时间体验有半天之长，残垣上火焰蔓延，到处都找不到自己担心的人。在大雨中走过一座桥，看见有一个人涉水横渡江面，我犹豫着要不要救他，眼看着他马上要上岸，又好像掉了东西回头去捡，于是被浪吞没。辗转到废船舱搭成的避难所，人头攒动，却苦于缺水缺粮。沉沉睡去，回到现实。</p></blockquote><ul><li>梦中搭讪</li></ul><blockquote><p>做了一个开头在路上搭讪陌生人的梦，到结局才发现我只是想叫几个朋友一起吃金拱门</p></blockquote><ul><li>梦里体验恐怖片</li></ul><blockquote><p>【SCENE1】亲情广告，女儿离家多年，回去见父母，剪辑女孩从小到大三个时段，最后发现是索尼SWR30手环心率版广告（这手环根本没有心率版）</p><p>【SCENE2】我视角切入，亲自和女孩一家人交谈，我的叔叔（大概）也在场。交谈中得知，女孩是我青梅竹马，过去经常吵架，连我头上的疤都是吵架伤到的。我的俯瞰视角（天之音，我的ghost）提醒我根本没这样的青梅竹马，以及头上疤的位置都错了。</p><p>【插叙】看了一段鱼的罗密欧与朱丽叶，描述水族箱里两条异种的鱼利用电波进行远距离（？）恋爱，最后母鱼被另一种食肉鱼撕了。这个片段是插叙，因为我记不得它的时间顺序，大概实际上在最前面的一些无主题片段里。</p><p>【SCENE3】女孩母亲招待我和叔叔，我们站在空空如也的房间里拿高脚杯喝饮料，女孩母亲打开电视，没料到电视正在放欧美猛鬼电影，气氛变得很尴尬，女孩母亲和我叔叔纷纷失态，我不为所动，而我的俯瞰视角快要笑场了。但我和女孩（并不知道女孩是什么时候又出场的）发现女孩母亲和我叔叔已经变成满脸血的猛鬼！</p><p>【SCENE4】我们（所以说女孩子什么时候出场的就是未解之谜）开始逃亡，在短短的走廊里奔跑，还试着用手机联络外面，但电话不通，手机屏幕乱码。走廊两侧有一些流浪的鬼开始追我们。出口看起来近在咫尺，我们却永远届不到了。全剧终，梦醒。</p></blockquote><h2 id="世界观察记录">世界观察记录</h2><h3 id="标记过的事件">标记过的事件</h3><p>X月X日 一些被网站删除或者大家自然淡忘的故事</p><p>1月3日 嫦娥4号成功着陆月背</p><p>1月6日 艺考报名系统崩溃，考生报名失败</p><p>2月11日 翟天临引爆学术圈</p><p>3月3日 费德勒100冠</p><p>4月12日 ufotable遗漏申报的税款达4亿日元，还涉嫌不正当使用慈善义卖款</p><p>4月18日 中国地震台网正式测定花莲地震震级为6.7级</p><p>4月30日 平成结束，令和开始</p><p>6月10日 纳达尔法网冠军，单个大满贯赛事冠军数第一</p><p>6月18日 四川长宁地震，因此事思考小区地震预警广播</p><p>6月20日 教师举报操场偷工减料后失踪15年 遗体现操场下方</p><p>6月23日 竹达彩奈、梶裕贵结婚</p><p>7月10日 杭州带走9岁女孩的租客已自杀 孩子下落不明</p><p>7月11日 马普所的发育生物学家 Suzanne Eaton在克里特岛参加会议时被谋杀</p><p>7月15日 德约科维奇温网冠军</p><p>7月18日 京都动画被纵火袭击</p><blockquote><p>京都动画火灾事件已经过去八天了，但是直到现在我都无法整理自己的心情。实话实说，不安、悲伤和愤怒的感情，的确在当时一瞬间混乱地爆发出来，却终究还是随着时间的流逝被慢慢冲淡。然而自那以来我一直麻木地用琐事掩盖，尽量避免主动谈及此事，白天还可以忍住，但是一到晚上还是会默默流泪。</p><p>在大火中受到伤害的，都是鲜活的生命，这个世界上最为他们心碎和担忧的，一定是他们的亲属和挚友。我是一介平凡的路人，不能用恰当的语言发表针对具体某人的任何感言，况且在社交平台上也很难把一些意见说出口。我只能祈福，受伤人员早日从身心的伤痛中恢复，也希望逝者都能够安息。</p><p>过去十几年来，京都动画一直是我倍感亲切的一家公司。如果当年初中同学没有向我推荐凉宫春日的忧郁，我可能会在小学之后永远失去看动画的乐趣。CLANNAD，凉宫，轻音，全金，玉子，中二病，冰菓，上低音号……重新审视过去，发现京都出品的许多优秀的作品一直陪伴着我，留下深刻的印象。我喜爱的声优、角色、音乐和剧情演出，无不来自京都动画的有力输出；更重要的是，从作品中体会到的爱、勇气、温柔、执着、欢笑和泪水，都是欣赏其他文艺形式时无法比拟的。因为一些不讲道理的人做出的暴行，而将创造出上面这一切的团队毁灭，我绝对无法原谅。</p><p>通过中二病的特典，我对京都动画的工作室有了初步的认知，通过白箱等作品以及其他业内资料的耳濡目染，我也对创作者们越来越憧憬。在看动画之余的讨论中，我也会默默地看他人聊动画人的工作与心情，并发自内心地为这些小花絮感动。即使知道动画行业内也有很多说不清楚的复杂内情，大量动画师都在挣扎着工作，我依然为所有我叫得出名字的或者根本不熟悉的创作者们闪闪发光的姿态所心动。就算这辈子已经没有机会踏入动画制作的大门，我也无比重视这群在幕后将我引入一个美好的想象世界的人们。</p><p>这个世界暴露出越来越多的问题，暴力犯罪与恐怖袭击充斥的头版新闻让我从多年前起便为身边的人提心吊胆，并无数次想象自己或者关心的人遭遇意外死亡的情景，并不断提醒自己如何去防范，以及用积极的态度对待那些未发生的事。然而我无法料到一群纯粹而热情洋溢的创作者们居然会遇到这样的灾难，我不希望这些人美好的未来被毫无价值的东西给破坏。因此，发生了这样的事情，并且毫无挽回余地，我无言以对。</p><p>生活仍要继续，我必须坚持下去做一些对世界有帮助的工作。这段回忆一定终生难忘，但我不想被白痴的恶意污染，带着仇恨活下去，而是抱着对我爱的人们的感激的心情，向未来看。</p><p>所以，谢谢你们。</p></blockquote><p>8月1日 《亲爱的，热爱的》出现中国地图的错误引起舆论矛盾</p><p>8月28日 上海 COSTCO 开业当天被挤爆</p><p>9月1日 miwa 和萩野公介结婚</p><p>10月8日 传说“八仙印记” 实为恐龙足迹最大一个82厘米长！却被村民填上了……</p><p>10月10日 NBA莫雷发表涉及主权言论引起舆论矛盾，上海热身赛坐无虚席</p><p>10月11日 日本黑帮爆发火拼68岁山口组枪手当警察面杀2人，而我前一天正一时兴起查山口组资料</p><p>10月27日 广州环卫工余有德被发现猝死在出租屋</p><p>12月24日 民航总医院杨文医生遇害</p><h3 id="读的书">读的书</h3><ul><li><p>吹响吧！上低音号</p></li><li><p>安吉拉·卡特的精怪故事集</p></li><li><p>编舟记</p></li></ul><h3 id="看的新番">看的新番</h3><ul><li><p>辉夜姬想让人告白</p></li><li><p>家有女友</p></li><li><p>爱死机</p></li><li><p>鬼灭之刃</p></li><li><p>异世界四重奏</p></li><li><p>MIX</p></li><li><p>骚动时节的少女们啊</p></li><li><p>FGO7</p></li><li><p>花牌情缘3</p></li><li><p>刀剑神域 Alicization</p></li></ul><h3 id="逝者">逝者</h3><p>有本钦隆 2月8日</p><p>京都动画工作室的一些人员 7月18日</p><p>民航总医院杨文医生 12月24日</p><h3 id="天气">天气</h3><p>降雨：记录173次，天数147天，最长持续天数出现在二月，长达16天，其次是一月，长达11天</p><p>降雪：记录2次，分别在2月11日和16日</p><p>低温1摄氏度：记录14次，1月8次，2月1次，12月5次</p><p>高温35摄氏度：记录20次</p><h2 id="感言">感言</h2><p>列了一堆这些那些的事情，仔细想了想，好像日子过得和2018年没什么差别。</p><p>论文投了一篇，小修之后等结果，今年总算是有一点点交代，只不过自己的工作还没有完成，却又接到各种各样的任务。依然忙得不可开交，完全没有空去自我提升及自我实现。可以想，可以去做，但是基本不能如愿以偿地成功，一切都和2018年如出一辙，仿佛进入到无止尽的循环中。一点一点地挤出刷新工作状态的时间，但是一旦导入意外的因素，就会让很多事情停滞不前。说起来我在一个地方停留的时间，时长已经有九年多，跨度也将达到十二年，这种生活大概也快走到尽头了，不知道下一站会是哪里，不过，管他呢。</p><p>人类也继续不可避免地衰退着。</p><p>每个地方的各种话题都在鸡同鸭讲，吵得不可开交，最后不了了之。</p><p>有些举着正义、公道等等大旗的人，一旦被指出行为上的错误，便会恼羞成怒，攻击纠正他的人，说到底也只是为了个人目的行动，与弱者斗争，要求别人为自己让路的巨婴罢了。</p><p>另一些人麻木地饱食终日，沉浸在精神与肉体刺激中，哈、哈、哈地发情，并经常因为自己的懒惰与常识性错误抱怨连天。</p><p>一部分人类变得更愚蠢，一部分人类变得更痛苦，而有些痛苦和愚蠢是相通的。</p><p><strong>原来如此，可是这又关我什么事呢？</strong></p><p>不管怎样，观察这样多元的世界与人类，真是太有趣了。</p><p>一点点地把工作完成，然后脱离这个圈子。没填完的坑还要继续填，学到的新语言也要继续巩固，然后再随便找几个躺在库里吃灰的游戏玩掉。不停地学习，工作，找灵感，训练，玩，如此反复。作为咖喱爱好者，明年也要吃更多的咖喱。</p><p>そして、次の曲が始まるのです。</p>]]></content>
    
    
      
      
    <summary type="html">&lt;blockquote&gt;
&lt;p&gt;昨天第一次写下的标题是“滚蛋吧2019”，看了几遍觉得太不文明了。思索再三，还是改成这样吧。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;「いつか」は来ない。それは永遠に先の未来を言うのだから。&lt;/p&gt;
&lt;h2 id=&quot;如何度过这一年&quot;&gt;如何</summary>
      
    
    
    
    
    <category term="生活" scheme="https://nachtzug.xyz/tags/%E7%94%9F%E6%B4%BB/"/>
    
  </entry>
  
</feed>
