<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>Paji&#39;s blog</title>
  
  
  <link href="/atom.xml" rel="self"/>
  
  <link href="https://blog.paji.uk/"/>
  <updated>2026-02-13T09:04:22.713Z</updated>
  <id>https://blog.paji.uk/</id>
  
  <author>
    <name>dz_paji</name>
    
  </author>
  
  <generator uri="http://hexo.io/">Hexo</generator>
  
  <entry>
    <title>WD SN770 依赖 Linux PE 升级固件，且不使用 Sandisk Dashboard</title>
    <link href="https://blog.paji.uk/2025/10/03/SN770_firmware_update/"/>
    <id>https://blog.paji.uk/2025/10/03/SN770_firmware_update/</id>
    <published>2025-10-03T06:16:04.000Z</published>
    <updated>2026-02-13T09:04:22.713Z</updated>
    
    <content type="html"><![CDATA[<p>系统运行 Sandisk Dashboard 永远闪退，那只能想办法用 PE 来升级了。</p><a id="more"></a><h2 id="前言"><a href="#前言" class="headerlink" title="前言"></a>前言</h2><p>硬盘产品的固件升级应该是非常罕见的。但是现在的产品趋向于装配更多的功能，比如使用主内存缓冲技术（后面还会提到）提高性能、改善用户体验并降低成本。而不同的操作系统调用这些功能的时候，大概率会遵循不同的规格。硬件厂商有责任去保证他们的产品遵守不同操作系统的调用方式，这对产品代码的稳定性增加了负担，也就导致了本来一生不需要变动的固件也有更新需求。  </p><p>SN770 这个产品应该是有设计缺陷的。热缓存空间设计存在问题，会导致升级至 Windows 11 24H2 的系统出现蓝屏故障。官方给出的方案是用 Sandisk Dashboard 升级固件，但是我一打开这个软件就闪退，伴随着日志文件中的错误：<code>Critical:  -- js: &quot;Uncaught (in promise) undefined&quot; Could not get the INetworkConnection instance for the adapter GUID.</code>。这个问题困扰了我蛮久的，并且还搜不到什么解决办法。</p><p>我后来发现闪迪的 <a href="https://support-en.sandisk.com/app/answers/detailweb/a_id/51469/~/internal-ssd-critical-firmware-update-available-for-solving-bsod-on-windows-11" target="_blank" rel="noopener">支持文档</a> 里面提到了可以尝试启动到安全模式后运行 Dashboard 程序。我没进行测试，但是这或许是一个有效的解决方案。</p><h2 id="更通用的解决办法"><a href="#更通用的解决办法" class="headerlink" title="更通用的解决办法"></a>更通用的解决办法</h2><p>正如标题所说，这篇文章将会记录使用 Linux PE 升级 SN770 的固件。这个办法同样适用于运行 Linux 的设备，并且无需借助 PE。<strong>在进行例如更新固件等危险操作前，备份数据和分区信息等重要数据总是没错的。</strong></p><h3 id="固件下载"><a href="#固件下载" class="headerlink" title="固件下载"></a>固件下载</h3><ul><li>首先需要确认硬盘的型号。在 Windows 上可以以管理员模式运行 PowerShell 后，执行 <code>Get-PhysicalDisk</code> 命令查看。</li><li><p>前往 <a href="https://wddashboarddownloads.wdc.com/wdDashboard/config/devices/lista_devices.xml" target="_blank" rel="noopener">https://wddashboarddownloads.wdc.com/wdDashboard/config/devices/lista_devices.xml</a> 确认设备信息。我的是 <pre><code class="hljs <lista_device">&lt;url&gt;wdDashboard/firmware/WD_BLACK_SN770_2TB/731130WD/device_properties.xml&lt;/url&gt;&lt;/lista_device&gt;</code></pre></p></li><li><p>我们可以通过 <a href="https://wddashboarddownloads.wdc.com/wdDashboard/firmware/WD_BLACK_SN770_2TB/731130WD/device_properties.xml" target="_blank" rel="noopener">https://wddashboarddownloads.wdc.com/wdDashboard/firmware/WD_BLACK_SN770_2TB/731130WD/device_properties.xml</a> 确认更具体的固件信息，不过上一部得到的信息已经足够了。</p></li><li>前往 <a href="https://wddashboarddownloads.wdc.com/wdDashboard/firmware/WD_BLACK_SN770_2TB/731130WD/731130WD.fluf" target="_blank" rel="noopener">https://wddashboarddownloads.wdc.com/wdDashboard/firmware/WD_BLACK_SN770_2TB/731130WD/731130WD.fluf</a> 下载固件。<strong>注意替换 URL 中的硬件信息和固件信息匹配你的设备！</strong> 不然刷错固件造成的后果只能自行承担。记住你下载的固件的名称。我的是 <code>731130WD.fluf</code></li><li>准备一个 U 盘或类似的媒介，格式化成 FAT32 ，准备烧入 PE 系统。下载西数的独立更新器 <a href="https://wddashboarddownloads.wdc.com/wdDashboard/application/EmbeddedLinux.zip" target="_blank" rel="noopener">https://wddashboarddownloads.wdc.com/wdDashboard/application/EmbeddedLinux.zip</a>，解压缩，并复制 <code>Img/to-esp</code> 目录下的全部内容到准备好的媒介。</li><li>将刚刚下载的 .fluf 文件复制到 U 盘的根目录，同时在根目录下创建名称为 <code>embedded-toolkit.cfg</code> 的文件。文件内容为空即可。</li><li><strong>注意：</strong> 为了防止将固件更新到不适配的磁盘，建议在进行下面的步骤之前，断开不会被操作的磁盘。如果有多块磁盘等待执行操作，除非其型号相同，建议依次顺序操作。</li><li>重启电脑，在 BIOS 中将 U 盘设置为第一引导项。在进入 PE 系统后，你需要选择被执行操作的磁盘，并且手动输入固件文件名。默认的操作即为固件更新，非必要无需更改。</li><li>设置完成后，开启更新即可。</li></ul>]]></content>
    
    <summary type="html">
    
      &lt;p&gt;系统运行 Sandisk Dashboard 永远闪退，那只能想办法用 PE 来升级了。&lt;/p&gt;
    
    </summary>
    
      <category term="教程" scheme="https://blog.paji.uk/categories/%E6%95%99%E7%A8%8B/"/>
    
    
      <category term="WD SN770" scheme="https://blog.paji.uk/tags/WD-SN770/"/>
    
  </entry>
  
  <entry>
    <title>在 Android 应用中使用 tensorflow lite 模型进行人体活动识别</title>
    <link href="https://blog.paji.uk/2025/04/02/tflite-model-in-android-app/"/>
    <id>https://blog.paji.uk/2025/04/02/tflite-model-in-android-app/</id>
    <published>2025-04-02T05:44:00.000Z</published>
    <updated>2026-02-13T09:04:22.713Z</updated>
    
    <content type="html"><![CDATA[<p>这篇文章会记录在 Android 应用程序中使用 tensorflow 训练的 CNN+GRU 模型来进行活动（体育活动：爬楼梯，走路，跑步等；呼吸活动：正常呼吸，咳嗽，窒息等）识别。这个项目使用的数据是来自三维 accelerometer 的数据，并没有用到陀螺仪。这个 accelerometer 是通过蓝牙低功耗连接的 respeck 传入的。在这里我更关心的是 tensorflow 模型和 Android app 的接入，所以蓝牙连接组件怎么写需要你自己去研究。我们使用的 CNN+GRU 模型在检测窗口是 20 条数据的配置下，可以达到实时检测率 100% 的准确度。</p><a id="more"></a><h2 id="训练模型"><a href="#训练模型" class="headerlink" title="训练模型"></a>训练模型</h2><p>完整代码放在 <a href="https://github.com/dz-paji/pdiot_model" target="_blank" rel="noopener">这里</a> 了。因为学术道德要求，没有包含数据，需要自行收集。我提供了一个示例数据以供参考格式。</p><h3 id="Feature-Engineering"><a href="#Feature-Engineering" class="headerlink" title="Feature Engineering"></a>Feature Engineering</h3><p>示例数据中包含 accelerometer 和 gyroscope 信息。我们只会使用 accelerometer 来进行训练和识别。如果你加上 gyroscope 的话，体育活动的成功检测率很容易就能到 90% 以上。我们会使用三轴的加速度来计算一个加速幅度 m, 即：<br>$$m = \sqrt{acc_x^2 + acc_y^2 + acc_z^2}$$<br>这个人工制造的特性 m 大大提升了我们识别的准确度。</p><h3 id="模型构造"><a href="#模型构造" class="headerlink" title="模型构造"></a>模型构造</h3><p>基于 accelerometer 的活动识别，算是对时间序列数据的工作，那么第一个想到的就是 RNN. 可是如果直接用 RNN 的话，最后的 F1 准确率会比较低，应该是特征有点复杂了。所以我们先让数据过一层卷积，再给 RNN 处理。有很多文献选择了 Long Short-term Memory (LSTM) 作为 RNN 层，别的组也几乎都用的是 LSTM。我们选择 GRU 是因为它对比起 LSTM，是更新的一个技术，并且训练时间能快一些。就我们自己的测试来看，LSTM 和 GRU 在准确率上没有太大的差距。<br>用 tf.keras 库，我们构建的 CNN+GRU 模型结构如下。Conv1D:MaxPooling1D:GRU:Flatten:Dense(relu):Dropout:Dense(softmax). 在查阅文献的时候，有的学者构建了两个全连接层，一个用 tanh，一个用 relu. 我们在实验的时候对比没有发现明显的差距，所以只用了一个全连接层。</p><h3 id="调参与获取模型"><a href="#调参与获取模型" class="headerlink" title="调参与获取模型"></a>调参与获取模型</h3><p>基于 tf 的调参非常简单，用 <code>kera_tunner</code> 这个模块就好了。比如：</p><pre><code class="hljs python">import keras_tuner as ktdef build_1d_cnn_gru_model(hp, ..)    # 在模型中记录需要调配的参数    model.add(MaxPooling1D(pool_size=hp.Choice('pool_size', values=[2, 3, 4])))# 构建 tunnertuner = kt.Hyperband(lambda hp: build_1d_cnn_gru_model(hp, ..),objective='val_accuracy',max_epochs=200,factor=4,directory='my_dir',project_name='cnn_gru_tuning')# 这样 tunner 就能用网格搜索帮你找到最好的参数了tuner.search(X_train, y_train_one_hot, epochs=50, validation_data=(X_test, y_test_one_hot))# 获取最好的参数，并用这个参数构建模型best_hps = tuner.get_best_hyperparameters(num_trials=1)[0]model = build_1d_cnn_gru_model(best_hps, ..)</code></pre><p>如果你的 GPU 是 N 卡的话，记得装上 cuda，这样模型训练的时候 tensorflow 就会自动用显卡加速了。<br>为了在 android 程序中使用，我们需要把这个 tf 模型转换成 tflite 格式并保存。这个也很简单。</p><pre><code class="hljs python">converter = tf.lite.TFLiteConverter.from_keras_model(model)  tflite_model = converter.convert()<span class="hljs-keyword">with</span> open(<span class="hljs-string">'model.tflite'</span>, <span class="hljs-string">'wb'</span>) <span class="hljs-keyword">as</span> f:    f.write(tflite_model)</code></pre><h2 id="Android-中使用-tflite-模型"><a href="#Android-中使用-tflite-模型" class="headerlink" title="Android 中使用 tflite 模型"></a>Android 中使用 tflite 模型</h2><p>这里使用的是 Android Studio 进行开发。直接在 File -&gt; New -&gt; Other -&gt; Tensorflow Lite Model 就可以导入已经训练好的模型。因为我们用了 kera 的 GRU 层，所以需要调用 google ai 下面的 litert 包。Android Studio 导入的时候自动加入的依赖太老了，不支持 GRU。所以在导入的时候 <strong>不要</strong> 勾选自动添加依赖。找到你 App 的 <code>build.gradle</code> 文件，在 dependencies 里面加入下面这两个包：</p><pre><code class="hljs undefined">implementation &apos;com.google.ai.edge.litert:litert-support:1.0.1&apos;implementation &apos;com.google.ai.edge.litert:litert-metadata:1.0.1&apos;implementation &apos;com.google.ai.edge.litert:litert-gpu:1.0.1&apos;implementation(&quot;org.tensorflow:tensorflow-lite-select-tf-ops:2.16.1&quot;)</code></pre><p>调用模型的时候，需要注意 input window 的大小，我的 window size 是 20，有 4 个 feature，数据大小是 4，那我就需要创建一个 4 *20*4 的 bytebuffer。最后转成 float buffer。</p><pre><code class="hljs kotlin"><span class="hljs-keyword">val</span> byteBuffer = ByteBuffer.allocate(<span class="hljs-number">4</span> * <span class="hljs-number">20</span> * <span class="hljs-number">4</span>)byteBuffer.order(ByteOrder.nativeOrder())<span class="hljs-keyword">for</span> (<span class="hljs-keyword">data</span> <span class="hljs-keyword">in</span> bufferedData) &#123;    <span class="hljs-comment">// construct a new byte buffer for each data point</span>    <span class="hljs-keyword">var</span> dataBuffer = ByteBuffer.allocate(<span class="hljs-number">4</span> * <span class="hljs-number">4</span>)    dataBuffer.order(ByteOrder.nativeOrder())    <span class="hljs-keyword">for</span> (value <span class="hljs-keyword">in</span> <span class="hljs-keyword">data</span>) &#123;        dataBuffer.putFloat(value)    &#125;    dataBuffer.flip()    byteBuffer.put(dataBuffer)&#125;byteBuffer.flip()<span class="hljs-keyword">val</span> floatArray = FloatArray(byteBuffer.capacity() / <span class="hljs-number">4</span>)byteBuffer.asFloatBuffer().<span class="hljs-keyword">get</span>(floatArray)</code></pre><p>然后把 float buffer 转换成 tensor，以供模型读取。</p><pre><code class="hljs kotlin"><span class="hljs-keyword">val</span> inputFeature0 = TensorBuffer.createFixedSize(intArrayOf(<span class="hljs-number">1</span>, <span class="hljs-number">20</span>, <span class="hljs-number">4</span>), DataType.FLOAT32)inputFeature0.loadBuffer(byteBuffer)</code></pre><p>然后就是调用模型，获取返回结果了。这个和示例代码是一样的。</p><pre><code class="hljs kotlin"><span class="hljs-keyword">val</span> outputs = model.process(inputFeature0)<span class="hljs-keyword">val</span> outputArray = outputs.outputFeature0AsTensorBuffer.floatArray<span class="hljs-keyword">var</span> result = outputArray.indexOfFirst &#123; it == outputArray.maxOrNull()!! &#125;</code></pre>]]></content>
    
    <summary type="html">
    
      &lt;p&gt;这篇文章会记录在 Android 应用程序中使用 tensorflow 训练的 CNN+GRU 模型来进行活动（体育活动：爬楼梯，走路，跑步等；呼吸活动：正常呼吸，咳嗽，窒息等）识别。这个项目使用的数据是来自三维 accelerometer 的数据，并没有用到陀螺仪。这个 accelerometer 是通过蓝牙低功耗连接的 respeck 传入的。在这里我更关心的是 tensorflow 模型和 Android app 的接入，所以蓝牙连接组件怎么写需要你自己去研究。我们使用的 CNN+GRU 模型在检测窗口是 20 条数据的配置下，可以达到实时检测率 100% 的准确度。&lt;/p&gt;
    
    </summary>
    
      <category term="笔记" scheme="https://blog.paji.uk/categories/%E7%AC%94%E8%AE%B0/"/>
    
    
      <category term="tensorflow" scheme="https://blog.paji.uk/tags/tensorflow/"/>
    
      <category term="Android development" scheme="https://blog.paji.uk/tags/Android-development/"/>
    
      <category term="tflite" scheme="https://blog.paji.uk/tags/tflite/"/>
    
      <category term="CNN" scheme="https://blog.paji.uk/tags/CNN/"/>
    
      <category term="GRU" scheme="https://blog.paji.uk/tags/GRU/"/>
    
      <category term="安卓开发" scheme="https://blog.paji.uk/tags/%E5%AE%89%E5%8D%93%E5%BC%80%E5%8F%91/"/>
    
  </entry>
  
  <entry>
    <title>失去魔法的好莱坞</title>
    <link href="https://blog.paji.uk/2025/03/30/hollywood-what-remains/"/>
    <id>https://blog.paji.uk/2025/03/30/hollywood-what-remains/</id>
    <published>2025-03-30T15:04:00.000Z</published>
    <updated>2026-02-13T09:04:22.713Z</updated>
    
    <content type="html"><![CDATA[<p>今天不单独写影评了，用最近看的电影来聊一聊现在的好莱坞。</p><a id="more"></a><p>在经历了战况凄惨的迪士尼“三部曲”（狮子王，白雪公主，A Complete Unknown）之后，我对好莱坞充满了疑问。究竟是什么样的变革，能让一个曾经产出电影标杆的地方，变得遍地狼藉。</p><h2 id="如今的迪士尼"><a href="#如今的迪士尼" class="headerlink" title="如今的迪士尼"></a>如今的迪士尼</h2><p>在 19 年收购 20 世纪福克斯影业之后，迪士尼集团下大的电影发行工作室可以说是多了两位猛将，并且在很大程度上弥补了迪士尼本身在家庭喜剧，动作冒险片上的欠缺。并且尤其是通过 20 世纪旗下的 Searchlight Pictures，补上了独立电影和文艺片的空缺。但是看看最近迪士尼发行的电影，除了上面提到的三部曲之外，新美队、海洋奇缘2，他们制作的并且宣发比较给力的电影。但是这些电影都逃脱不了公式化剧情的诟病，甚至部分电影让人怀疑是不是拿 AI 写的剧本。我调几个我觉得比较有特点的来写写。</p><h3 id="Musical"><a href="#Musical" class="headerlink" title="Musical"></a>Musical</h3><p>不知道从什么时候开始，musical 这股风突然席卷了好莱坞。比较大爆的是 24 年的 Wicked。这类的电影不是说之前没有，只是 24 年之后特别多。狮子王，海洋奇缘2 这两部是和 wicked 差不多前后脚上映的。白雪公主也是 musical，但是要晚很多，这部我们等下再说。狮子王给我的感觉，是迪士尼知道环球的 wicked 项目之后急了，赶鸭子上架弄出来的。这部电影我进去看了一个小时，实在是看不下去跑出来了，并且现在让我对他评价我都有点词穷，能想到的只有一个字 - 懒。故事拖拖拉拉的一点意思都没有，大场景的设计也没看头，并且演员完全没有唱 musical 的功底。其实 wicked 的 Ariana 也没有 musical 唱功。唱 musical 很考验对气息的把控，也就是得有中气。这样唱出来的声音才是立体的，有棱角的，能支撑起 musical 的场面的。Ariana 唱自己的歌的时候都没啥气息。</p><p>那么问题来了，演员的唱功不行，怎么办呢？聪明的好莱坞制片厂告诉你：后期啊！我可以做视觉特效，那我也可以做声音特效啊。于是乎，演员不够后期来凑，这些 musical 电影变用上了声音处理软件。过了一遍后期之后，演员唱的都在调上，很好是不是？但是还是有一个问题没有解决：中气。这个是后期调不出来的，并且在调音的过程中是要损失声音的特性的。最后出来的结果就是演员的声音听起来很不真实，而且也很不立体。好处是可以保证是一直在调上的。我觉得请 Ariana 来演 wicked 更多就是资本的运作。流行歌手是不适合去唱 musical 的，musical 的唱功也不是一时半载可以练出来的。哦，A Complete Unknown 也是。在这个片子之前我还是很喜欢甜茶的，看了这片子之后直接脱粉了。</p><p>A Complete Unknown 的问题是他的剧本。它把 Bob Dylan 这样一个写出了很多特殊时代背景、极具思考价值的歌的人，刻画成了和情人做爱来激发创作灵感的人。而 Bob Dylan 所经历的特殊时代背景：美国的社会变革，反战主义等等，直接被一笔带过了。影片中还有提到过一次核打击警告的误触，但这个事件成为 Bob Dylan 找到新的情人的引线。。我觉得这个编剧真的很逆天。全片做的好的点，是把甜茶的声音调教的很像 Bob Dylan，包括使用调音唱歌。我的评价是，不如打开 Spotify 去听原唱。比较类似的，白雪公主的剧本也有问题。首先，我不觉得中文互联网上声音很大的 <em>白雪公主不够白</em> 是个问题。我是喜欢 Rachel Zegler 这个演员的，并且是从她的出道作 West Side Story (2021 版) 看的。她在 West Side Story 中就体现出来了很好的 musical 唱功。West Side Story 里面的歌是她自己真唱的啊，1961 版的是找的专业演员唱的。在白雪公主里，Rachel 的声音有被修，但是已经比别人好很多了 - 中音和高音的质量是可以的。而白雪公主的故事，就有点既要、又要的味道了。我们都知道，白雪公主本身是童话嘛，说好听点是教导小孩要做真善美，说难听点就是哄小孩的。我觉得一个童话故事之所以能经久不衰，它得足够简单，两级分化十分严重，好人就是好人，坏人就是坏人。这样有了比较极端的对比之后，故事中的浪漫就让人感觉很为之撼动。但是！迪士尼说他们不想要那种，王子情到深处就爱上了白雪公主，俩人之前都不认识，王子就稳了昏迷的公主，然后快快乐乐幸幸福福在一起的大男子主义，想要来点新的，来点合理的，两情相悦的，有感情基础的剧本。我觉得这没问题啊，并且他们在这一部分上写的是没问题的。那我为什么前面说，这是个<em>纪要，又要</em>的问题？就因为，迪士尼在想搞点真实的时候，还是放不下这是一个童话故事的底子。在我们经理了显示世界的真实之后，剧情还是被强行掰回了我们需要真善美，美丽的公主擦亮了群众和士兵的双眼，唤醒了士兵们对之前人人都十分天真的社会的记忆，然后叛变了。。。你想想，一边看着这样的剧情，一边看白雪公主那不贴合现实的公主病，黑心皇后的“花只能看看，有硬实力才能让你站起来” 等等.. 就十分割裂啊。要么就好好讲好新时代的白雪公主故事，要么就拿白雪公主的设定写个新故事出来。这种为了满足政治正确所带来的牺牲与填补真的就是一坨。</p><h2 id="97-届奥斯卡"><a href="#97-届奥斯卡" class="headerlink" title="97 届奥斯卡"></a>97 届奥斯卡</h2><p>对比起迪士尼三部曲，第 97 届奥斯卡也是让人眼前一黑啊。别的不说了，就说说最佳影片。我们先来看看提名的全名单：</p><ul><li>野兽派建筑师(The Brutalist)</li><li>A Complete Unknown</li><li>Conclave</li><li>Dune: Part Two</li><li>Emilia Pérez</li><li>Nickel Boys</li><li>I’m Still Here</li><li>The Substance</li><li>Wicked</li><li>Anora</li></ul><p>在这些里面，Anora 得奖。野兽派建筑师太犹太复国主义了，这个不存在得奖可能。体量比较小的Emilia Pérez，Nickel Boys，I’m Still Here 我没看过，不做评价。Wicked 前面简单带了一下，这个片子剧情节奏上也有问题。本来是舞台剧改的，正常节奏拍下来，剧本可以改一改，结果应该是挺好的。但是导演非要拍上下级。我是挺不理解的。Dune: Part Two.. 我觉得没有 1 来的那么震撼了，而且也是一个肯定会有续作，还有个前作在的，被夹在三明治中间的影片。观感上没那么好。ConClave 我觉得很可惜，这部电影的导演、摄影都是之前奥斯卡最佳外语影片<em>西部无战线</em>的人。他们也继续在这部电影中展现出来了极高的剪辑、节奏把控、灯光、摄影、艺术细节。但是就是临门一脚，被剧本给坑了。这个剧本真的是不合逻辑，不合情理还带着点异想天开。真的为难 Ralph Fiennes 和 Sergio Castellitto 了。如果但看剧本的话，我只能给 4 分；但是这二位把观感拉到了 6 分，真的为难二位了。本来应该是很有希望拿奖的片子的。</p><p>然后就是重头戏了，Anora。讲的是俄罗斯叛逆公子哥在自由美利坚(或许)爱上了风情店员工（女主 anora）的故事。这部电影的中期表现、结构是灾难级别的。全片 2 小时 19 分钟，中间大概有半个小时的闹剧，真的是闹剧。节奏乱的让人很烦的那种。如果高尚的你觉得这也是一种艺术追求的话，那我没话说。我是欣赏不来。这个电影的结局也挺逆天的，公子哥没办法听家里的话和家里走了，anora 找了公子哥父母手下的手下的手下继续生活下去。。。然后俩人在手下送被赶出家门的 anora 回家，到了地方之后在车里又 DOI 了。。。我觉得挺逆天的。</p><h1 id="总结"><a href="#总结" class="headerlink" title="总结"></a>总结</h1><p>絮絮叨叨的还写了挺多，主要还是觉得 97 届奥斯卡，好莱坞的这些制片厂都烂完了。甚至没有拿出几个还算可以的答卷。并且我是真觉得 Anora 能拿奥斯卡很不可思议。</p>]]></content>
    
    <summary type="html">
    
      &lt;p&gt;今天不单独写影评了，用最近看的电影来聊一聊现在的好莱坞。&lt;/p&gt;
    
    </summary>
    
      <category term="影评" scheme="https://blog.paji.uk/categories/%E5%BD%B1%E8%AF%84/"/>
    
    
      <category term="影评" scheme="https://blog.paji.uk/tags/%E5%BD%B1%E8%AF%84/"/>
    
      <category term="好莱坞" scheme="https://blog.paji.uk/tags/%E5%A5%BD%E8%8E%B1%E5%9D%9E/"/>
    
      <category term="电影" scheme="https://blog.paji.uk/tags/%E7%94%B5%E5%BD%B1/"/>
    
  </entry>
  
  <entry>
    <title>2024 年终总结</title>
    <link href="https://blog.paji.uk/2024/12/27/2024-end-of-year/"/>
    <id>https://blog.paji.uk/2024/12/27/2024-end-of-year/</id>
    <published>2024-12-27T13:04:59.000Z</published>
    <updated>2026-02-13T09:04:22.713Z</updated>
    
    <content type="html"><![CDATA[<p>又是一年一度的年终总结时间。</p><a id="more"></a><h2 id="博客数据"><a href="#博客数据" class="headerlink" title="博客数据"></a>博客数据</h2><p>先来看看博客的数据吧。在 2024 年里，这个博客的绝大多数用户来自中国大陆。香港和美国的访客分别位居第二，三。这个数据也符合预期，毕竟文章内容都是中文。</p><p><img src="https://storage.pajilabs.com/api/raw/?path=/Images/firefox_December_24_lORopFmClo.png" alt="https://storage.pajilabs.com/api/raw/?path=/Images/firefox_December_24_lORopFmClo.png"><br><em>2024 年博客访问量</em></p><p>很可惜的是，阅读量最多的几篇文章和 23 年相比没有任何变化。</p><h2 id="飞行"><a href="#飞行" class="headerlink" title="飞行"></a>飞行</h2><p>24 年对我来说是飞行时间激增的一年。总共搭乘了 29 个记录在案的航班。其中，波音 777-300ER 是我乘坐最多的机型，总共有 7 次。这要归功于很多次的卡航飞行。</p><p><img src="https://storage.pajilabs.com/api/raw/?path=/Images/firefox_December_24_VK2WHMzA5f.png" alt="https://storage.pajilabs.com/api/raw/?path=/Images/firefox_December_24_VK2WHMzA5f.png"><br><em>2024 飞行统计</em></p><h2 id="说点想说的"><a href="#说点想说的" class="headerlink" title="说点想说的"></a>说点想说的</h2><p>2024 对我来说是分割感很强的一年。关于上半年的记忆都是做毕设，穿过阳光的 Southampton common 去开会，上课。或许是因为阳光的缘故，现在回想起来并不会觉得紧张或者忙碌。可爱丁堡的夏天确实是短暂的。Southampton common 也变成了 meadows - 没有了东京御苑的大树，取而代之的是 The long walk in Windsor. 我知道我在爱丁堡的时间会是短暂的，是一段灰色时间，是 layover. 因为它即欢迎了我的本科结业，又要把我送向未知的前方。来英国之后，我几乎没用过“家”这个词，我在极力避免用这个词。家对我来说是一个较为 permanent 的地方，是能承载一天忙碌的地方，私密的地方。</p><p>今年的电影也是进一步的商业化，烂片更层出不穷了。也不知道为什么，好莱坞对出产 musical 的兴趣突然激增:wicked, the wild robot, mufasa..现在看来抛弃模板戏已经不太现实了，那比拼的就是谁的模板打磨的足够好，掺的小料足够诱人。破地狱算是做的好的模板戏的一个例子。影片的前半部分更像记述着香港自己的传统，与其在和现代文化下的碰撞。后半部分就是偏向合家欢式的喜剧结局。挺符合黄子华近几年排的电影的结构的。conclave,也是另一部可圈可点的电影。导演 Edward Berger 的上一部作品：西线无战事，也斩获了奥斯卡的提名和奖项。这部 conclave 的摄影和剪辑，以及音乐的搭配可谓上乘。就是这个剧本十分迷惑。与之对比下，《好东西》的剧本要好很多。这个电影讨论的东西就很现实，很生活。中国人一直在追求的好，似乎是刻在 DNA 里的。邻里聊天也是，要教育好小孩，让 ta 上个好学校，找个好工作，娶个好对象。这种望子成龙式的教育贯穿着每一个人。说到底，还是对人生的意义的思考。不是所有的东西都要是好的。一个人的感受，或者一个事情的结果，可以不那么好，这也未必是坏事。而重要的，是能接受它，接受这个结果，处理它。这才是坚强的体现，这才是面对诸多事务和感受，一个人能做到的最好。再加上电影的叙事角度，对好东西的很多评价也很像影片里在尝试去表达的一样。如果人们真的是好好看完，能够消化，想必也发表不出来那样的言论 - 当然了，想必他们是不会去看的。站出剧情，好东西这部电影有很多的内容是依托对话展开的。这很考验导演对于运镜和节奏的把控。看成片就知道，他们做到了。这部电影的对话处理的非常的好。相比于爱情神话而言，好东西依然在尝试讲述现代上海人的故事。只是没有了小资的文艺气息，多了中产带来的商业化的味道。</p><p>之前刷到过一张图，说最先看到的三个词能概括你的 2025. 我记得我先看到的是 sick, love &amp; money. 拭目以待吧。2025 会是疯癫的一年，希望我能和他合作愉快。</p>]]></content>
    
    <summary type="html">
    
      &lt;p&gt;又是一年一度的年终总结时间。&lt;/p&gt;
    
    </summary>
    
      <category term="年终总结" scheme="https://blog.paji.uk/categories/%E5%B9%B4%E7%BB%88%E6%80%BB%E7%BB%93/"/>
    
    
      <category term="年终总结" scheme="https://blog.paji.uk/tags/%E5%B9%B4%E7%BB%88%E6%80%BB%E7%BB%93/"/>
    
  </entry>
  
  <entry>
    <title>人工智能和自动化技术在现在就业环境下的职务 - 文献有感</title>
    <link href="https://blog.paji.uk/2024/10/27/stereotype-and-tagging/"/>
    <id>https://blog.paji.uk/2024/10/27/stereotype-and-tagging/</id>
    <published>2024-10-27T14:24:09.000Z</published>
    <updated>2026-02-13T09:04:22.713Z</updated>
    
    <content type="html"><![CDATA[<h2 id="前言"><a href="#前言" class="headerlink" title="前言"></a>前言</h2><p>这篇博文是看了 <a href="https://doi.org/10.1007/978-3-030-16187-3_34" target="_blank" rel="noopener">The Role of AI and Automation on the Future of Jobs and the Opportunity to Change Society</a> 这篇文献之后的一点感悟。我觉得这篇文献写的很好，记录在这里来分享一下。</p><blockquote><p>If the machines can do our work, why are we still working? And will this happen the same way in the future?<br>如果机器可以完成我们的工作，为什么我们还要上班呢？这样的情况在未来也会一样吗？</p></blockquote><a id="more"></a><h2 id="人的经济价值"><a href="#人的经济价值" class="headerlink" title="人的经济价值"></a>人的经济价值</h2><p>首先说明，我不是研究经济的，我甚至都没上过经济学的课。但是谈论 AI 在就业上的问题就不得不提及经济问题。这我就直接照搬作者的观点了。先直接说结论，他们认为 AI 代替工人，完成部分工作是板上钉钉的事情。而工人的工作会转化为更具创造性的，或是担当起连接客户和雇主之间关系的桥梁。简单，重复的工作是可以被 AI 代替的，但是维持人际关系不可以。</p><p>这里有一个可能更易懂一点的例子。在第一台 ATM 机问世后，它对银行业造成了两个就业影响。很显然，ATM 代替了柜台里帮忙存款和取款的人，帮助银行降低了网点的运营成本。同样的，在网点成本降低之后，银行会去开放更多的网点，而这也会需要更多的员工。网点的运营不是只要有人给存款和取款就好了，还需要有客户经理之类的。这些员工会负责维持和客户的关系，吸引他们来存款，购买理财产品之类的。这个道理很简单，换言之，一个教授可以被在线课堂，网络上的教学视频之类的东西代替。但是学生和教师之间的这种关系是他们代替不了的。但但是网络课程不会让人产生学习，交换知识的欲望。就好比，让你在看这篇长长的文章和看一个由人来讲述的科普视频之间选择的话，我相信你会选择后者。</p><p>牛津大学在 2013 年的一个研究指出，在现有的工作岗位中，约有 47% 在未来 20 年是可以被自动化替代的。那么，其实对于 AI 与自动化技术在就业中的问题就变成了在这 47% 的工作被替代时，AI 能不能创造出足够多的岗位来满足就业话岗位。</p><h2 id="工业革命的故事"><a href="#工业革命的故事" class="headerlink" title="工业革命的故事"></a>工业革命的故事</h2><p>工业革命这肯定不是什么陌生的事情了。通过机器的劳动替代人力，大大增强了生产力。那么关于在企业中使用新的技术，雇员们的接受程度又如何呢？Fetch Robotics 的 CEO 描述了 5 个阶段。</p><ol><li>恐惧。雇员认为机器是来取代他们的，尽管大部分情况下是来改善他们工作的。</li><li>顾虑。雇员发现机器不是用来取代他们的，但是会认为自己没有资格与他们互动。</li><li>好奇。随着雇员在工作中日益使用更多的新技术，他们会好奇这些新东西到底能做些什么。</li><li>包容。雇员的生产力会随着他们适应了在工作中运用新工具而提高。</li><li>满意。通常雇员们会喜欢这种新的工作体验。而新的技术也确确实实帮助了他们的工作。</li></ol><p>注，上面的五个阶段是一个 CEO 在企业的管理者角度下提出的想法。在很多情况下机器和 AI 是会代替在岗位上的工人的。比如说亚马逊在做的无人超市计划。这对于雇主和用户来说可能是件好事，但是对打工人来说就未必了。</p><h2 id="展望"><a href="#展望" class="headerlink" title="展望"></a>展望</h2><p>AI 和机器将会取代人工已经是必然，那么他们会取代至什么程度呢？取代流水线上的工人，完成一项一项零件的组装是一种；取代工程师，金融证券操作员，让人专注于关系的维持和人文体验也是一种；甚至是得到超前发展，能够取代大部分工作，但是又没有创造出足够多的新岗位。进而导致只有金字塔顶端的人收益其中，拉大贫富差距。后者确实是有点悚然听闻了，不过这也是我们最不愿意看到的景象。</p>]]></content>
    
    <summary type="html">
    
      &lt;h2 id=&quot;前言&quot;&gt;&lt;a href=&quot;#前言&quot; class=&quot;headerlink&quot; title=&quot;前言&quot;&gt;&lt;/a&gt;前言&lt;/h2&gt;&lt;p&gt;这篇博文是看了 &lt;a href=&quot;https://doi.org/10.1007/978-3-030-16187-3_34&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;The Role of AI and Automation on the Future of Jobs and the Opportunity to Change Society&lt;/a&gt; 这篇文献之后的一点感悟。我觉得这篇文献写的很好，记录在这里来分享一下。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;If the machines can do our work, why are we still working? And will this happen the same way in the future?&lt;br&gt;如果机器可以完成我们的工作，为什么我们还要上班呢？这样的情况在未来也会一样吗？&lt;/p&gt;
&lt;/blockquote&gt;
    
    </summary>
    
      <category term="笔记" scheme="https://blog.paji.uk/categories/%E7%AC%94%E8%AE%B0/"/>
    
    
      <category term="人工智能" scheme="https://blog.paji.uk/tags/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/"/>
    
      <category term="自动化" scheme="https://blog.paji.uk/tags/%E8%87%AA%E5%8A%A8%E5%8C%96/"/>
    
      <category term="就业" scheme="https://blog.paji.uk/tags/%E5%B0%B1%E4%B8%9A/"/>
    
      <category term="UBI" scheme="https://blog.paji.uk/tags/UBI/"/>
    
  </entry>
  
  <entry>
    <title>旅游，是为了寻找文化冲击</title>
    <link href="https://blog.paji.uk/2024/07/09/culture-shock-of-travel/"/>
    <id>https://blog.paji.uk/2024/07/09/culture-shock-of-travel/</id>
    <published>2024-07-09T09:01:40.000Z</published>
    <updated>2026-02-13T09:04:22.713Z</updated>
    
    <content type="html"><![CDATA[<p>一圈旅游下来，我开始思考，我们为什么会沉迷于旅游。</p><a id="more"></a><p>我觉得大部分人旅游的起点应该都是旅行团。这是最省心的途径了：不需要做计划，只要对宣传彩页满意就可以出发。团体游在智能手机并不普及的年代还是很吃香的，因为人们没有太多获取信息的手段。对于一个地方了解局限于口口相传、电视节目和旅行社的宣传。那个时候也是团体游很混乱的一个时期，宰客、强制购物等等事件可以说层出不穷。我还经历过实际行程和宣传的行程不一样的事情，结束之后举报也毫无作用。在这之下隐藏着的，还有糟糕的团餐和住宿。这些事情可以说是把出游变得毫无体验感。</p><p>让我摆脱旅行团是有很多因素的。互联网的普及和携程、去哪儿、马蜂窝这种产品的起家功不可没。不过再深入就有点跑题了，还是说回旅行本身。在抛弃了旅行社之后，我一开始的行程安排也还是效仿旅行社，即以景点为主。这种安排随着走过更多的地方而变得对我不再有那么大的吸引力。转之我会对一个城市的人文层面更感兴趣。比如他们的日常生活是怎样的，和我所熟知的有什么不同。从英国回来之后，还要加上逛商场、商业区这种地方。不得不说，南安普顿城市生活的贫瘠，让我丧失了对商场的最后一点抵抗力。</p><p>我在南安普顿读了三年的书，就在“村里”住了三年。尤其是第三年最为偏僻。宿舍最近的便利店要走五分钟，并且附近只有两个酒馆和一个周末不开门的饭店。我每次去超市都得走上 15 分钟去镇上，一来一回就是半个小时。而住在这里的好处，就是出门就是一个叫 Southampton common 的大公园，顶级的绿化，有大片的草地。到了晚上，漆黑程度是能让你晚上在这个公园看见极光的那种（虽说也是因为那次极光太强了）。</p><p><img src="https://storage.pajilabs.com/api/raw/?path=/Images/20240511_014732.JPG" alt="南安的极光"></p><p>这样的环境让我开始对越来越多的自然景点丧失了兴趣。举个例子来说，就是苏州的拙政园。这里面有水，有荷花，有亭子，有树，有景。这其实算是一个布置的很好的景点了，而且确实有很多的游客前来观光。我一圈逛下来，没有觉得这比苏州中心要多几分趣味，因为在一年的时间里，我已经习惯了 common 绿树丛生所带来的惬意，而局促地拙政园在为我带来更强烈的震撼的任务上，毫不出奇的失败了。除了拙政园之外，还有徐州的云龙湖。云龙湖就更欠点意思了。面积再打的水面，如果你想领略它的美，你只能沿着岸边走走看看。最多租个船，去水面上荡漾一下。common 就不一样了，你完全可以找一个你喜欢的位置，一屁股坐在草地上：听歌、读书或是做你喜欢的事情去放松。</p><p>云龙湖对比起西湖欠缺的，也有旅游上的开发。这也是大多数非旅游城市的问题。在旅游城市，我有很多机会对着城市、景点去拍照留念，亦或是沉浸于其中，感受它所带来的体验，感受它的不一样。所以，当一个渔村刻意的把过时的生活方式展现出来，让游客拍照留念的时候，也似乎就合理了。这，是一种对认知的冲击，也是文化的冲击。我们旅游其实就是为了寻找这种感觉，然后一次又一次的将自己置身其中。</p>]]></content>
    
    <summary type="html">
    
      &lt;p&gt;一圈旅游下来，我开始思考，我们为什么会沉迷于旅游。&lt;/p&gt;
    
    </summary>
    
      <category term="杂" scheme="https://blog.paji.uk/categories/%E6%9D%82/"/>
    
    
      <category term="旅游" scheme="https://blog.paji.uk/tags/%E6%97%85%E6%B8%B8/"/>
    
      <category term="文化" scheme="https://blog.paji.uk/tags/%E6%96%87%E5%8C%96/"/>
    
  </entry>
  
  <entry>
    <title>不一样的飞行体验：卡塔尔航空伪超经飞行体验</title>
    <link href="https://blog.paji.uk/2024/04/27/fly-like-no-others-qr-pe-review/"/>
    <id>https://blog.paji.uk/2024/04/27/fly-like-no-others-qr-pe-review/</id>
    <published>2024-04-27T06:15:00.000Z</published>
    <updated>2026-02-13T09:04:22.713Z</updated>
    
    <content type="html"><![CDATA[<p>最近坐卡航飞了一次香港，坐的是老国泰 77W 的超经座椅，遂来记录一下。</p><a id="more"></a><p>多哈到香港现每天有两班航班(QR816/QR818)，且均为老国泰的 77W 执飞(A7-BOA ~ A7-BOH)。这些 77W 是四仓布局，即：头等、商务、超经和经济。但是卡塔尔没有超经这个仓位，所以他们就把原来超经的座位划到经济仓，取名 comfort plus。正常情况下选座要约 100 磅(折合人民币约900￥)。但是如果你是他们贵宾俱乐部银卡及以上，可以在 check-in 的时候要他们免费帮你选。淡季的时候不用担心会卖光，但是旺季可能就不好说了。</p><p>这批座椅很类似他们老 773 的商务舱，有非常高的舒适度和一个小腿托。我坐这个飞了八个小时，一点也不累的。不过因为是老飞机，机上娱乐系统有点老，我第一程的那个座椅的甚至直接坏了。不过那班人非常之少，我去旁边的座位用了。</p><p><img src="https://storage.pajilabs.com/api/raw/?path=/Images/20240305_084228.JPG" alt="https://storage.pajilabs.com/api/raw/?path=/Images/20240305_084228.JPG"></p><p>其实这个照片里看到那个娱乐系统躺在地上，我就知道它大概是寄了。</p><p><img src="https://storage.pajilabs.com/api/raw/?path=/Images/20240305_084538.JPG" alt="https://storage.pajilabs.com/api/raw/?path=/Images/20240305_084538.JPG"></p><p>这个座椅的坏处是，如果你遇到了像我一样，上座率很低的情况，你不能把这一排都霸占了。两个座椅之间的扶手是不能收起来的。</p>]]></content>
    
    <summary type="html">
    
      &lt;p&gt;最近坐卡航飞了一次香港，坐的是老国泰 77W 的超经座椅，遂来记录一下。&lt;/p&gt;
    
    </summary>
    
      <category term="评测" scheme="https://blog.paji.uk/categories/%E8%AF%84%E6%B5%8B/"/>
    
    
      <category term="卡塔尔航空" scheme="https://blog.paji.uk/tags/%E5%8D%A1%E5%A1%94%E5%B0%94%E8%88%AA%E7%A9%BA/"/>
    
      <category term="Qatar airways" scheme="https://blog.paji.uk/tags/Qatar-airways/"/>
    
      <category term="Privilege club" scheme="https://blog.paji.uk/tags/Privilege-club/"/>
    
      <category term="寰宇一家" scheme="https://blog.paji.uk/tags/%E5%AF%B0%E5%AE%87%E4%B8%80%E5%AE%B6/"/>
    
      <category term="A7-BOC" scheme="https://blog.paji.uk/tags/A7-BOC/"/>
    
      <category term="A7-BOE" scheme="https://blog.paji.uk/tags/A7-BOE/"/>
    
  </entry>
  
  <entry>
    <title>2023 年终总结</title>
    <link href="https://blog.paji.uk/2024/01/14/2023-final-report/"/>
    <id>https://blog.paji.uk/2024/01/14/2023-final-report/</id>
    <published>2024-01-14T07:20:59.000Z</published>
    <updated>2026-02-13T09:04:22.713Z</updated>
    
    <content type="html"><![CDATA[<p>年终总结似乎是各个独立博客每年都会发布的固定文章。我从 17 年的不知道写什么，经历了 18 年的把干出来的事全都罗列一大堆，一直过到 20 年的想写，但是写不动了。21 和 22 年的年终总结更是起笔都没有。现在想了想，还是稍微写一点东西记录下 23 年吧。20 年的年终总结也放出来了，虽然没有写完。也或许算是已经写完了。如果你有兴趣的话，可以去 <a href="/2021/01/31/2020-final-report/">这里</a> 看一下</p><a id="more"></a><h2 id="流量分析"><a href="#流量分析" class="headerlink" title="流量分析"></a>流量分析</h2><p>首先来分析一下博客的访问量数据。在 2023 年，总共有约 2000 名用户访问博客，并且来自世界的各个地方。当我看到有来自印度，巴西，加拿大的访客时，我是很吃惊的。稍微深究一下后发现，来自大中华区域的访客会访问具体的文章页面，而来自其他区域的访客(日本、阿根廷等)则是只会访问首页。不排除是因为这些地方的用户看不懂中文，我感觉是爬虫请求的概率很大。</p><p><img src="https://storage.pajilabs.com/api/raw/?path=/Images/firefox_January_15_JmzNWdptFi.png" alt="users_2023"><br><em>2023 年博客访问量</em></p><p><img src="https://storage.pajilabs.com/api/raw/?path=/Images/firefox_January_15_nhZmfGWXeO.png" alt="user_countries_23"><br><em>2023 年用户地域来源</em></p><p>大概有 40% 的访客是源自一个刷访问量的网站，我不知道是谁给我放上去了还是怎么样的。为网站引流的大户是搜索引擎没跑了，剩余的就是来自友链的贡献了。比较有趣的是我在 referral 里面看到了一个 Google 的反代…</p><p><img src="https://storage.pajilabs.com/api/raw/?path=/Images/firefox_January_15_UXxiWgtCJD.png" alt="user_referral_2023"><br><em>2023 年用户来源</em></p><p>然后来看看访问最多的几篇文章。首当其冲的是安装电车 GO 的教程(写于 21 年)，然后是 wireguard 异地组网的教程(写于 22 年)，接下来是关于 Android captive login 的文章(也是写于 21 年)。虽然我 23 年确实没写多少文章，前 10 里面一篇也没上榜还是有点逆天了。可能影评真的没人看吧。</p><p><img src="https://storage.pajilabs.com/api/raw/?path=/Images/firefox_January_15_AAxIrQNYK8.png" alt="most_viewed_posts"><br><em>2023 年浏览最多的文章</em></p><h2 id="项目"><a href="#项目" class="headerlink" title="项目"></a>项目</h2><p>来说说项目吧，这一年做的东西还是挺多元的。</p><h3 id="一个文件管理系统"><a href="#一个文件管理系统" class="headerlink" title="一个文件管理系统"></a>一个文件管理系统</h3><p>暑假的时候几个人二开了一个文件管理系统，基本上除了基础架构都重新写了一遍。前前后后一共产生了 60k 行屎山。这个项目好像具体内容不能说，就放个代码行数统计吧。</p><p><img src="https://storage.pajilabs.com/api/raw/?path=/Images/WindowsTerminal_January_15_TSyd5P0VXM.png" alt="prog_lines"></p><h3 id="刷预约申请时间段系统"><a href="#刷预约申请时间段系统" class="headerlink" title="刷预约申请时间段系统"></a>刷预约申请时间段系统</h3><p>这个项目我主要是做的运维和比较小的代码改动。凭借这个项目也让我豪横的尝试了一下购买 4 台 hetzner 的 5950X 服务器的感觉。很可惜，这个项目具体的技术细节也不能说。</p><h3 id="Vue-js-Node-js-程序"><a href="#Vue-js-Node-js-程序" class="headerlink" title="Vue.js + Node.js 程序"></a>Vue.js + Node.js 程序</h3><p>这个是学校的一个作业，用的 Vue2 + Nodejs 做前端。写出来的东西纯纯屎山，果然 typescript 的出现不是没有道理的啊，JS 写起来太坐牢了。借着这个项目，也算是彻底的玩了一遍 Azure Function App 和 GCP App Engine，最后用下来的感受就是免费的东西限制真 nm 多。因为代码写的实在是太屎山了，成品就不放出来了。</p><h3 id="Server-side-program-for-IPv6-Tunnelbroker-with-multi-protocol-support"><a href="#Server-side-program-for-IPv6-Tunnelbroker-with-multi-protocol-support" class="headerlink" title="Server-side program for IPv6 Tunnelbroker with multi-protocol support"></a>Server-side program for IPv6 Tunnelbroker with multi-protocol support</h3><p>这个是我的毕设，别看标题这么长，说白了就是把 sixxs 的服务端实现一遍。当初和导师聊的时候，他信誓旦旦的和我说，他们(sixxs)的服务端一直都没开源，我找他们要了代码他们还不给我。你要是能把他们的服务端重现的话，够做个毕设了。然后等我中期报告都写完了，在整理 reference 的时候，发现 sixxs 在项目结束的一年之后把源代码给放出来了…</p><h2 id="总结"><a href="#总结" class="headerlink" title="总结"></a>总结</h2><p>这个博客 23 年还算是过的不错吧，吸引到了访客也不妄失它存在的初衷了。24 年继续尽力更新，希望可以增加访客的停留时间。要是友链可以接着丰富一下就好了。<br>那么 2023 的年终总结就到这里啦，祝读到这里的你 2024 年顺利。</p>]]></content>
    
    <summary type="html">
    
      &lt;p&gt;年终总结似乎是各个独立博客每年都会发布的固定文章。我从 17 年的不知道写什么，经历了 18 年的把干出来的事全都罗列一大堆，一直过到 20 年的想写，但是写不动了。21 和 22 年的年终总结更是起笔都没有。现在想了想，还是稍微写一点东西记录下 23 年吧。20 年的年终总结也放出来了，虽然没有写完。也或许算是已经写完了。如果你有兴趣的话，可以去 &lt;a href=&quot;/2021/01/31/2020-final-report/&quot;&gt;这里&lt;/a&gt; 看一下&lt;/p&gt;
    
    </summary>
    
      <category term="年终总结" scheme="https://blog.paji.uk/categories/%E5%B9%B4%E7%BB%88%E6%80%BB%E7%BB%93/"/>
    
    
      <category term="年终总结" scheme="https://blog.paji.uk/tags/%E5%B9%B4%E7%BB%88%E6%80%BB%E7%BB%93/"/>
    
  </entry>
  
  <entry>
    <title>一些影评 [2023/12]</title>
    <link href="https://blog.paji.uk/2023/12/25/film-review-dec-2023/"/>
    <id>https://blog.paji.uk/2023/12/25/film-review-dec-2023/</id>
    <published>2023-12-25T06:01:00.000Z</published>
    <updated>2026-02-13T09:04:22.713Z</updated>
    
    <content type="html"><![CDATA[<p>时隔许久，又来写影评了。本篇的内容包含：</p><ul><li>海王 2</li><li>拿破仑</li><li>瞒天过海</li><li>你想成为什么样的人</li><li>首尔之春</li><li>74 回 NHK 红白歌会</li></ul><a id="more"></a><h1 id="海王-2"><a href="#海王-2" class="headerlink" title="海王 2"></a>海王 2</h1><p>中规中矩的电影，没有可圈可点的地方，也没什么大短板。我个人不是特别喜欢超级英雄类的电影，这部海王没踩我的雷，给我的观感比漫威最近几部自己操手的电影要好。给个 7 吧，真的没啥能拿来说的，就是我期待中好莱坞电影的标准水平。</p><h1 id="拿破仑"><a href="#拿破仑" class="headerlink" title="拿破仑"></a>拿破仑</h1><p>我是看了它的预告片种草的，等看到媒体评分出来，我没想到能这么低（6.6）。我不信邪，还是去看了，但是这个片子开始没几分钟我就想跑了。之前看《长安三万里》，有一个影评，大意是 “看到这部片中对女性的描述，（笔者）不免对大唐时期的女性地位感到悲哀。”相对比之下，《拿破仑》中对于女性角色（拿破仑第一任老婆）的塑造能让你背过气去。如果你看到一位女性坐在椅子上，双腿打开撩起裙子，说 “If you look down now, you will get what you want” 的时候我相信你也觉得离谱。<br>这部影片对拿破仑的形象塑造也很有失偏颇。不过一想到这片子是全英语独白，由英国人执导，并且英国佬看片子的时候乐得那是一个开心的时候，似乎也就合理了。</p><h1 id="瞒天过海"><a href="#瞒天过海" class="headerlink" title="瞒天过海"></a>瞒天过海</h1><p>西语电影 <em>The Invisible Guest</em> 的翻拍。这种悬疑电影还真就是只能看一遍。我看原版的时候没觉得尬与牵强，反而觉得牛逼。但是看瞒天过海因为知道后面会发生什么，只会觉得尴尬。这部我看了开头就看不下去了，也没法过多评价了。</p><h1 id="你想成为什么样的人"><a href="#你想成为什么样的人" class="headerlink" title="你想成为什么样的人"></a>你想成为什么样的人</h1><p>这部宣称是宫崎骏最后一舞的作品，也是极具宫崎骏个人特色的一部电影，有别去其之前的作品。都说吉卜力的电影受众其实是大人，这一部也不例外。在刨析具体原因之前，还是先说一下电影的节奏。从节奏和故事走向上来讲，这是一部非常经典的吉卜力宫崎骏作品，少年/少女的生活因为突发的事情而改变，在旅途中他们遇到了伙伴，要和伙伴一起打败坏人回家。前期节奏非常舒缓，甚至可以说是有点过于缓慢。入活铺垫让这部电影的前半个小时很容易犯困。与之对比之下，新海诚的叙事风格虽然也是偏于前期舒缓的，它会偏向于开头来一个大的，便于入活。相比之下，这部电影的剧情反而更让我着迷。可以说，它阐述了宫崎骏的个人故事，也包含了对于吉卜力工作室的担忧，更蕴含着对于日本二战的无奈。它的剧情真的很有意思，细细品味能得到不同的味道，这是我很喜欢的。因为剧情的缘故，主观上我可以给出 8 分。但是考虑到前期节奏和剧本中功能性的情节，这部作品大概只能达到 7.5。</p><details><br>  <summary>剧透部分</summary><br><br>  在观影的过程中，对于宫崎骏所描述的主角冒险的故事，我的理解是反映的是日本太平洋战争期间的战事。不过这样的理解多少有点牵强，并不能解释为什么老的创世神需要一个继任者将他所缔造的帝国延续下去。不过如果换一部想，冒险中的创世神是宫崎骏本人，他所创造的世界是吉卜力工作室，给世界提供能量的那块石头是宫崎骏的灵感。而鹦鹉在手忙脚乱中所搭建的那个根本立不住脚雕塑，或许是在指代吉卜力在寻找新的掌门人的尝试，比如之前爆出来的 3D 动画，还有宫崎吾朗的地海战记。如果失去了宫崎骏，吉卜力工作室要怎么保持自己曾经的水准呢。<br></details><h1 id="首尔之春"><a href="#首尔之春" class="headerlink" title="首尔之春"></a>首尔之春</h1><p>这是第一部由韩国拍摄的韩国双十二政变的电影。个人感觉这是一部拍的很好的电影。人物形象的塑造，剧情氛围的渲染还有对观众感情的调动是很到位的。节奏上也不拖拉。不同于我之前看过的韩国偏政治类电影，首尔之春的叙事没有让我感觉到压抑，也没有让我感觉到无聊。它虽然不是纪录片，但能够以一个心平气和的过来人的身份讲那时的故事向你娓娓道来。我觉得这部作品对于现实事件（还是 BE 的）改编电影的处理做的很好，有原始时间的内涵，也有出于电影娱乐本质的保证。这才能算是一门艺术。</p><h1 id="74-回-NHK-红白歌会"><a href="#74-回-NHK-红白歌会" class="headerlink" title="74 回 NHK 红白歌会"></a>74 回 NHK 红白歌会</h1><p>NHK 的收音效果算是变好了吧，但是今年的舞台摄影效果让人十分一言难尽啊，特别是 seventeen 的过曝。今年红白 k-pop 的成分十分明显的变高了。无论是韩团数量，还是歌曲的 style 都有在韩化的趋势。</p><h1 id="总结"><a href="#总结" class="headerlink" title="总结"></a>总结</h1><p>这篇博客从 2023 年写到了 2024，还没包括圣诞档的电影。主要也是因为好莱坞罢工导致圣诞档就一个 wonka 和海王；wonka 还没什么好写的。下一次再发影评可能要等到我看完沙丘 2 之后了。</p>]]></content>
    
    <summary type="html">
    
      &lt;p&gt;时隔许久，又来写影评了。本篇的内容包含：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;海王 2&lt;/li&gt;
&lt;li&gt;拿破仑&lt;/li&gt;
&lt;li&gt;瞒天过海&lt;/li&gt;
&lt;li&gt;你想成为什么样的人&lt;/li&gt;
&lt;li&gt;首尔之春&lt;/li&gt;
&lt;li&gt;74 回 NHK 红白歌会&lt;/li&gt;
&lt;/ul&gt;
    
    </summary>
    
      <category term="影评" scheme="https://blog.paji.uk/categories/%E5%BD%B1%E8%AF%84/"/>
    
    
      <category term="影评" scheme="https://blog.paji.uk/tags/%E5%BD%B1%E8%AF%84/"/>
    
  </entry>
  
  <entry>
    <title>看挪威的森林</title>
    <link href="https://blog.paji.uk/2023/10/05/norwegian-wood/"/>
    <id>https://blog.paji.uk/2023/10/05/norwegian-wood/</id>
    <published>2023-10-05T14:56:00.000Z</published>
    <updated>2026-02-13T09:04:22.713Z</updated>
    
    <content type="html"><![CDATA[<p>看挪威的森林给我一种 The unbearable lightness of human being 的感觉。有些压抑，又让人感叹人的 “不可承受之轻”</p>]]></content>
    
    <summary type="html">
    
      
      
        &lt;p&gt;看挪威的森林给我一种 The unbearable lightness of human being 的感觉。有些压抑，又让人感叹人的 “不可承受之轻”&lt;/p&gt;

      
    
    </summary>
    
      <category term="杂" scheme="https://blog.paji.uk/categories/%E6%9D%82/"/>
    
    
      <category term="挪威的森林" scheme="https://blog.paji.uk/tags/%E6%8C%AA%E5%A8%81%E7%9A%84%E6%A3%AE%E6%9E%97/"/>
    
      <category term="书" scheme="https://blog.paji.uk/tags/%E4%B9%A6/"/>
    
  </entry>
  
  <entry>
    <title>使用 JavaFX XYChart.BarChart 实现 Histogram</title>
    <link href="https://blog.paji.uk/2023/04/05/javafx-xychart-histogram/"/>
    <id>https://blog.paji.uk/2023/04/05/javafx-xychart-histogram/</id>
    <published>2023-04-05T09:57:00.000Z</published>
    <updated>2026-02-13T09:04:22.713Z</updated>
    
    <content type="html"><![CDATA[<p>有个作业需要用 Java 展示图表。这里记录一下我是如何把 XYChart.BarChart 调教成 Histogram 的。</p><a id="more"></a><h1 id="写在前面"><a href="#写在前面" class="headerlink" title="写在前面"></a>写在前面</h1><p><strong>为什么不用 JFreeChart?</strong></p><p>太丑了。</p><h1 id="Workaround"><a href="#Workaround" class="headerlink" title="Workaround"></a>Workaround</h1><p>ALevel 数学老师已经教过，Histogram 和 Bar chart 在外观的区别在于 bar 之间有没有间隔(histogram 的 bar 之间没有间隔)，以及 Y 轴代表的是 frequency(histogram) 还是具体的数值(bar chart)。XYCharts 允许我们设置 Bar 和 Category 的间隔，这就好说了。</p><pre><code class="hljs java">BarChart histogram = <span class="hljs-keyword">new</span> BarChart&lt;&gt;(xAxis, yAxis);histogram.setBarGap(<span class="hljs-number">0</span>);histogram.setCategoryGap(<span class="hljs-number">0</span>);</code></pre><p>下一个问题就是统计正确的数据。我们可以用一个简单的 enhanced for loop 来统计不同 bin 的 frequency. 直接上代码：</p><pre><code class="hljs java"><span class="hljs-keyword">double</span> binCap = binSize; <span class="hljs-comment">// 这是 bin 的大小(间隔)。比如 0.2</span><span class="hljs-keyword">double</span> binBottom = <span class="hljs-number">0</span>; <span class="hljs-comment">// 最小的 bin 的起始点，这里设置的是 0.</span><span class="hljs-keyword">double</span> frequency = <span class="hljs-number">0</span>; <span class="hljs-comment">// 初始化 frequency</span>XYChart.Series&lt;String, Double&gt; series = <span class="hljs-keyword">new</span> XYChart.Series&lt;&gt;();<span class="hljs-keyword">double</span>[] data = <span class="hljs-keyword">new</span> <span class="hljs-keyword">double</span>[]&#123;<span class="hljs-number">1</span>,<span class="hljs-number">2</span>,<span class="hljs-number">3</span>,<span class="hljs-number">4</span>,<span class="hljs-number">5</span>,<span class="hljs-number">6</span>,<span class="hljs-number">6</span>,<span class="hljs-number">7</span>&#125;<span class="hljs-comment">// 源数据。需要从小到大排列。</span><span class="hljs-keyword">for</span> (<span class="hljs-keyword">double</span> i : data) &#123;    <span class="hljs-keyword">if</span> (i &lt;= binCap) &#123;         <span class="hljs-comment">// 这个值在当前 bin 的范围内。增加 frequency.</span>        frequency++;    &#125; <span class="hljs-keyword">else</span> &#123;        <span class="hljs-comment">// 这个值比当前 bin 大了。把当前 bin 的 frequency 信息及 interval 加入到 series 里面。</span>        series.getData().add(<span class="hljs-keyword">new</span> XYChart.Data&lt;&gt;(binBottom + <span class="hljs-string">" - "</span> + binCap,frequency));        <span class="hljs-keyword">while</span> (i &gt; binCap) &#123;            <span class="hljs-comment">// 更新 bin 的 interval，跳过空的 bin</span>            binBottom = binCap;            binCap += binSize;            <span class="hljs-keyword">if</span> (i &gt; binCap) &#123;                series.getData().add(<span class="hljs-keyword">new</span> XYChart.Data&lt;&gt;(binBottom + <span class="hljs-string">" - "</span> + binCap, <span class="hljs-number">0.0</span>));            &#125;        &#125;        frequency = <span class="hljs-number">1</span>; <span class="hljs-comment">// 重新开始计算 frequency.</span>    &#125;&#125;<span class="hljs-comment">// 把最后一个 bin 的相关数据加入 series</span>series.getData().add(<span class="hljs-keyword">new</span> XYChart.Data&lt;&gt;(binBottom + <span class="hljs-string">" - "</span> + binCap,frequency));histogram.getData().clear(); <span class="hljs-comment">// 防止 histogram 里面已经存了数据，清空一下</span>histogram.getData().add(series);</code></pre><p><strong>为什么不直接操作 XYChart.Series?</strong></p><p>简单来说，只有在读取一个 Series 的内容的时候，这个 Series 的内容才会被生成。所以当我们还在往 Series 里面存入数据的同时要读取里面的内容是做不到的。</p><h1 id="成果"><a href="#成果" class="headerlink" title="成果"></a>成果</h1><p><img src="https://storage.pajilabs.com/api/raw/?path=/java_April_06_BVmlLNezO7.png" alt="https://storage.pajilabs.com/api/raw/?path=/java_April_06_BVmlLNezO7.png"></p>]]></content>
    
    <summary type="html">
    
      &lt;p&gt;有个作业需要用 Java 展示图表。这里记录一下我是如何把 XYChart.BarChart 调教成 Histogram 的。&lt;/p&gt;
    
    </summary>
    
      <category term="笔记" scheme="https://blog.paji.uk/categories/%E7%AC%94%E8%AE%B0/"/>
    
    
      <category term="JavaFX" scheme="https://blog.paji.uk/tags/JavaFX/"/>
    
      <category term="Histogram" scheme="https://blog.paji.uk/tags/Histogram/"/>
    
      <category term="Java" scheme="https://blog.paji.uk/tags/Java/"/>
    
      <category term="XYChart" scheme="https://blog.paji.uk/tags/XYChart/"/>
    
      <category term="XYChart.BarChart" scheme="https://blog.paji.uk/tags/XYChart-BarChart/"/>
    
      <category term="COMP2211" scheme="https://blog.paji.uk/tags/COMP2211/"/>
    
  </entry>
  
  <entry>
    <title>OneDrive 登录报错 0x8004e4cf 的解决方案</title>
    <link href="https://blog.paji.uk/2023/03/01/onedrive-error-0x8004e4cf/"/>
    <id>https://blog.paji.uk/2023/03/01/onedrive-error-0x8004e4cf/</id>
    <published>2023-03-01T13:08:00.000Z</published>
    <updated>2023-03-01T13:08:00.000Z</updated>
    
    <content type="html"><![CDATA[<ol><li>按 <code>Win</code> + <code>R</code> 键打开“运行”对话框。</li><li>输入 <code>inetcpl.cpl</code>，回车。</li><li>在“高级”下，找到“安全”的部分，然后选中“使用 TLS 1.1”，“使用 TLS 1.2” 和“使用 TLS 1.3（实验性）”。</li><li>点击下面的确认，然后重启后就好了。</li></ol><p>傻逼 Windows，傻逼微软。</p>]]></content>
    
    <summary type="html">
    
      
      
        &lt;ol&gt;
&lt;li&gt;按 &lt;code&gt;Win&lt;/code&gt; + &lt;code&gt;R&lt;/code&gt; 键打开“运行”对话框。&lt;/li&gt;
&lt;li&gt;输入 &lt;code&gt;inetcpl.cpl&lt;/code&gt;，回车。&lt;/li&gt;
&lt;li&gt;在“高级”下，找到“安全”的部分，然后选中“使用 TLS 1.1”
      
    
    </summary>
    
      <category term="坑" scheme="https://blog.paji.uk/categories/%E5%9D%91/"/>
    
    
      <category term="OneDrive" scheme="https://blog.paji.uk/tags/OneDrive/"/>
    
      <category term="Microsoft 365" scheme="https://blog.paji.uk/tags/Microsoft-365/"/>
    
  </entry>
  
  <entry>
    <title>一些影评 [2023/03]</title>
    <link href="https://blog.paji.uk/2023/02/18/film-review-mar-2023/"/>
    <id>https://blog.paji.uk/2023/02/18/film-review-mar-2023/</id>
    <published>2023-02-18T15:28:00.000Z</published>
    <updated>2023-04-05T09:55:00.000Z</updated>
    
    <content type="html"><![CDATA[<p>这篇的影评包含了：</p><ul><li>Puss in boost: The last wish (穿靴子的猫 2)</li><li>毒舌大状</li><li>Women talking</li><li>窄路微尘</li></ul><a id="more"></a><h2 id="Puss-in-boots-The-last-wish"><a href="#Puss-in-boots-The-last-wish" class="headerlink" title="Puss in boots: The last wish"></a>Puss in boots: The last wish</h2><p><strong>你有信心去挑战死亡吗？</strong></p><p>这部动画的动物外观塑造我很喜欢，不是疯狂动物城那种每一根毛都渲染的清清楚楚的，而应该是刻意做了模糊处理。Dreamwork 把这带 Puss in boots 的身体比例做了些调整，和它的前作对比起来，1 当中的主角更像一只猫，这部中的主角则更像人了。变得更加真实的不仅有 Puss in boots, 影片里的配角，Kitty，棕熊一家，Perrito 做的都很上心。总体来说做的很好的动画风格。<br>这部电影的打斗场面很符合我的喜好，他们没有追求画面的连贯和丝滑，和阿凡达 2 一样。反其道而行之，采用抽帧效果。看起来有那么一点定格动画的感觉。场景的搭建，配乐的感情渲染做的很到位。<br>这做的剧本写的就没什么新意了。一个坏到想要毁灭全世界而必须被除掉的反派，一个想要“真正的家”的不够坏的反派，一个需要主角克服的心底的恐惧，喜欢主角但是被主角背叛过后封闭内心的猫，和童年经历十分凄惨却仍乐观的想要治愈别人的小狗。他们凑到一起，想要获得一个能实现他们愿望的东西。剧情大体的走向基本上都能猜出来，没讲什么大道理，就打打亲情牌，友情牌和爱情牌。因为片长在这里，不包含毫无必要的转折，反水等等剧情。很治愈的一部片子，能吸引小朋友的眼球，又蕴含着只有长大以后才能看懂的情感。<br>电影里面融入了很多童话元素：Excalibur，阿拉伯飞毯等等。让我还是蛮怀念的。就是不知道看熊出没，小猪佩奇，汪汪队立大功这种动漫长大的小朋友能不能 get 到了。</p><h2 id="毒舌大状"><a href="#毒舌大状" class="headerlink" title="毒舌大状"></a>毒舌大状</h2><p><strong>我心中的贺岁片</strong></p><p>算是今年看的第二部香港法律片了。不过这不算是严格意义上的法律片，更像一个贺岁喜剧片。所以关于片种涉及到的各种法律专业相关问题就不在我的考虑范畴内了。电影的节奏控制很好，看黄子华怼人也很爽很解气。<br>电影的剧情围绕着 “正义” 展开，男主（黄律师）从给有钱人擦屁股，转变成了会不计收益的给穷人打官司。这种剧情还是挺搏大众喜欢的。这部电影和《正义回廊》一起，算是给我掀开了香港法庭、法律的一角。两部电影放在一起看还是蛮有趣的。</p><h2 id="Women-talking"><a href="#Women-talking" class="headerlink" title="Women talking"></a>Women talking</h2><p><strong>献给女权的片子</strong></p><p>奥斯卡最佳改编剧本得者。影片讲述的是一群在殖民地内的妇女，面临着来自男人的压迫和性骚扰，企图改变自我命运的故事。这也是我对它的小评是 “送给女权的片子” 的原因。如果你反感这个 tag 的话，就别看了。电影的构图不错，有些画面很有表现力。它的颜色调的特别阴间，全片都是灰蒙蒙的，有一种用彩色电影冒充黑白电影的感觉。<br>影片的绝大部分时间都被花在了谈话上。不同的人提出不同的观点，有的被驳回，有的被认同。当大家似乎陷入僵局的时候，也会有人出来调节气氛；尝试寻找别的思路。能看出来导演和编剧尝试了让影片不至于太过无聊，但是因为这片子的性质，观影还是挺煎熬的。我看这部片子的时候，还发生了个小插曲。影厅里有两个中国女生，其中一个在观影过程中经常看手机，被一个老白男喊了 “Turn your phone off”.<br>这部电影有一处值得耐人深思。电影开始的时候，有一行字幕提醒：“以下情节是妇女们的想象”。所以片中他们讨论出来的结果是不是真的被执行；她们讨论的过程是否如期进行；甚至讨论是否真实发生了，我们都不得而知。</p><h2 id="窄路微尘"><a href="#窄路微尘" class="headerlink" title="窄路微尘"></a>窄路微尘</h2><p><strong>坏女人是如何毁掉一个人的</strong></p><p>金马奖最佳原创电影音乐奖得主。我没听出它的配乐有哪里出众。影片剧本逻辑上其实不太自洽。影片的背景是疫情时代下的香港，我本来以为这是个讲述疫情对普通人生活的电影，但是我没看出来。在我看来，导演就想告诉我，不要因为坏女人毁掉你的生活，也不要一直太正直做老实人。</p><h1 id="后记"><a href="#后记" class="headerlink" title="后记"></a>后记</h1><p>这篇本来也是想在二月份发的，但是一直没写完。拖着拖着就到了四月了。还有几部看了的电影没写，就把他们放到四月份的影评里面吧，如果他们能如期而至的话（笑）。</p>]]></content>
    
    <summary type="html">
    
      &lt;p&gt;这篇的影评包含了：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Puss in boost: The last wish (穿靴子的猫 2)&lt;/li&gt;
&lt;li&gt;毒舌大状&lt;/li&gt;
&lt;li&gt;Women talking&lt;/li&gt;
&lt;li&gt;窄路微尘&lt;/li&gt;
&lt;/ul&gt;
    
    </summary>
    
      <category term="影评" scheme="https://blog.paji.uk/categories/%E5%BD%B1%E8%AF%84/"/>
    
    
      <category term="影评" scheme="https://blog.paji.uk/tags/%E5%BD%B1%E8%AF%84/"/>
    
  </entry>
  
  <entry>
    <title>一些影评 [2023/02]</title>
    <link href="https://blog.paji.uk/2023/02/17/film-review-feb-2023/"/>
    <id>https://blog.paji.uk/2023/02/17/film-review-feb-2023/</id>
    <published>2023-02-17T16:24:00.000Z</published>
    <updated>2026-02-13T09:04:22.713Z</updated>
    
    <content type="html"><![CDATA[<p>最近看了几部电影，不想看完了就算是完事了，于是乎决定写一点影评。这篇文章讲包含一下影片的影评：</p><ul><li>流浪地球 2</li><li>The Fabelmans (造梦之家)</li><li>The Banshees of Inisherin (伊尼舍林的报丧女妖)</li><li>Sword Art Online the Movie: Progressive - Scherzo of Deep Night (刀剑神域剧场版 进击篇 - 陰沉薄暮的詼諧曲)</li><li>Knock at the Cabin</li><li>想见你 (电影)</li></ul><a id="more"></a><h2 id="流浪地球-2"><a href="#流浪地球-2" class="headerlink" title="流浪地球 2"></a>流浪地球 2</h2><p>快节奏的工业电影。</p><p>流浪地球 2（后面简称为球）针对一个连续的事件，以两种视角（基层，和决策层）展开进行描述。讲故事的方法很好，条理清晰。虽然设定是流浪地球 1 的前作，但是剧情上的关联不是很大。只要知道流浪地球 1 讲的是要把地球推走满太空跑就行。我是没有看过流浪地球 1 的，这对我理解这部续作的剧情没有影响。本作的特效效果是拉满了，几千万的投资已经赶上两三亿美元的特效水平了。<br>在不错的特效的同时，球的剧本就有些瑕疵了。尽管电影的叙事能力可以，但是这没法遮盖它剧本太过复杂的事实。影片全长 2 小时 55 分钟，这还是在它剧情发展很快的前提下做到的。影片前半部分发生的剧情和后半部分发生的剧情除了在时间线上存在先后顺序外，好像并没有什么联系，甚至逻辑关联都没有。全片可以以推月计划发动机点火成功为分割点，非常完美的分成上下两部。在球剧情里面发生的对人类的挑战，例如要用地球全部核弹引爆月球，似乎就是随机事件，确又死死掐着人类命运的喉咙，迫使人类走最艰辛的那条路，完成 <em>流浪地球计划</em>。这部影片似乎在暗示，这些突发事件和 <em>数字生命（一个影片里的概念）</em> 有关，却又没有进行解释。这条线索就好像剧情里面数字生命的结局一样戛然而止。这样反而把所遇到的危机营造的非常刻意。面临这些危机的决策者和基层人员互相从未见面，但是决策者深深相信这自己国家的基层人员。基层人员也竭尽全力、不顾牺牲自己的生命也要完成使命。这铺面而来的集体主义味道十分浓烈。<br>在别的科幻片侧重丰富世界线的时候，流浪地球在很努力的想要让我们哭出来。很多的煽情场面让我决得这并不符合一个春节档上映的电影的风格，也不是我想从科幻电影里看到的。</p><h2 id="The-Fabelmans"><a href="#The-Fabelmans" class="headerlink" title="The Fabelmans"></a>The Fabelmans</h2><p>献身于梦想的人都是孤独的。</p><p>一部讲述导演 Steven Spielberg 家庭故事的电影。中文译名 <em>造梦之家</em> 可以说是十分贴切。有关剧情的刨析可以看看 <a href="https://movie.douban.com/review/14885240/" target="_blank" rel="noopener">这篇豆瓣影评</a>，我觉得是写的很不错的。这部电影我是和球在同一天看的。它的叙事是娓娓道来的，没有球的那种急促。整体风格很轻快。电影讲的是导演自己的故事，看起来有一种亲切的感觉。男主一家人，各有各的梦想，各有各的理念。在男主还小的时候，一个在好莱坞工作过的长辈就警告他，要想走上艺术的殿堂，要牺牲的，是和家人在一起快乐生活的权利。影片后面也有剧情应证了这句话。有一句话是 <em>A wise man does not fall in love, but a foolish trapped by his feelings.</em>。不过你更熟悉的可能是他前半句的中文译本：智者不入爱河。在这部电影里面，主角一家称不上智者，他们只是很明确的认识到了自己想要的是什么，也就是自己的梦想。在实现自己的梦想的途中，他们也不可救药的爱上了别人。可是他们没有被自己的情感限制住，他们可以为了实现梦想，忽视至亲的人的情感，或是抛弃对于情感的需要。这有些强硬，也有些无情。但是幸运的是，他们还是能够互相理解的，也尊重对方想要走上的道路，没有被心中的不甘与失望而反目成仇。把造梦者逼迫到孤独的地步的，是他们的梦想。而支撑着他们走下去的，也是他们的梦想。</p><h2 id="The-Banshees-of-Inisherin"><a href="#The-Banshees-of-Inisherin" class="headerlink" title="The Banshees of Inisherin"></a>The Banshees of Inisherin</h2><p>不了解爱尔兰独立战争的话看不懂</p><p>这片子的名字也太难记了。。。影片讲的是爱尔兰内战，被奥斯卡提名最佳影片了。去年讲爱尔兰独立战争的电影 Belfast 也获得了奥斯卡提名。整部影片是压抑的、阴暗的。它对于爱尔兰内战的全部描述，是开头提了一句主岛（爱尔兰本岛）在打仗，结尾提了一句本岛的战争结束了。全片都在讲男主和他的好哥们的友情破裂后发生的事情。这部电影有非常多的对话剧情，打光和镜头的设置别具心机。非常有趣的是：除了在结尾，好像没有人一同出现在阳光下。<br>我对爱尔兰独立战争并不了解，所以影片里映射的很多内容都品不出来。所以抛去影片在讽刺的含义，在我看来这就是一部拍的不错的 <del>文艺</del> 谜语片。演员所塑造出来的角色真的很好。男主和男配对戏很妙，他们演出了爱尔兰人的那种固执，以及不愿抛弃家乡的情怀。甚至略有些偏激，倒也不会让人厌恶。从他们二人身上，我看到的是表演的深度。这部电影名字里面提到的报丧女妖，是爱尔兰<del>迷信</del>传统文化的一部分。在这部电影里是作为一个推动剧情发展而存在的角色，也算是增加了些爱尔兰特色吧。不过关于报丧女妖这个成分，导演好像没想把她圆回来，就让她作为神话故事里面那样神秘的存在。我觉得这是个遗憾。<br>伊尼舍林的报丧女妖很成功的激发了我了解爱尔兰内战的兴趣。对于它来说，也算起到了导演希望的作用吧。</p><h2 id="Sword-Art-Online-the-Movie-Progressive-Scherzo-of-Deep-Night"><a href="#Sword-Art-Online-the-Movie-Progressive-Scherzo-of-Deep-Night" class="headerlink" title="Sword Art Online the Movie: Progressive - Scherzo of Deep Night"></a>Sword Art Online the Movie: Progressive - Scherzo of Deep Night</h2><p>情怀电影</p><p>剧情虽说无功无过。而我不能接受的是，同一个电影里面人物的画风有三种风格。有一段的人像是完全崩掉了。很难想象 A1 在做什么，不知道的还以为他们今年大楼也着火了。<br>这部电影让现在的我来看，是欣赏不来了。如果让年轻五岁的我来看这部电影的话，我可能会很喜欢。只不过现在已经过了那个年纪了。我会想要看一些更有内涵的剧情。</p><h2 id="Knock-at-the-Cabin"><a href="#Knock-at-the-Cabin" class="headerlink" title="Knock at the Cabin"></a>Knock at the Cabin</h2><p>烂片别看。</p><p>我去看这个片单纯是因为有两个小时的空窗期没地方去。这电影剧情感觉就是瞎凑。电影里男主（好吧我也不知道是不是男主，因为电影里主角团是一对 gay 加他们领养的女儿。我觉得他是男主是因为他话多。）被要求牺牲自己挚爱的人，以换取全世界所有人的平安，否则就要和对象，女儿三个人一起在世界上痛苦的活着。诚然，每个人的选择会不一样。非常经典的电影大英雄的做法可能会是想要出手改变这个情况。成败也好，他努力了。他抵抗了这个世界给他的使命。他对象能不能活下去就看编剧想怎么写了。但是电影里的男主不一样。他非常坚定的认为这一切都是巧合，或者是计划好的骗局。并且要求自己的老公也相信，这一切都是骗人的。当这个世界有些事情变得不正常，证据开始一点点的摆在男主面前，他还在非常坚定的否认摆在他面前的责任。这或许就是一个像我们一样的普通人，可是这不是我去看电影的理由。当影片里一直充斥着一个软弱的人在推脱，在辩解的言论时，这让我感到厌烦。尽管这是很真实的反应。主线剧情中插入的过往回忆显得十分生硬。我也不认为这部电影成功塑造了哪个角色。除了男主，塑造成了让我很厌烦的一个角色。<br>抛去满目苍夷的剧情，这部电影的环境氛围渲染做的十分出色。介绍人物入场，悬疑场景和 “天谴” 的场景镜头搭配上配乐效果是很棒的。如果不带脑子看的话，应该体验会好些。</p><h2 id="想见你"><a href="#想见你" class="headerlink" title="想见你"></a>想见你</h2><p>我觉得 under-rated 的爱情电影。</p><p>这部电影在豆瓣评分 6.3，imdb 评分 6.2。想见你很符合我对一部爱情电影的预期的：因为恰到好处的机遇，两个人无可救药爱上了彼此。有人说演技尴尬，我其实觉得还好。配合主题曲的插入，氛围渲染的不错，让人很容易入戏。这部电影的剪辑，剧情的发展节奏，反转的安排我认为都是做得很好的。它所渲染，表达出来的情感很立体，让人感觉很真实。让我给的话我能给个 7.3</p><h1 id="后记"><a href="#后记" class="headerlink" title="后记"></a>后记</h1><p>影评本来就是个很主观的东西，白菜萝卜各有所爱。写这些东西，说实在的我也不知道为啥，费力不讨好。但是我就是觉得，看了一部电影，那这部电影就值得我去点评一下。谈不上什么抛砖引玉，要是能凭借这些认识些新朋友的话，我都很高兴了。<br>二月底应该还攒够一篇影评，到时候见了。</p>]]></content>
    
    <summary type="html">
    
      &lt;p&gt;最近看了几部电影，不想看完了就算是完事了，于是乎决定写一点影评。这篇文章讲包含一下影片的影评：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;流浪地球 2&lt;/li&gt;
&lt;li&gt;The Fabelmans (造梦之家)&lt;/li&gt;
&lt;li&gt;The Banshees of Inisherin (伊尼舍林的报丧女妖)&lt;/li&gt;
&lt;li&gt;Sword Art Online the Movie: Progressive - Scherzo of Deep Night (刀剑神域剧场版 进击篇 - 陰沉薄暮的詼諧曲)&lt;/li&gt;
&lt;li&gt;Knock at the Cabin&lt;/li&gt;
&lt;li&gt;想见你 (电影)&lt;/li&gt;
&lt;/ul&gt;
    
    </summary>
    
      <category term="影评" scheme="https://blog.paji.uk/categories/%E5%BD%B1%E8%AF%84/"/>
    
    
      <category term="影评" scheme="https://blog.paji.uk/tags/%E5%BD%B1%E8%AF%84/"/>
    
  </entry>
  
  <entry>
    <title>Avatar The way of water 影评 (及影院评价)</title>
    <link href="https://blog.paji.uk/2022/12/25/avatar2-film-review/"/>
    <id>https://blog.paji.uk/2022/12/25/avatar2-film-review/</id>
    <published>2022-12-25T04:09:00.000Z</published>
    <updated>2026-02-13T09:04:22.713Z</updated>
    
    <content type="html"><![CDATA[<p>最近看了两遍 James Cameron 执导的新作 Avatar: The way of water。一次是在 BFI IMAX 看的 IMAX 3D，还有一次是在 Odeon Luxe West End 看的 Dolby 3D 版本。两次都有不太相同的体验，这篇影评也顺带来聊聊这两个影院给人的体验如何。有轻微剧透哦</p><a id="more"></a><h2 id="影评"><a href="#影评" class="headerlink" title="影评"></a>影评</h2><h3 id="技术规格"><a href="#技术规格" class="headerlink" title="技术规格"></a>技术规格</h3><p>这一部 Avatar 音轨有 IMAX 12 Tracks, Dolby Atmos 和 IMAX 6 Tracks 等等。画面上 IMAX 3D 是 2K@48fps, 1.90：1 的格式。Dolby 3D 则是 4k@48fps, 1.85:1. 不过不是全片 48fps, 只有部分镜头是 48fps 的。</p><h3 id="3D-与-CG"><a href="#3D-与-CG" class="headerlink" title="3D 与 CG"></a>3D 与 CG</h3><p>这一次 Avatar 的 CG 制作技术是十分可圈可点的。能体现出这一成就的就是对于水的渲染。在过去的 CG 电影中对于水面的渲染基本上以宏观居多，很少有做到给局部水面的特写，因为没办法渲染的很真实。但是在 The way of water 中，他们对于渲染水的把控提升到了另一个量级。其中一个就是在预告片中已经出现的一个局部的水面镜头。</p><p><img src="https://img.trumpdns.com/2022/12/25/RrtwmV1d.png" alt="https://img.trumpdns.com/2022/12/25/RrtwmV1d.png"></p><p>这样真是和成片和国产 CG 动画制作扛把子 - 追光最新出品的的杨戬一堆比起来，就显得降维打击了。<br>这次电影对于镜头的把控，可以说很大程度上都是为了制作 3D 而设计的。从成片的效果来看，卡梅伦没有辜负我的期待。这是一部把近些年 3D 技术的发展成果非常成功的展现出来的答卷。特别是配合 BFI IMAX 的超大屏幕，体验极佳。这部片子也证明了在影院看电影的重要性. 它所表达出来的那种沉浸感是无法在流媒体上领略到的。从 BFI IMAX 的能充满整个视野的超级大屏，缩水到 Dolby Cinema 的屏幕就能让我感觉有些出戏，就更不用说不同影厅的小屏和手机、电脑了。</p><h3 id="节奏与剧情"><a href="#节奏与剧情" class="headerlink" title="节奏与剧情"></a>节奏与剧情</h3><p>这一部阿凡达正片全场 3 小时 12 分钟，我愿称之为影院厕所杀手。我在 BFI IMAX 影院看完之后，它的厕所里人挤爆了。连男厕所都排队排了好长，最后我是跑到旁边的 Waterloo Station 上的厕所。造成这个时长的原因，是缓慢的叙事结构，以及让人有点摸不到头脑的剧本，再加上过多的角色。在这一部阿凡达中，主角一共有 4 个孩子外加一个和他们一起玩的小孩。另外还有他们去令一个部落后，那个部落酋长的一堆孩子（不过细分多的就两个）。加上两个部落的酋长和他们的老婆们，这已经是 11 个人物了，甚至还没有算反派。尽管有这么多的角色，卡梅隆还是在尝试让观众了解到每一个角色的设定。事实证明，这样做的效果并不好。第一遍看下来之后，没有哪个正派角色给我留下了很深的印象。我甚至在结束的时候都忘了男主他大儿子长啥样了。我感觉 James 为了突出部分角色，加入了更多的角色和戏份。这就导致拍了很多对剧情没什么推进力的戏份。他甚至还有时间挖坑给续作。<br>我觉得更搞笑的是，我看到第二遍才意识到这次人类入侵潘多拉是为了什么。在我看第一遍的时候他解释完了，后面剧情一出我就给忘了。导致第一次看完后，我和我的朋友们以为是因为要赚钱才来潘多拉的。这让我觉得，Cameron 的这一部阿凡达在剧情设定上十分的唐突，经不起琢磨。影片结束之后我发现，卡梅伦好像什么都没讲。这是一部剧情上很失败的作品。</p><h2 id="影院"><a href="#影院" class="headerlink" title="影院"></a>影院</h2><h3 id="BFI-IMAX"><a href="#BFI-IMAX" class="headerlink" title="BFI IMAX"></a>BFI IMAX</h3><p>坐落在 London Waterloo Station 旁边的 BFI IMAX, 唯一的一个影厅拥有着目前英国最大的电影荧幕（约 400 多平方米，1.43:1）。他们今年刚换了新幕和 IMAX Laser 映射机，并且升级了音响系统为 IMAX 12-Tracks Digital Sound. 他们之前还有 IMAX 70mm 激光胶片放映机，应该是有保留的，毕竟他们有一盘电影胶片是华纳直接提供的母带（我忘了是哪部了），如果撤了就没法放了。12 Tracks 的音轨绝对是提供了更好的声音体验。这次去他们正好有在放映 Oppenheimer 的预告片，效果很棒。放映厅的座椅也和之前有所变动：VIP 区域的椅子更软了，腿部空间也更大了。之前是腿在前面刚刚好的空间，升级之后前面放个包还能很轻松的过人，可以想象空间有多宽裕。Standard 和 Premium 就不知道了，没去坐。VIP 一张票 27£，Premium 26，Standard 23. 在大屏的特效影厅里，这是非常有性价比的一个选择了。</p><h3 id="Odeon-Luxe-West-End"><a href="#Odeon-Luxe-West-End" class="headerlink" title="Odeon Luxe West End"></a>Odeon Luxe West End</h3><p>Odeon Luxe West End 坐落在 Leicester Square，是 Odeon 在伦敦两个 Dolby Cinema 中的一个(另一个是 Odeon Luxe Leicester Square, 就在他旁边)。West End 有两个影厅，只有 1 号厅是 Dolby Cinema. 虽然荧幕比 BFI IMAX 小了不少，但是有 Dolby Cinema 的加持也是很能打的。就这部阿凡达来看，它的 Dolby Atmos 展现出来电影里很多音效的细节，以及发音源的精准定位 - 这些细节是没有办法被 12 Tracks 所展现出来的。它的荧幕给我感觉比 BFI IMAX 要亮（也有可能是因为这次我坐的考前），低音效果还要足。它的座椅是电动可调节的，靠背可以往后，有腿托可以升起。但这个椅子有点傻逼，它的问题在于，如果腿托不完全生气，靠背是没法往后靠的。初始位置的靠背是比较直的，并不舒服。可是如果腿托升到最高位，时间长了放在上面的腿会不舒服。座椅的空间也没有 BFI IMAX 大。如果不考虑观看 3D 电影和 IMAX 独占篇幅的影片的话，综合来讲我其实是更喜欢 West End 的。</p>]]></content>
    
    <summary type="html">
    
      &lt;p&gt;最近看了两遍 James Cameron 执导的新作 Avatar: The way of water。一次是在 BFI IMAX 看的 IMAX 3D，还有一次是在 Odeon Luxe West End 看的 Dolby 3D 版本。两次都有不太相同的体验，这篇影评也顺带来聊聊这两个影院给人的体验如何。有轻微剧透哦&lt;/p&gt;
    
    </summary>
    
      <category term="影评" scheme="https://blog.paji.uk/categories/%E5%BD%B1%E8%AF%84/"/>
    
    
      <category term="阿凡达" scheme="https://blog.paji.uk/tags/%E9%98%BF%E5%87%A1%E8%BE%BE/"/>
    
      <category term="Avatar" scheme="https://blog.paji.uk/tags/Avatar/"/>
    
      <category term="IMAX" scheme="https://blog.paji.uk/tags/IMAX/"/>
    
      <category term="BFI IMAX" scheme="https://blog.paji.uk/tags/BFI-IMAX/"/>
    
      <category term="Dolby" scheme="https://blog.paji.uk/tags/Dolby/"/>
    
      <category term="Dolby Cinema" scheme="https://blog.paji.uk/tags/Dolby-Cinema/"/>
    
      <category term="Odeon" scheme="https://blog.paji.uk/tags/Odeon/"/>
    
      <category term="Odeon Luxe West End" scheme="https://blog.paji.uk/tags/Odeon-Luxe-West-End/"/>
    
  </entry>
  
  <entry>
    <title>Soundbar HDMI 连接显卡仅输出声音，画面由显卡直出显示器的方案</title>
    <link href="https://blog.paji.uk/2022/11/11/soundbar-passthrough/"/>
    <id>https://blog.paji.uk/2022/11/11/soundbar-passthrough/</id>
    <published>2022-11-11T13:33:00.000Z</published>
    <updated>2026-02-13T09:04:22.713Z</updated>
    
    <content type="html"><![CDATA[<h2 id="背景"><a href="#背景" class="headerlink" title="背景"></a>背景</h2><p>买的 Soundbar HDMI 输出最高到 60hz, 可是我是 165hz 的显示器。打游戏的时候可就出大问题了，要么忍受 60hz 惨痛体验，那我买 165hz 的显示器干啥呢；要么每次打游戏都手动插线拔线调整。解决方案是有的，但是需要 Soundbar 有 HDMI IN + OUT 两个输出，外加显示器有两个信号输入(可以是 DP + HDMI)。我的电脑使用的是 Windows 10，Windows 11 不知道会不会有效。</p><a id="more"></a><h2 id="为什么不用-TosLink"><a href="#为什么不用-TosLink" class="headerlink" title="为什么不用 TosLink"></a>为什么不用 TosLink</h2><p>我打赌有人看到这个标题，绝对会说 “为什么不用 Digital Optical Cable?”。答案很简单：受限于带宽，它不支持多 channel 的 LPCM 协议。比如 Dolby Digital Plus, Dolby Atmos, DTS Master, DTS:X 等等。我觉得要是输出 Stereo PCM 到 soundbar 的话的话，还不如去买个音响连 3.5，完全避免这种烦恼。</p><h2 id="解决方案"><a href="#解决方案" class="headerlink" title="解决方案"></a>解决方案</h2><p>我现在是 DP 传输画面，HDMI 传输声音。理论上来说两个 HDMI 分别传输画面和声音也是可以的，但是我懒得试了。我的实现步骤如下：</p><ol><li>分别连接好显示器到显卡，soundbar 到显卡，soundbar 到显示器。</li><li>在 Windows 声音控制中选择输出为 soundbar，这个时候 soundbar 应该可以正常输出声音了。如果在声音输出设备中找不到 soundbar 的话，可能需要把显示器的信号输入源改为 HDMI(连接 Soundbar 的那个)。</li><li>拔掉连接显示器到 soundbar 的 HDMI 线缆。这个时候应该还是可以输出声音到 soundbar 的。并且重启有效。</li></ol><p>这个时候还没有完。如果你打开 Windows 显示设置的话，你会发现 Windows 设置里面是双显示器的一个操作。<br><img src="https://i.imgur.com/GjiDKKf.png" alt="https://i.imgur.com/GjiDKKf.png"></p><p>这是因为 Nvidia 显卡只有检测到它的一个输出端口连接到了一个显示器才会传输数据。所以如果只连接 soundbar 的话会因为没有可以输出的设备导致不输出声音. 至于为什么拔掉那条连接 soundbar 和显示器的线之后它还认为自己连着个显示器，我就不知道了。<br>话说回来，我们的出发点是要打游戏的时候能打到 165hz。你以为这就完美了？把你的鼠标往显示器的边缘使劲拉，然后再尝试来回来试试。虽然我们没有两台显示器，但是 Windows 认为我们有两台显示器。所以当鼠标被挪到了一台显示器的边缘的时候，Windows 会判断它被移动到了另一台显示器的显示领域。虽然我们压根没有第二台显示器。<br>这个行为会导致在例如 CSGO 等游戏中，如果往一个方向快速拉枪，你的鼠标会被判断飞出这个显示器。然后恭喜你，你在 CSGO 中站着不动了。等待接受队友的压力吧。<br>解决方法其实也很简单，装个叫 <a href="https://dualmonitortool.sourceforge.net/download.html" target="_blank" rel="noopener">Dual Monitor Tools</a> 的软件，限制鼠标区域在当前显示器就可以了。</p><p><img src="https://i.imgur.com/iT4LUlE.png" alt="https://i.imgur.com/iT4LUlE.png"></p>]]></content>
    
    <summary type="html">
    
      &lt;h2 id=&quot;背景&quot;&gt;&lt;a href=&quot;#背景&quot; class=&quot;headerlink&quot; title=&quot;背景&quot;&gt;&lt;/a&gt;背景&lt;/h2&gt;&lt;p&gt;买的 Soundbar HDMI 输出最高到 60hz, 可是我是 165hz 的显示器。打游戏的时候可就出大问题了，要么忍受 60hz 惨痛体验，那我买 165hz 的显示器干啥呢；要么每次打游戏都手动插线拔线调整。解决方案是有的，但是需要 Soundbar 有 HDMI IN + OUT 两个输出，外加显示器有两个信号输入(可以是 DP + HDMI)。我的电脑使用的是 Windows 10，Windows 11 不知道会不会有效。&lt;/p&gt;
    
    </summary>
    
      <category term="踩坑" scheme="https://blog.paji.uk/categories/%E8%B8%A9%E5%9D%91/"/>
    
    
      <category term="Soundbar" scheme="https://blog.paji.uk/tags/Soundbar/"/>
    
      <category term="HDMI" scheme="https://blog.paji.uk/tags/HDMI/"/>
    
  </entry>
  
  <entry>
    <title>解决 Sony 因 Sim 卡插拔导致的重启问题</title>
    <link href="https://blog.paji.uk/2022/07/31/xperia-sim-hot-swapping/"/>
    <id>https://blog.paji.uk/2022/07/31/xperia-sim-hot-swapping/</id>
    <published>2022-07-31T02:22:00.000Z</published>
    <updated>2026-02-13T09:04:22.713Z</updated>
    
    <content type="html"><![CDATA[<p>用 adb 连上后执行</p><pre><code class="hljs bash">adb shell pm <span class="hljs-built_in">disable</span>-user com.sonymobile.uiccdetection</code></pre><p>迫真热插拔 feature 就实现了</p>]]></content>
    
    <summary type="html">
    
      
      
        &lt;p&gt;用 adb 连上后执行&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;hljs bash&quot;&gt;adb shell pm &lt;span class=&quot;hljs-built_in&quot;&gt;disable&lt;/span&gt;-user com.sonymobile.uiccdetection&lt;/c
      
    
    </summary>
    
      <category term="教程" scheme="https://blog.paji.uk/categories/%E6%95%99%E7%A8%8B/"/>
    
    
      <category term="Sony" scheme="https://blog.paji.uk/tags/Sony/"/>
    
      <category term="Android" scheme="https://blog.paji.uk/tags/Android/"/>
    
      <category term="Xperia" scheme="https://blog.paji.uk/tags/Xperia/"/>
    
      <category term="adb" scheme="https://blog.paji.uk/tags/adb/"/>
    
  </entry>
  
  <entry>
    <title>Windows 11 上用回老版右键内容菜单</title>
    <link href="https://blog.paji.uk/2022/07/10/windows11-rollback-classic-context-menu/"/>
    <id>https://blog.paji.uk/2022/07/10/windows11-rollback-classic-context-menu/</id>
    <published>2022-07-10T01:54:00.000Z</published>
    <updated>2026-02-13T09:04:22.713Z</updated>
    
    <content type="html"><![CDATA[<p>新的右键菜单真的是没用。</p><a id="more"></a><ol><li>按 Win+R 后输入 regedit 回车，打开 registry editor</li><li>进入 <code>HKEY_CURRENT_USER\SOFTWARE\CLASSES\CLSID</code> 路劲</li><li>右键 <code>CLSID</code>，选择 新建 -&gt; Key，并命名其为 <code>{86ca1aa0-34aa-4e8b-a509-50c905bae2a2}</code></li><li>右键刚刚创建的 key，再选择新建 -&gt;, 命名其为 <code>InprocServer32</code></li><li>进入 <code>InprocServer32</code> 这个 key, 双击点击名称为 (Default) 的条目。会弹出一个新的窗口，直接点击确定即可。其 Data 字段应从 (value not set) 变成空白<br><img src="https://img.trumpdns.com/2022/07/10/9NvfJ3OT.png" alt="registry editor"></li><li>重启电脑就好了</li></ol>]]></content>
    
    <summary type="html">
    
      &lt;p&gt;新的右键菜单真的是没用。&lt;/p&gt;
    
    </summary>
    
      <category term="教程" scheme="https://blog.paji.uk/categories/%E6%95%99%E7%A8%8B/"/>
    
    
      <category term="Windows" scheme="https://blog.paji.uk/tags/Windows/"/>
    
  </entry>
  
  <entry>
    <title>在翼龙面板利用 eggs 实现整合包功能</title>
    <link href="https://blog.paji.uk/2022/06/28/pterodactyl-packs-implementing/"/>
    <id>https://blog.paji.uk/2022/06/28/pterodactyl-packs-implementing/</id>
    <published>2022-06-28T01:54:00.000Z</published>
    <updated>2026-02-13T09:04:22.713Z</updated>
    
    <content type="html"><![CDATA[<p>其实挺简单的. 翼龙 0.7 时代 packs 的原理是把你打好的整合包存在面板服务器上，等到创建服务器把环境(docker)装好之后，从面板服务器上把整合包拉下来解压。现在 1.x 版本把这个功能砍了，不过 egg 的 install script 还是有保存。我们可以在这里面手动实现。</p><a id="more"></a><h2 id="保存"><a href="#保存" class="headerlink" title="保存"></a>保存</h2><p>整合包需要放到一个可以直链获取的地方，比如 transfer.sh 这里假设你打的是 <code>tar</code> 包，如果是 <code>zip</code>, <code>7z</code> 啥的需要单独装解压软件。如果是 <code>tar.gz</code> 的话也可以，下面的参数改一下就好。alphine 默认装的是 busybox tar, 支持的指令不全。</p><p>确保你的压缩包里，服务器 jar 文件名为 <code>server.jar</code> 且在根目录。压缩包名称不要包含除字母外的内容。</p><h2 id="更改-egg-install-scripts"><a href="#更改-egg-install-scripts" class="headerlink" title="更改 egg install scripts"></a>更改 egg install scripts</h2><p>先导入<a href="https://libindex.paji.uk/?/images/2022/06/29/TwVg0bV29r/egg-plain.json" target="_blank" rel="noopener">这个</a>我摘出来的用来打底的 egg. 点进入这个，然后到 install script 那里，修改下面的内容然后复制上去。</p><pre><code class="hljs bash"><span class="hljs-meta">#!/bin/ash</span><span class="hljs-comment">#</span><span class="hljs-comment"># Server Files: /mnt/server</span><span class="hljs-built_in">cd</span> /mnt/serverwget -O server.tar https://[整合包直链]tar -xvf server.tar</code></pre><h2 id="加入更多整合包"><a href="#加入更多整合包" class="headerlink" title="加入更多整合包"></a>加入更多整合包</h2><p>一个 egg 只能对应一个整合包，要加多个整合包的话就需要创建多个 egg. 记得给 egg 重命名，意以免忘了哪个是哪个了。</p><h2 id="多-egg-在-whmcs-下开通"><a href="#多-egg-在-whmcs-下开通" class="headerlink" title="多 egg 在 whmcs 下开通"></a>多 egg 在 whmcs 下开通</h2><p>在 WHMCS 的系统设置 -&gt; 可选配置选项 中新建一个分组。创建一个新的选项，option name 是 <code>egg_id</code>. 觉得不好看的话可以写成 <code>egg_id|整合包</code>，这样显示出来的就是整合包。下面的 option 写创建好的 egg 的 id. 可以用 <code>egg id|显示名称</code> 的格式让表单能被人理解。</p>]]></content>
    
    <summary type="html">
    
      &lt;p&gt;其实挺简单的. 翼龙 0.7 时代 packs 的原理是把你打好的整合包存在面板服务器上，等到创建服务器把环境(docker)装好之后，从面板服务器上把整合包拉下来解压。现在 1.x 版本把这个功能砍了，不过 egg 的 install script 还是有保存。我们可以在这里面手动实现。&lt;/p&gt;
    
    </summary>
    
      <category term="坑" scheme="https://blog.paji.uk/categories/%E5%9D%91/"/>
    
    
      <category term="Pterodactyl" scheme="https://blog.paji.uk/tags/Pterodactyl/"/>
    
  </entry>
  
  <entry>
    <title>gnuplot 一点笔记</title>
    <link href="https://blog.paji.uk/2022/05/22/gnuplot-notes/"/>
    <id>https://blog.paji.uk/2022/05/22/gnuplot-notes/</id>
    <published>2022-05-22T09:52:35.000Z</published>
    <updated>2026-02-13T09:04:22.713Z</updated>
    
    <content type="html"><![CDATA[<h1 id="前言"><a href="#前言" class="headerlink" title="前言"></a>前言</h1><p>这里只是简单介绍一下 gnuplot 的一些基础概念，以能画出一个 graph 来作为胜利条件。适用于没听说过 gnuplot 的玩家。如果你是想对 gnuplot 有更深的了解的话，你来错地了。</p><h1 id="大纲"><a href="#大纲" class="headerlink" title="大纲"></a>大纲</h1><ul><li>数据源结构</li><li>更改 X 轴显示时间</li><li>输出为 png 图片</li></ul><a id="more"></a><h1 id="正文"><a href="#正文" class="headerlink" title="正文"></a>正文</h1><h2 id="环境"><a href="#环境" class="headerlink" title="环境"></a>环境</h2><p>我是在 linux 上用的 gnuplot, 直接从软件仓库拉下来的。如果在用 ssh 连接到 Linux 然后从用 cli 来调教 gnuplot 时遇到了连接不上 display 的报错，在 sshd 里把 <code>X11-Forward</code> 改成 no.</p><h2 id="数据"><a href="#数据" class="headerlink" title="数据"></a>数据</h2><p>为了方便解释，下面是我们要用到的 dummy 数据，其保存在文件 <code>data</code> 中。其格式为 <code>[国家名] [日期] [数据]</code> 数据之间的空格表示他们不是一列的。为什么有奇怪的空格，我会在后面解释。我们的目标是把 cases 画到 y 轴，x 轴是对应的时间。不同的国家用不同颜色的线表示出来。</p><pre><code class="hljs undefined">Bulgaria 07/03/2020 0Bulgaria 08/03/2020 0Bulgaria 09/03/2020 1Bulgaria 10/03/2020 1France 07/03/2020 2France 08/03/2020 5France 09/03/2020 10France 10/03/2020 10</code></pre><h2 id="配置"><a href="#配置" class="headerlink" title="配置"></a>配置</h2><ul><li>这是从 gnuplot 的 demos 里面抄的。会绘制一个平面直角坐标系。字体用 Clear Sans，字号 16.</li></ul><pre><code class="hljs undefined">set terminal pdfcairo transparent enhanced font &quot;Clear Sans, 16&quot; linewidth 2 rounded dashedset grid layerdefault lt 0 linecolor 0 linewidth 0.500,  lt 0 linecolor 0 linewidth 0.500set key bmargin center horizontal autotitle columnhead noboxset xtics nomirror rotate autojustifyset ytics nomirror font &quot;,8&quot;</code></pre><ul><li>配置输出名称并设置格式为 png</li></ul><pre><code class="hljs undefined">set output &apos;graph.png&apos;set term png</code></pre><ul><li>设定图例. 这里用到了 timefmt, 这个是用来规定时间格式的。在 gnuplot 中，始终只能有一种 <code>timefmt</code>. 如果你的数据里有不同的时间格式的话(比如 DD-MM-YY 和 MM/DD/YYYY)，可以在处理完一类时间后重新定义 <code>timefmt</code> 来解决。</li><li><code>xrange</code> 用来设定 x 轴的区间</li><li><code>format x</code> 允许设定的时间格式和画在图上的时间格式并不一样(比如设定的是 DD-MM-YYYY, 显示为 MM/DD/YY). 对于规定时间格式的代表符，可以参考附录。</li></ul><pre><code class="hljs undefined">set title &quot;Cases by country&quot;set xlabel &quot;Countries&quot;set ylabel &quot;Cases&quot;set xdata timeset timefmt &quot;%d/%m/%Y&quot;set xrange [&quot;07/03/2020&quot;:&quot;10/03/2020&quot;]set format x &quot;%d/%m/%y&quot;</code></pre><ul><li>定义两条线，让他们颜色不一样</li></ul><pre><code class="hljs undefined">set style line 1 linecolor rgb &apos;#d32f2f&apos;set style line 2 linecolor rgb &apos;#afb42b&apos;</code></pre><ul><li>调用 gnuplot, 传入数据. 这里我们要画两条线, 所以需要两个数据源。这里有两种选择，一种是但源数据文件通过 index 来获取数据，还有一种是多数据文件获取数据。这里使用前者。为了用 index 获取不同国家的数据，每个 data block 之间需要有两个空行。index 从 0 开始。</li><li><code>using</code> 是用来规定 x 轴数据值和 y 轴数据值的。其格式为 <code>[列 1]:[列 2]</code>，列从 1 开始数(第一列为 1，第 2 列为 2)。</li><li><code>linestyle</code> 是我们之前设置的线的颜色。</li><li><code>title</code> 是这条线的图例。这里不支持从文件中获取，必须为设置好的指。如果需要批量获取，可以用一个 bash 脚本生成 gnuplot 的设置，生成的同时传入这个数据。</li><li>使用 <code>lines</code> 绘制出来的是折线图。如果要画别的图的话，可以参考 gnuplot 的 demo 来改。</li></ul><pre><code class="hljs undefined">plot &apos;data&apos; index 0 using 2:3 with lines linestyle 1 title &quot;Bulgaria&quot;, \&apos;&apos;     index 1 using 2:3 with lines linestyle 2 title &quot;France&quot;, \</code></pre><ul><li>如果用多数据源，一个名为 <code>fr</code>, 一个名为 <code>ba</code> 的话，应该是这样的</li></ul><pre><code class="hljs undefined">plot &apos;fr&apos; using 2:3 with lines linestyle 1 title &quot;Bulgaria&quot;, \&apos;ba&apos;     using 2:3 with lines linestyle 2 title &quot;France&quot;, \</code></pre><ul><li>最后</li></ul><pre><code class="hljs undefined">unset output</code></pre><h1 id="附录"><a href="#附录" class="headerlink" title="附录"></a>附录</h1><h2 id="时间格式代表符"><a href="#时间格式代表符" class="headerlink" title="时间格式代表符"></a>时间格式代表符</h2><table><thead><tr><th>格式</th><th>解释</th></tr></thead><tbody><tr><td>%a</td><td>星期几的缩写</td></tr><tr><td>%A</td><td>星期几的全称</td></tr><tr><td>%b(%h)</td><td>月份的缩写</td></tr><tr><td>%B</td><td>月份的全称</td></tr><tr><td>%d</td><td>月里的第一天(1-31)</td></tr><tr><td>%D</td><td>“%m/%d/%y” 的缩写</td></tr><tr><td>%k</td><td>小时(0-23, 1 或 2 位数字)</td></tr><tr><td>%H</td><td>小时(00-23, 2 位数字)</td></tr><tr><td>%l</td><td>小时(1-12, 1 或 2 位数字)</td></tr><tr><td>%I</td><td>小时(01-12, 2 位数字)</td></tr><tr><td>%j</td><td>年里的第几天(1-366)</td></tr><tr><td>%m</td><td>月份(1-12)</td></tr><tr><td>%M</td><td>分钟(0-60)</td></tr><tr><td>%p</td><td>“am” 或 “pm”</td></tr><tr><td>%r</td><td>“%I:%M:%S %p” 的缩写</td></tr><tr><td>%R</td><td>“%H:%M” 的缩写</td></tr><tr><td>%U</td><td>年里的第几周(周日为每周第一天)</td></tr><tr><td>%w</td><td>星期几(0-6, 周日为 0)</td></tr><tr><td>%W</td><td>年里的第几周(周一为每周第一天)</td></tr><tr><td>%y</td><td>年(0-99, 1 或 2 位数字)</td></tr><tr><td>%Y</td><td>年 (4 位数字)</td></tr></tbody></table>]]></content>
    
    <summary type="html">
    
      &lt;h1 id=&quot;前言&quot;&gt;&lt;a href=&quot;#前言&quot; class=&quot;headerlink&quot; title=&quot;前言&quot;&gt;&lt;/a&gt;前言&lt;/h1&gt;&lt;p&gt;这里只是简单介绍一下 gnuplot 的一些基础概念，以能画出一个 graph 来作为胜利条件。适用于没听说过 gnuplot 的玩家。如果你是想对 gnuplot 有更深的了解的话，你来错地了。&lt;/p&gt;
&lt;h1 id=&quot;大纲&quot;&gt;&lt;a href=&quot;#大纲&quot; class=&quot;headerlink&quot; title=&quot;大纲&quot;&gt;&lt;/a&gt;大纲&lt;/h1&gt;&lt;ul&gt;
&lt;li&gt;数据源结构&lt;/li&gt;
&lt;li&gt;更改 X 轴显示时间&lt;/li&gt;
&lt;li&gt;输出为 png 图片&lt;/li&gt;
&lt;/ul&gt;
    
    </summary>
    
      <category term="踩坑" scheme="https://blog.paji.uk/categories/%E8%B8%A9%E5%9D%91/"/>
    
    
      <category term="gnuplot" scheme="https://blog.paji.uk/tags/gnuplot/"/>
    
      <category term="笔记" scheme="https://blog.paji.uk/tags/%E7%AC%94%E8%AE%B0/"/>
    
  </entry>
  
</feed>
