<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>AsyncX | 嘿!我是AX!</title><description>AsyncX的博客</description><link>https://blog.asyncx.top/</link><language>zh-CN</language><item><title>第八期-Openclaw实现的运动/睡眠向导(非教程)</title><link>https://blog.asyncx.top/posts/2026-03-05/</link><guid isPermaLink="true">https://blog.asyncx.top/posts/2026-03-05/</guid><description> </description><pubDate>Thu, 05 Mar 2026 22:30:00 GMT</pubDate><content:encoded>&lt;h2&gt;前言&lt;/h2&gt;
&lt;p&gt;Openclaw不用过多赘述, 是一个可以运行在 NAS 上的自动化工作流平台，类似于自托管版的 n8n，支持通过可视化的节点连接各类服务和 API，实现数据的自动抓取、处理与推送。&lt;/p&gt;
&lt;p&gt;本文旨在提供一个借助 Openclaw 来对 Garmin Connect 上的运动/睡眠数据进行简要分析的workflow，并通过定时任务设计了一个向导每日发送出来。当然目前这仅仅算的上一个demo, 由于不懂得一些指标的重要性, 目前只是简单让其结合睡眠和运动指标来进行一些建议.&lt;/p&gt;
&lt;h2&gt;部署Openclaw时候遇到的问题&lt;/h2&gt;
&lt;p&gt;网上有很多教程, 这里我简要说一下我在部署时候遇到的一些网上可能没有的问题/思路. 首先就是隔离, 我并不打算直接在本地环境运行Openclaw, 这几天在网上看到了不少Openclaw导致的安全问题, 因此我的选择就是在Docker中运行, 将其他用到内容映射到容器中.&lt;/p&gt;
&lt;p&gt;我的服务器系统是飞牛OS, 因此有可视化的Docker, 但直接下载现成的Openclaw后遇到了gateway无限重启的问题, 于是我最后选择去加装了一个1Panel, 通过1Panel里面的一键安装来部署Openclaw.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://r2.asyncx.top/2026/03/05/202603052253954.webp&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;部署/启动后均没有什么问题, 启动后需要从json文件拿到token输入到面板中来进行双向验证. 我使用的API是Gemini 2.5 Flash(上一年年末的时候Google的学生优惠可以免费使用一年的Google AI Pro, 现在活动已经没有了), 额度目前很够用.&lt;/p&gt;
&lt;p&gt;消息发送我选择了Discord, 毕竟人在北美没有网络方面的烦恼, 日常使用Discord居多. 这一系列设置下来也没有任何问题, 都是在openclaw.json中进行设置的. 目前为止openclaw已可以正常运行.&lt;/p&gt;
&lt;h2&gt;python-garminconnect&lt;/h2&gt;
&lt;p&gt;这里我本人试图偷懒, 于是和openclaw发生了如下对话:
&lt;img src=&quot;https://r2.asyncx.top/2026/03/05/202603052301731.webp&quot; alt=&quot;&quot; /&gt;
可以看到openclaw并没有权限使用我的账号密码, 也没有权限进行进一步的操作. 我不知道是不是我的用法不正确, 但ta也的确劝住了我不要进一步对ta下方权限. 于是我的实现思路就变成了用第三方的包来请求garmin官方, 在拿到我的数据后进行本地化存储, 由于实现设置过容器存储映射, openclaw则可以直接读取本地文件进行分析.&lt;/p&gt;
&lt;p&gt;之前我搓了一个Astro网页, 用到了garmin-connect, 来统计我&lt;a href=&quot;https://exercise.asyncx.top/&quot;&gt;进行过的运动&lt;/a&gt;, 之前没有NAS, 所以放在了Github上用Action来运行, 后来token到期了懒得更新, 就放在那里了. 这次也用到了garmin-connect, 由于启用心电图必须要开启Oauth2, 这里需要注意一下登录凭证的处理.(vibe coding时候可以提供这一细节来让AI解决).&lt;/p&gt;
&lt;p&gt;爬取到的数据是JSON, 但因为我只有一个手表, 很多行都是无效的, 因此需要格式化一下数据, 我选择了用csv进行存储, 这样看起来更直观.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://r2.asyncx.top/2026/03/05/202603052310754.webp&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;每日计划的执行&lt;/h2&gt;
&lt;p&gt;扯一句题外话, 前段时间有篇论文专门研究了AI的成瘾性[^1], 说白了和老虎机是一个原理——你发出这段文字并期待AI为你生成更好的结果, 就像在赌博一样, 我遇到的80%的身边人(cs学生)对于prompt都是无所谓, 可以沟通就行, 但Openclaw不行, ta像一张白纸, 但凡没有了约束就会出现问题. 我任务一个具有大量规范性需求的prompt可以降低AI的成瘾性, 因为你在发出这个prompt的时候你就知道你大概率能得到你想要的答案了.&lt;/p&gt;
&lt;p&gt;这是关于我的自动任务的prompt, 我深知不够完美, 但这目前是我尝试openclaw进行的一次努力:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;1.我需要你阅读/home/node/.openclaw/daily的这3个csv文件.
2.基于我当天进行的运动, 心率, 以及前几天的睡眠质量, 来对我的睡眠时间进行建议.
3.如果最近没有运动数据, 不用声明运动数据缺失.
4.参照下面回答模板回答.

回答模板:
数据洞察:[一段话综述最近的睡眠/运动]
近日睡眠:[最近3天的睡眠细节]
综合建议:[对今日睡眠的规划]

额外补充:
每日理想起床时间为8AM~9AM;
基于睡眠情况和睡眠时间对sleep_need_feedback这一列数据进行解读并输出, 不要输出其原始数据.
如果运行出现错误请输出错误日志;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;但似乎是由于我开启了隔离, 每次的输出依旧差别很大,以及&lt;code&gt;sleep_need_feedback&lt;/code&gt;还是有一些问题, 需要进一步研究.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://r2.asyncx.top/2026/03/05/202603052324442.webp&quot; alt=&quot;每到晚上我都不想睡去...真的需要检查一下心理健康了&quot; /&gt;&lt;/p&gt;
&lt;p&gt;总而言之Openclaw对我来说还是一个工具, 目前来看还是一个使用频率远不如cursor等强目的性LLM的弱工具, 不过我期待后续钻研的新用法.&lt;/p&gt;
&lt;p&gt;[^1]: &lt;a href=&quot;https://dl.acm.org/doi/10.1145/3706599.3720003&quot;&gt;The Dark Addiction Patterns of Current AI Chatbot Interfaces&lt;/a&gt;, ACM CHI 2025.&lt;/p&gt;
</content:encoded></item><item><title>Astro-blog记录(9) - 添加Webmention</title><link>https://blog.asyncx.top/posts/2026-02-25/</link><guid isPermaLink="true">https://blog.asyncx.top/posts/2026-02-25/</guid><description> </description><pubDate>Wed, 25 Feb 2026 17:02:00 GMT</pubDate><content:encoded>&lt;h2&gt;什么是Webmention&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Webmention&lt;/strong&gt; 是一种用于网站之间“相互通知”的开放协议。简单说，当你引用别人时，对方可以自动收到通知，并在自己网站上显示你的引用。科普就这么多, 你如果有兴趣可以在网络上找到很多相关的内容.&lt;/p&gt;
&lt;h2&gt;前言&lt;/h2&gt;
&lt;p&gt;这段时间又开始在网络上随机游走, 在V站的VXNA发现了很多不错的博客, 在&lt;a href=&quot;https://www.geedea.pro/&quot;&gt;極客死亡計劃&lt;/a&gt;下面发现了1年前我在&lt;a href=&quot;https://www.benji.dog/&quot;&gt;Benji&lt;/a&gt;博客下面见到的WebMention. 趁着这段时间没有任何的ddl, 于是打算实施一下.&lt;/p&gt;
&lt;h2&gt;前期准备和具体流程&lt;/h2&gt;
&lt;p&gt;由于现在各类LLM过于强大, 我也成为了cursor的拥护者, 因此难以逐步提供信息, 但考虑到我的语言表达能力并没有在人类中属于出类拔萃的程度, 我想这或许是好事, 具体的方式如下:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;通过 &lt;code&gt;SITE_URL + 当前路径&lt;/code&gt; 生成标准目标地址，作为Webmention 的 &lt;code&gt;target&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;页面加载后, 向&lt;code&gt;https://webmention.io/api/mentions.jf2?target=当前文章URL&lt;/code&gt;发送请求，从 &lt;strong&gt;webmention.io&lt;/strong&gt; 拉取所有指向该文章的 Webmention 数据&lt;/li&gt;
&lt;li&gt;在文章底部展示&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;接下来是你在实施前需要做的准备:
注册&lt;a href=&quot;https://webmention.io/&quot;&gt;webmention.io&lt;/a&gt;并验证, 验证的方法因人而异, 我使用了github, 目的是双向确认网页属于你.   &lt;img src=&quot;https://r2.asyncx.top/2026/02/25/202602251844402.webp&quot; alt=&quot;到达类似这样的页面就算成功&quot; /&gt;&lt;/p&gt;
&lt;p&gt;进入Sites-&amp;gt;Get Setup Code, 添加这行code到你网页的header中, 接下来就是在前端进行webmention的GET和渲染了, 就和上述的实施方式一致.&lt;/p&gt;
&lt;h2&gt;实施过程中遇到的问题&lt;/h2&gt;
&lt;p&gt;在实际场景中, 例如我所使用的Astro, 会根据自己的设置在访问的网页url后加上一个&lt;code&gt;/&lt;/code&gt;, 以及在对webmention.io发送当前文章的url的时候会携带一个&lt;code&gt;.html&lt;/code&gt;. 传过去的url和别人复制的url/本地的url等url不一致, 也会导致webmention无法正常显示, 因此值得注意.&lt;/p&gt;
&lt;h2&gt;(可选)采集Mastodon互动的额外配置&lt;/h2&gt;
&lt;p&gt;我的主要目的是展示在Mastodon上的互动, 但Mastodon本身并不具备webmention的相关功能, 因此需要引入一个额外的工具&lt;a href=&quot;https://brid.gy/&quot;&gt;Bridgy&lt;/a&gt;, 用来拉取所有在联邦宇宙中产生的互动, 并递交给webmention.io.
&lt;img src=&quot;https://r2.asyncx.top/2026/02/25/202602251852444.webp&quot; alt=&quot;&quot; /&gt;
下面是我的后台展示, 你可以清晰看到各种访问成功和异常(Sent即为发送webmention成功, 你可以通过点击刷新按钮左侧的时间来查看当前条目的日志, 从而进一步确定问题所在):
&lt;img src=&quot;https://r2.asyncx.top/2026/02/25/202602251854300.webp&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;(可选) 添加手动提交表带&lt;/h2&gt;
&lt;p&gt;考虑到一些网络友邻没有在webmention.io进行链接提交, 这也意味着没有办法进行双向的信息展示, 即我作为A的文章被B引用了, 但B的博客没有办法告诉A我引用了你的文章, 因此我额外添加了一个&lt;code&gt;手动提交&lt;/code&gt;的button. 当B在文章中提及了我的这篇博文, 那么ta可以在我这里手动提交表单给webmention.io, 进而收录.
&lt;img src=&quot;https://r2.asyncx.top/2026/02/25/202602251903488.webp&quot; alt=&quot;实际提交的表单&quot; /&gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;下面则是我简单设计的webmention的展示, 兼顾了日夜模式/分离了点赞和回复
&lt;img src=&quot;https://r2.asyncx.top/2026/02/25/202602251859978.webp&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;参考&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://taxodium.ink/add-webmention-to-blog.html&quot;&gt;给博客添加 Webmention&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://jason-memo.dev/posts/webmention/&quot;&gt;透過 webmention 來搜集 blog 的社群迴響&lt;/a&gt;&lt;/p&gt;
</content:encoded></item><item><title>Astro-blog记录(8) - 主题半闭源/细节增加/评论迁移</title><link>https://blog.asyncx.top/posts/2026-01-28/</link><guid isPermaLink="true">https://blog.asyncx.top/posts/2026-01-28/</guid><description> </description><pubDate>Wed, 28 Jan 2026 21:01:00 GMT</pubDate><content:encoded>&lt;h2&gt;主题半闭源&lt;/h2&gt;
&lt;p&gt;前些天写小结的时候在github的feed页看到我写博文的仓库又多了一个star. 点进用户主页, 发现这位网友也有自己的blog, 本着回访的目的点了进去, 好家伙, 直接套用了我的主题, 当然我并非斥责抵制这一行为, 但这位网友似乎直接用ai生成了readme.md, 其中声明了这个主题是heavily inspired by a web, 这个web页是一个以极简高度出名的blog template, 并不是我的主题, 也不是我二次开发前的miniblog.&lt;/p&gt;
&lt;p&gt;这件事中, 令我生气的地方在于这个网友似乎不屑于修改ai定义的readme, 抑或是他觉得这无关紧要, 在他博文的字里行间, 我闻到了一种刻意装出来地看破一切地清高, 然而他却把网络上的自留地完全交给了ai.&lt;/p&gt;
&lt;p&gt;鉴于这种情况, 以及在最近添加了未完成博文的的过滤, 我已不能将我的所有博文放在public的仓库中, 于是决定将GitHub repo修改为private, 但主题依然欢迎大家在遵循 &lt;a href=&quot;https://creativecommons.org/licenses/by-nc-sa/4.0/deed.zh-hans&quot;&gt;CC BY-NC-SA 4.0&lt;/a&gt;的前提下使用, 本文发布时, 我已调整了主题页面的详情.&lt;/p&gt;
&lt;h2&gt;拼图逻辑的实现&lt;/h2&gt;
&lt;p&gt;时至今日亲手用上cursor才意识到之前用的别的工具有多么笨拙, 下面是拼图逻辑的实现(by cursor):
实现思路本质上是 DOM 重写：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;识别候选块：遍历文章 article 的直接子元素，用 isImageContainer() 判断它是不是“图片容器”（p/figure/img），且排除 .db-card。&lt;/li&gt;
&lt;li&gt;找连续序列：把连续的图片容器聚成序列 sequences；只处理长度 ≥2≥2 的序列。&lt;/li&gt;
&lt;li&gt;扁平化图片列表：把序列里的容器全部展开成 imgs（按 DOM 顺序）。&lt;/li&gt;
&lt;li&gt;分组规则：用队列把图片按 每组最多 3 张切块；尾巴只接受 2 张（queue.length === 2 才入组）。&lt;/li&gt;
&lt;li&gt;生成拼图 DOM：为每个 group 创建一个 .image-mosaic（grid 容器），每张图包一层 .image-mosaic-item，并用 CSS 变量 --mosaic-cols 控制列数（2 张=2列，3 张=3列）。&lt;/li&gt;
&lt;li&gt;替换原内容：把拼图 fragment 插到序列第一个容器前，然后移除旧的 p/figure/img 容器。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;此外, 我之前写了一个组件用来显示图片的文字信息, 为了在拼图上能有更好的效果, 我又让cursor生成了一个动画:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;  (() =&amp;gt; {
    if (window.__imgAltOverlayInstalled) return;
    window.__imgAltOverlayInstalled = true;

    const trimAlt = (s) =&amp;gt; (typeof s === &quot;string&quot; ? s.trim() : &quot;&quot;);

    const install = (root = document) =&amp;gt; {
      // 仅拼图图片：在 item 上挂 data-alt（不改 DOM 结构）
      const items = root.querySelectorAll(&quot;article[data-pagefind-body] .image-mosaic-item&quot;);
      items.forEach((item) =&amp;gt; {
        const img = item.querySelector(&quot;img&quot;);
        if (!img) return;
        const alt = trimAlt(img.getAttribute(&quot;alt&quot;));
        if (!alt) {
          item.removeAttribute(&quot;data-alt&quot;);
          return;
        }
        item.dataset.alt = alt;
      });
    };

    // 注意：文章页有“图片拼图”脚本会依赖原始 DOM 结构（p/figure 里直接是 img）。
    // 这里稍微延后执行，避免先 wrap 破坏拼图的容器识别逻辑。
    const run = () =&amp;gt; {
      setTimeout(() =&amp;gt; install(document), 160);
    };
    if (document.readyState === &quot;loading&quot;) {
      document.addEventListener(&quot;DOMContentLoaded&quot;, run);
    } else {
      run();
    }
    document.addEventListener(&quot;astro:page-load&quot;, run);
    document.addEventListener(&quot;astro:after-swap&quot;, run);
  })();
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;效果是这样的:
&lt;img src=&quot;https://r2.asyncx.top/2026/01/28/202601282210322.gif&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
</content:encoded></item><item><title>季度小结-Confused</title><link>https://blog.asyncx.top/posts/2026-01-26/</link><guid isPermaLink="true">https://blog.asyncx.top/posts/2026-01-26/</guid><description> </description><pubDate>Wed, 28 Jan 2026 16:01:00 GMT</pubDate><content:encoded>&lt;h2&gt;前言&lt;/h2&gt;
&lt;p&gt;距上次写完月度小结已经过了很久, 心路历程是这样的:&quot;快期末了, 考完试再写&quot;, &quot;考完试大家计划出去旅游, 旅游完再写&quot;, &quot;没旅游成, 太冷了, 等最近发生一些有意思的事情了再写&quot;...久而久之, 这篇11月月度小结就变成了冬季季度小结. 今天痛定思痛决定翻看一下相册, 将最近发生的鸡毛蒜皮小事记录下来.&lt;/p&gt;
&lt;h2&gt;学业&lt;/h2&gt;
&lt;p&gt;依旧是学业部分, 迎来了我的最后一个学期, 我现在的状态就是标题, Confused. 对前路, 对未来. 上一学期的课程完美通过, 受益匪浅, 最后一个学期, 我选择了Computer Vision和Big Data Analysis这2门课, 选择前者是对ML方面的拓展, 后者是一个好过的课(因为我本科的实习和毕业设计和这门课很类似).&lt;/p&gt;
&lt;p&gt;至于Confused, 则是因为我直到现在为止还是处于焦虑状态, 觉得自己一事无成, 到现在都还没有决定好之后找工作的方向. 因为政策改革, 现在申请PGWP(加拿大留学生的开放式毕业工签)需要CLB7的语言成绩, 我打算在加拿大考出来, 等到毕业后先回国休息几个月, 进而在国内一边申请PGWP一边做两手准备, 国内和加拿大同时找工作.&lt;/p&gt;
&lt;p&gt;我不清楚我这样的选择是否正确, 但学业压力真真切切的让我的身体和心理产生了一些情况------从我来这里读Master到现在还没回去过, 我认为回去可以有效的缓解身心问题, 顺便拔掉最后一颗烦人的阻生智齿.&lt;/p&gt;
&lt;h2&gt;生活&lt;/h2&gt;
&lt;p&gt;今年蒙特利尔的冬天格外的冷, 前两天的体感温度甚至达到了-49℃, 家里的供暖也是在全功率运行, 实在是太干了, 一个加湿器只能让湿度到20%, 于是:
&lt;img src=&quot;https://r2.asyncx.top/2026/01/28/202601280124208.webp&quot; alt=&quot;家门口的雪&quot; /&gt;
&lt;img src=&quot;https://r2.asyncx.top/2026/01/28/202601280122069.webp&quot; alt=&quot;自制加湿器&quot; /&gt;&lt;/p&gt;
&lt;p&gt;前些天去朋友家里聚餐, 本来说好我不做饭最后帮忙打扫卫生, 说着说着就炸了个小酥肉, 第一次做, 很美味, 之后会更新食谱, 等回去做给家人吃.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://r2.asyncx.top/2026/01/28/202601280122480.webp&quot; alt=&quot;&quot; /&gt;
&lt;img src=&quot;https://r2.asyncx.top/2026/01/28/202601280123151.webp&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;用了1年3个月的鼠标(ROG龙鳞Ace)中道崩殂了, 本来打算上网买微动修一下的, 但是这边4$4个的微动+25$的运费让我无福消受, 打算带回国再自己修, 于是购入了一个Razer Viper v3pro, 此外顺手测了一下自己的反应速度, 嗯, 我还很年轻.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://r2.asyncx.top/2026/01/28/202601280127458.webp&quot; alt=&quot;&quot; /&gt;
&lt;img src=&quot;https://r2.asyncx.top/2026/01/28/202601280128519.webp&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;最后是烧饼, 家里老人回国前手把手教我, 我纪录到了食谱中, 也是非常成功.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;食谱url: https://lib.asyncx.top/02-diet/sesame-seed-cake&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;img src=&quot;https://r2.asyncx.top/2026/01/28/202601280129608.webp&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;一些零碎的图片:
&lt;img src=&quot;https://r2.asyncx.top/2026/01/28/202601280131485.webp&quot; alt=&quot;朋友们在我家吃潮汕牛肉火锅&quot; /&gt;
&lt;img src=&quot;https://r2.asyncx.top/2026/01/28/202601280131015.webp&quot; alt=&quot;第二只小猫--黏黏&quot; /&gt;
&lt;img src=&quot;https://r2.asyncx.top/2026/01/28/202601280131167.webp&quot; alt=&quot;光与影:33号远征队&quot; /&gt;
&lt;img src=&quot;https://r2.asyncx.top/2026/01/28/202601280131098.webp&quot; alt=&quot;期末考前复习时, 学完出门的夕阳&quot; /&gt;
&lt;img src=&quot;https://r2.asyncx.top/2026/01/28/202601280132741.webp&quot; alt=&quot;99成稀罕物,创2创1光盘&quot; /&gt;
&lt;img src=&quot;https://r2.asyncx.top/2026/01/28/202601280132521.webp&quot; alt=&quot;完美煎三文鱼&quot; /&gt;
&lt;img src=&quot;https://r2.asyncx.top/2026/01/28/202601280132841.webp&quot; alt=&quot;三文鱼again&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;博客更新&lt;/h2&gt;
&lt;p&gt;虽然一直没有更新blog, 但是因为要做饭要翻食谱, 还是经常打开Obsidian看笔记的, 跳转到博客后又发现了一些视觉问题, 于是:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;新增了多张图片出现在一起的拼图(2025TODO圆满达成)&lt;/li&gt;
&lt;li&gt;优化了TOC的获取逻辑和样式.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src=&quot;https://r2.asyncx.top/2026/01/27/202601271440464.webp&quot; alt=&quot;&quot; /&gt;
&lt;img src=&quot;https://r2.asyncx.top/2026/01/27/202601271441310.webp&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;书影音游&lt;/h2&gt;
&lt;p&gt;++movie/56qwhB3eQxdzWP1kh6SZgo++&lt;/p&gt;
&lt;p&gt;++movie/3kKxQBRSQcUI7ad7Y58fIM++&lt;/p&gt;
&lt;p&gt;++movie/0mJVzyC1JCtgQzEyS4P99k++&lt;/p&gt;
&lt;p&gt;++tv/0gxWeOgJIDF5qSEtTSc0Om++&lt;/p&gt;
&lt;p&gt;++tv/4QwLGwPDmlU2QTJdN48z8A++&lt;/p&gt;
&lt;p&gt;++tv/2C3YziJ5fZ9uy6dXtWFI9D++&lt;/p&gt;
&lt;p&gt;++tv/78m0c31HHnzNTVSsFw6qnX++&lt;/p&gt;
&lt;p&gt;++tv/2JZidKGEhSbEO9EFcQ1e6G++&lt;/p&gt;
&lt;p&gt;++game/1BUuAewL1tD5JUZ50wCA3U++&lt;/p&gt;
&lt;p&gt;++game/2KT0KJiapTFNIy3AWjbrrs++&lt;/p&gt;
&lt;p&gt;++game/7Vj6wdeXgXfeJssjAoW9VI++&lt;/p&gt;
</content:encoded></item><item><title>10月小结-行之有效</title><link>https://blog.asyncx.top/posts/2025-10-30/</link><guid isPermaLink="true">https://blog.asyncx.top/posts/2025-10-30/</guid><description> </description><pubDate>Thu, 30 Oct 2025 21:10:00 GMT</pubDate><content:encoded>&lt;h2&gt;前言&lt;/h2&gt;
&lt;p&gt;本月也是一如既往的忙碌, 算法课也是迎来了期中考, 得益于朋友发的往届真题, 让考试思路变得有迹可循. 其中有道复杂度为O(n)下进行轮询子数组之和比较的伪码题难倒了很多同学, 好在我做出来了, 但坏消息是其他的题没时间写.....应该能达到Average.....此外的另一门课, 由于期中考试发生在罢工期间, 幸运的取消了:).&lt;/p&gt;
&lt;p&gt;为什么本文的标题为行之有效,  1是因为这次考试的复习历程让我觉得复习到了老师考试的关键点, 2则是因为本月也开始上法语班了, 但由于大学课程时间的问题我无法出席, 最后不得以协商进入waitlist, 不过这3周的课程也让我受益匪浅, 最快入门一个0基础知识的方法, 就是有人督促和解惑.&lt;/p&gt;
&lt;h2&gt;游&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://r2.asyncx.top/2025/10/30/202510302145407.webp&quot; alt=&quot;打架的鹿&quot; /&gt;
得闲之余也和朋友们去了Omega Parc野生动物园(实际上算是鹿园), 园区游览是开车进行的, 大概3小时的车程, 期间有可以下车休息的区域. 游览完后感慨被骗了.&lt;/p&gt;
&lt;p&gt;之所以说实际算是鹿园, 是因为到处都是鹿, 还拦路抢吃萝卜. 根据官网的宣传, 园中有各种各样的野生动物和鸟类, 但开车游览时候除了鹿, 牛等这些动物, 其余的动物都是被关在一片栅栏里的, 仅供游览, 无法互动.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://r2.asyncx.top/2025/10/30/202510302215320.webp&quot; alt=&quot;树梢的乌鸦&quot; /&gt;
&lt;img src=&quot;https://r2.asyncx.top/2025/10/30/202510302216960.webp&quot; alt=&quot;看镜头的牛&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;书影音游&lt;/h2&gt;
&lt;p&gt;++movie/4OE3wVlg1ujFfhIBTT9kxl++&lt;/p&gt;
&lt;p&gt;++movie/6bCOihfoK7tVGElGl3HbqY++&lt;/p&gt;
&lt;p&gt;++movie/5NAjaDqAgZeZ3ZzzPAkYEW++&lt;/p&gt;
&lt;p&gt;++book/57CULf86zMrnoz5Ld7motM++&lt;/p&gt;
&lt;p&gt;++game/3BiwZGaz35mNYnLkkc0SQv++&lt;/p&gt;
</content:encoded></item><item><title>9月小结-什么都干了</title><link>https://blog.asyncx.top/posts/2025-09-27/</link><guid isPermaLink="true">https://blog.asyncx.top/posts/2025-09-27/</guid><description> </description><pubDate>Tue, 07 Oct 2025 01:09:00 GMT</pubDate><content:encoded>&lt;h2&gt;前言&lt;/h2&gt;
&lt;p&gt;这篇月小结拖更蛮久, 原因在于最近的生活实在是充实, 时值枫叶季, 去了一趟Mont-Tremblant,赏枫, 打算整理照片后在下个月度小结发布. 学期开学1月有余, 课业压力让我又想起了刚出国的日子... 本学期的高压课程是算法, 其次是计算机网络. 这2门课对我来说都是弱项.&lt;/p&gt;
&lt;p&gt;算法课程细致入微, 课上课下学起来都颇费功夫. 计网截止到上周讲的还都接触过, 例如DNS解析之类的, 这周开始的可靠数据传输RDT还需要下一番功夫.
&lt;img src=&quot;https://r2.asyncx.top/2025/10/07/202510071636333.webp&quot; alt=&quot;算法.......算法.......&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;消费主义&lt;/h2&gt;
&lt;h3&gt;NAS/三星990pro 1T&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;a href=&quot;https://blog.asyncx.top/posts/2025-09-21&quot;&gt;第七期-一台NAS&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;在这里不得不重提一下, 一台NAS真的优化了我的很多场景, 文件夹同步/动下载影视/外网的照片访问等功能对我来说真的很有用, 缺点也有, 外网访问摄制的视频时遇到了速度不够的问题, 接下来打算琢磨一下把视频自动备份到google drive/dropbox方便访问.&lt;/p&gt;
&lt;p&gt;之前因为罢工和找了不靠谱的第三方集运, 我从国内寄过来的衣物和键盘丢了, 迫不得已在小红书上收了一个键盘, 这个老哥最近又在出硬盘, 我就花了55$买入了一个1T的990pro.&lt;/p&gt;
&lt;h3&gt;ROG DELTA II(ROG 棱镜2)&lt;/h3&gt;
&lt;p&gt;这2年在家里用的最多的耳机是女朋友送的水月雨Aria2, 因为我使用时间过长, 遇到了金属网老化/耳机腔体严重掉漆的情况. 金属网联系售后是10块/5对, 但是腐蚀掉漆问题无能为力, 清掉腐蚀的地方后偶尔会有一点漏电. 看到Bestbuy的棱镜2打折, 就火速购入了. 耳罩式耳机的确对耳朵更友好, 但使用下来音质的确没有有线强, 不过强在有无线和有麦克风, 偶尔和国内外朋友打游戏, 剪视频看视频还是很舒服的.&lt;/p&gt;
&lt;p&gt;不出意料的话就要出意外了, 这里讲一下在使用这个耳机的时候遇到的断连问题, 以方便有读者通过关键词搜索到此文:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;遇到的情况: 耳机每过几分钟就会遇到一次声音中断的问题, 并伴有应用卡顿和声音丢失的问题.&lt;/li&gt;
&lt;li&gt;怀疑的方向: USB3.0导致的2.4G接收干扰/声卡or蓝牙驱动异常/系统问题&lt;/li&gt;
&lt;li&gt;猜测问题发生点: 前段时间修改了系统注册表以修改电脑用户的名称, 有几个无法修改项, 当时没有在意, 在检查系统服务进程时候发现了管理无线设备数据传输的服务启动异常, 查看log发现每次重启就伴有卡顿, 于是确定问题为&lt;strong&gt;系统问题&lt;/strong&gt;, 重装系统后解决.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;书影音游&lt;/h2&gt;
&lt;p&gt;++tv/1e1nw4EEXVAwE0bSImEp9y++&lt;/p&gt;
&lt;p&gt;++tv/5SFon8PVjPuAIIaKziZToO++&lt;/p&gt;
&lt;p&gt;++movie/7haEvPPYBSLlekzDwj8m2i++&lt;/p&gt;
&lt;p&gt;++book/6uMu8bCA886NcGxZVd9lAz++&lt;/p&gt;
&lt;p&gt;++game/1EZcXj3398L8TKZ4ELPIkW++&lt;/p&gt;
&lt;p&gt;++game/2vyzNrQ3s0lDx11arqfZm1++&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://r2.asyncx.top/2025/10/07/202510071706621.webp&quot; alt=&quot;鼠鼠看日落&quot; /&gt;&lt;/p&gt;
</content:encoded></item><item><title>第七期-一台NAS</title><link>https://blog.asyncx.top/posts/2025-09-21/</link><guid isPermaLink="true">https://blog.asyncx.top/posts/2025-09-21/</guid><description> </description><pubDate>Sun, 21 Sep 2025 21:09:00 GMT</pubDate><content:encoded>&lt;h2&gt;前言&lt;/h2&gt;
&lt;p&gt;一台能一天24小时开机的主机一直是我的梦想之一. 这个梦想的出现要追溯到我的初中时期, 那时候Minecraft刚刚推出, 我和好朋友就开始琢磨怎么样能有一个自己的游戏服务器. 之后用了很长的一段时间才知道了部署一个持久运行的server需要哪些东西, 又需要运行哪些服务.&lt;/p&gt;
&lt;p&gt;大一的时候, 身边有同学买了&lt;a href=&quot;https://www.synology.cn/zh-cn&quot;&gt;Synology群晖&lt;/a&gt;, 同学很慷慨的给我开了一个账户让我体验, 但缺乏目的性的体验让我很是迷茫. 大二的时候, 我捡垃圾, 拥有了一台真正意义上的服务器, 印象中的配置是&lt;code&gt;i3-8100/16G + 2TB SATA&lt;/code&gt;. 不过那时候对linux一窍不通, 所以用了&lt;code&gt;Windows server&lt;/code&gt;作为系统, 装了&lt;code&gt;Jellyfin&lt;/code&gt;和&lt;code&gt;qBittorrent&lt;/code&gt;, 简单的作为一个手动管理的数据存储/影音库. 但很快这个主机就吃灰了----- 我妈在家里听到主机吭吭哧哧的就直接拔掉了插座. (笑)&lt;/p&gt;
&lt;p&gt;上文中的好朋友一直是一个能折腾的人, 他整了一个芯片是N100的小主机, 刷了&lt;a href=&quot;https://www.fnnas.com/&quot;&gt;FnOS&lt;/a&gt;来当作NAS. 我对于NAS系统的了解还出在一个模糊的时期, 在了解完晚上的系统后, 我找他开了一个系统账号, 体验下来, 我觉得是一个开箱即用的好系统. 于是购入了一个N200/12G RAM的全固态NAS. 选择全固态的原因也很简单, 静音, 快速, 适合一个没有固定居所的留学生.&lt;/p&gt;
&lt;p&gt;本文用于初步记录以下现阶段我对NAS的需求, 以及通过FnOS部署了哪些服务, 且仅当作一篇随笔看好了. 教程在网上很全, 唯一踩坑的地方是: &lt;strong&gt;在FnOS中不要用ssh安装&lt;code&gt;Nginx&lt;/code&gt;, 这会在重启后挤掉系统内嵌的&lt;code&gt;trim_nginx&lt;/code&gt;服务, 导致无法访问NAS面板.&lt;/strong&gt;&lt;/p&gt;
&lt;h2&gt;部署服务&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;FnOS自带的影视中心和相册配合软件已经很好的实现了照片备份和观影, 我就没有再进行任何额外的配置.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;Nginx Proxy Manager: 反代工具, 所有外网访问的服务都通过一个端口出去&lt;/li&gt;
&lt;li&gt;Nastool: 追剧/观影工具, 可以订阅持续更新的电视剧/动漫/电影并发送到&lt;code&gt;qBittorrent&lt;/code&gt;中进行下载&lt;/li&gt;
&lt;li&gt;qBittorrent: 下载工具&lt;/li&gt;
&lt;li&gt;Navidrome: 音乐工具, 目前对我来说没有用, 更经常用&lt;code&gt;SMB&lt;/code&gt;搭配Symfonium(安卓端听歌app, 很好用)听歌.&lt;/li&gt;
&lt;li&gt;flatnotes: 一个轻量化的笔记软件, 用来当草稿本, 存放一些低安全性的跨设备内容.&lt;/li&gt;
&lt;li&gt;Sun-Panel: 导航主页, 选择这个的唯一原因是有内网外网切换功能&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;需求明确&lt;/h2&gt;
&lt;p&gt;为什么标题要叫需求明确? 互联网上你经常能刷到: &quot;XXXX年了, 你真的需要一台NAS吗?&quot; 购入之前, 我列了一个清单, 考虑到我会用来部署什么服务/提供什么便利. 当然这中间几经琢磨, 放弃了一些想法.
&lt;img src=&quot;https://r2.asyncx.top/2025/09/22/202509220058974.webp&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;在8月小结中我有提到, 我的手机经历过一次&quot;变砖&quot;, 后果就是我丢了从上一年2月到今年8月之间的所有照片, 所以我迫切的需要一个足够安全的私有云来备份照片; 在我的MacBook上, 我给从大学时期到现在位置的所有个人证件,重要文件打上了红色的tag, 但当我用&lt;code&gt;ForkLift&lt;/code&gt;时误触了删除tag, 并没有及时发现. 所有文件都被删到了垃圾桶中, 失去了原本的内容结构; 依赖单个设备的数据存储和安全管理已经没有办法满足我的需求了, 于是NAS就成为了必需品.&lt;/p&gt;
&lt;p&gt;如果我对NAS进行定义, 存储一定一定是第一优先级, 如果你很喜欢折腾, 那你更需要一台个人服务器, 而不是NAS------即使前者能兼顾后者的功能.&lt;/p&gt;
&lt;h2&gt;结语&lt;/h2&gt;
&lt;p&gt;NAS就是这么一个东西(笑), &lt;strong&gt;一个能帮助你解决数据方面烦恼的最优解&lt;/strong&gt;. 我在没有的时候很憧憬, 拥有后很庆幸, 也祛魅了.
&lt;img src=&quot;https://r2.asyncx.top/2025/09/22/202509220108811.webp&quot; alt=&quot;Sun-Panel截图&quot; /&gt;&lt;/p&gt;
</content:encoded></item><item><title>8月小结-锻炼/探索/进步(踩雷)</title><link>https://blog.asyncx.top/posts/2025-08-23/</link><guid isPermaLink="true">https://blog.asyncx.top/posts/2025-08-23/</guid><description> </description><pubDate>Sat, 23 Aug 2025 11:08:00 GMT</pubDate><content:encoded>&lt;p&gt;&amp;lt;iframe data-testid=&quot;embed-iframe&quot; style=&quot;border-radius:12px&quot; src=&quot;https://open.spotify.com/embed/track/0gPPcSZ5dlAncGsxa56Ck2?utm_source=generator&quot; width=&quot;100%&quot; height=&quot;152&quot; frameBorder=&quot;0&quot; allowfullscreen=&quot;&quot; allow=&quot;autoplay; clipboard-write; encrypted-media; fullscreen; picture-in-picture&quot; loading=&quot;lazy&quot;&amp;gt;&amp;lt;/iframe&amp;gt;&lt;/p&gt;
&lt;h2&gt;前言/美食/生日&lt;/h2&gt;
&lt;p&gt;写这篇博客的时候, 国内时间正好是我上一年出发, 经苏黎世国际机场转机来到加拿大的日子. 并不是什么重大的日子但也值得纪念, 毕竟也是在异乡呆了足足一年了. 一时间感慨很多, 按照国内的卷王视角来看, 我着实是碌碌无为. 但和来到这里前的自己相比, 我认为已经全方面提升了, 至少我这么说服了我自己.&lt;/p&gt;
&lt;p&gt;来到这边后一而再再而三的感慨很多不正常的人, 但好在幸运的遇到了比较合拍的朋友们, 我们给自己起的群名是&lt;code&gt;抽象大队&lt;/code&gt;, 逢大家生日的时候, 都会做蛋糕, 精挑细选一家合寿星口味的饭店一起吃饭.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://r2.asyncx.top/2025/08/23/202508232307231.webp&quot; alt=&quot;白桃乌龙......什么什么的蛋糕, 前缀太长了&quot; /&gt;
&lt;img src=&quot;https://r2.asyncx.top/2025/08/23/202508232311650.webp&quot; alt=&quot;很不错的越南餐厅- 123 Dzo&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;运动&lt;/h2&gt;
&lt;p&gt;距离8月中旬的Summer学期结束已经1个星期了, 8月的这段时间每周保持着和朋友们运动1~2次的频率, 运动方式为骑车/游泳/网球, 主要还是打网球. 作为一个初学者, 我把羽毛球的一套动作给带到了网球中, 后果就是第一次打完胳膊酸痛, 后面学会双手引拍后好了一些.
&lt;img src=&quot;https://r2.asyncx.top/2025/08/23/202508232229208.webp&quot; alt=&quot;效果拔群!&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;折腾&lt;/h2&gt;
&lt;h3&gt;GL-MT3000路由&lt;/h3&gt;
&lt;p&gt;这是一个便携/小巧的OpenWRT系统路由器, 我在国内的时候朋友要走了家里的华为路由组mesh, 给了我一个GL-AXT1800, 我刷入了32G的存储来跑一些小东西, 例如媒体服务之类的小功能. 走的时候担心行李超重, 就没有带这个小东西过来(太后悔了). 趁着有不错的deal我就在Amazon上购入了一个MT3000, 相比AXT1800体积更小巧, 也更fit for me. 到手后开启ssh装了一些网络加速的插件, 和之前那个十几年前的路由器相比真的是质的飞跃.&lt;/p&gt;
&lt;h3&gt;为Oneplus12刷入OxygenOS&lt;/h3&gt;
&lt;p&gt;这个就说来惭愧了...一开始, 我满怀信心的在网上多方比较了教程, 选了一个看起来靠谱且简单的. 然后就开始按着步骤操作. 但在格式化系统安装OxygenOS的时候和电脑之间出现了传输问题. 然后手机就陷入了循环重启(bootloop). 在查找修理方法无果后, 果断联系了专家: &lt;a href=&quot;https://optool.daxiaamu.com/remote_rescue&quot;&gt;大侠阿木&lt;/a&gt;, 具体方法就是远程我电脑, 用更专业的工具去重装了系统. 从手机坏到修好, 历时2天, 好在结局是好的. 使用几天后, 和国内的ColorOS系统相比, 个人感觉有以下不同:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;相比国内手机嵌入的ai, 氧OS的是Gemini, 生态更完善.&lt;/li&gt;
&lt;li&gt;默认钱包应用变成了Google Wallet, 舒适.&lt;/li&gt;
&lt;li&gt;少了烦人的默认应用和机内小功能(主题/字体/安全管家/国内app小图标)&lt;/li&gt;
&lt;li&gt;更高的流畅度(主观)
&lt;img src=&quot;https://r2.asyncx.top/2025/08/23/202508232316755.webp&quot; alt=&quot;&quot; /&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;Hitbox&lt;/h3&gt;
&lt;p&gt;今天下午(北美时间)的时候, 小孩5-4击败了blaz拿到了EWC&quot;街霸6&quot;的冠军. 我也是看了整整一下午的比赛.&lt;/p&gt;
&lt;p&gt;上一年还在国内的时候, 从英国留学回来的好朋友一直在玩这个游戏, 当时我对于格斗游戏的认知还停留在街机厅的盗版拳皇/街霸和苹果手机上的&lt;code&gt;kof-i&lt;/code&gt;. 玩kof-i的很长时间都是去打人机, 看人物/队伍背景故事.
&lt;img src=&quot;https://r2.asyncx.top/2025/08/23/202508232320401.webp&quot; alt=&quot;Kof-i&quot; /&gt;&lt;/p&gt;
&lt;p&gt;直到好友拉了另外2个人入坑, 看他们菜鸡互啄让我也很感兴趣, 然后我就成为了&quot;云&quot;玩家, 偶尔刷到视频看一看, 刷到比赛看一看. 上个月街霸6打折的时候我买了下来, 因为就是因为看到了舞(Mai, 不知火舞, 街霸6在第二年的联动角色, 除此之外还有饿狼传说的特瑞, 上图左下那位)学了一些基础打法就开始玩排位, 直到上手才发现这个游戏想要玩好真的很难, 得益于好友的指导, 定段到了黑铁(下面还有ROOKIE).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;直到和真人对战, 我终于发现了格斗游戏的乐趣.&lt;/strong&gt; 每一次拆掉对面招数的兴奋, 被拆招的懊悔, 获胜的激动都是极其纯粹的. 你只能和自己较劲, 剔除自己的弱点, 提高自己的反应. 毫不夸张的说在和真人对战胜利后的喜悦是之前所有游戏没有办法比拟的.&lt;/p&gt;
&lt;p&gt;于是有了今天才拿到的hitbox, 上手练了一会就去找真人了, 手感良好😊:
&lt;img src=&quot;https://r2.asyncx.top/2025/08/23/202508232332399.webp&quot; alt=&quot;DOIO H06 + 铝合金键帽&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;博客装修&lt;/h3&gt;
&lt;p&gt;&lt;a href=&quot;https://blog.asyncx.top/posts/2025-08-08&quot;&gt;Astro-blog记录(7) - 小修小改和 Status Cafe组件&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;补充一个额外的改动: 修复了移动端的主页bug/添加了移动端的header适配&lt;/p&gt;
&lt;h2&gt;书影音游&lt;/h2&gt;
&lt;p&gt;++movie/0iqN1YrAG0Hh0HdmFv7y8v++&lt;/p&gt;
&lt;p&gt;++movie/0NxFGhJflscHm7pEZaiW6Y++&lt;/p&gt;
&lt;p&gt;++movie/01OH5yp4S3vzDTRNoAOJDl++&lt;/p&gt;
&lt;p&gt;++tv/1e1nw4EEXVAwE0bSImEp9y++&lt;/p&gt;
&lt;p&gt;++tv/6HBkGRTvqrik3cgp9Of7mg++&lt;/p&gt;
</content:encoded></item><item><title>Astro-blog记录(7) - 小修小改和 Status Cafe组件</title><link>https://blog.asyncx.top/posts/2025-08-08/</link><guid isPermaLink="true">https://blog.asyncx.top/posts/2025-08-08/</guid><description> </description><pubDate>Fri, 08 Aug 2025 22:08:00 GMT</pubDate><content:encoded>&lt;h2&gt;前言&lt;/h2&gt;
&lt;p&gt;不知道是我经常在互联网冲浪还是运气好, 总是能在冒出一些想法的时候找到需要的工具....最近在玩Warframe, 有一些奖励丰厚任务是随机出现的, 我就调API简单用Discord Webhook进行推送:
&lt;img src=&quot;https://r2.asyncx.top/2025/08/08/202508082334457.webp&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;于是我又想到, 能不能用写一个Discord的bot, 我把一些零碎的实时状态发过去, bot会读取然后更新blog的repo, 实时显示到blog上. 但前段时间&lt;a href=&quot;https://alanone.top/&quot;&gt;Alanone&lt;/a&gt;发消息更新blog的时候, 我顺便去串门看了一下, 发现了Status Cafe这个网站.&lt;/p&gt;
&lt;h2&gt;Status Cafe &amp;amp; 小组件&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://status.cafe/&quot;&gt;Status Cafe&lt;/a&gt;是一个发布实时状态的网站/组件，用户发布的状态可以RSS订阅，用网站提供的代码也可以显示到自己的网页中.  这类似于自部署的博客点赞小组件&lt;a href=&quot;https://github.com/dddddddddzzzz/OpenHeart&quot;&gt;Openheart&lt;/a&gt;, 在&lt;code&gt;curl&lt;/code&gt;的时候额外带上了文本. 省去了折腾的功夫. 使用过程中唯一遇到的问题就是从注册到收到成功邮件约1天时间, 看样子是站长亲自审核的, 吓得我以为是Cloudflare的邮件转发(博客的主要沟通邮箱通过Cloudflare部署)宕机了, 连着换邮箱注册了3个账户....&lt;/p&gt;
&lt;p&gt;这个网站有一个&lt;code&gt;Status stream&lt;/code&gt;, 你可以在上面看到所有人的status, 就像一个大型的博客聚合, 偶尔会发现让人感叹的网站. (大家怎么能这么会设计? 博客大装修再次提上日程). 闲逛过程也是发现鲜有中文的status, 不过也逛到了&lt;a href=&quot;https://gregueria.icu/&quot;&gt;小鱼老师的博客&lt;/a&gt;, 点进去发现果然有写status的文章.
Status cafe提供了一些badge, 例如:&amp;lt;a href=&quot;https://status.cafe/users/asyncx&quot;&amp;gt;&amp;lt;img src=&quot;https://status.cafe/users/asyncx/badge.png&quot; alt=&quot;Status Cafe Profile&quot;/&amp;gt;&amp;lt;/a&amp;gt;和&amp;lt;a href=&quot;https://status.cafe&quot;&amp;gt;&amp;lt;img src=&quot;https://status.cafe/assets/button.png&quot; alt=&quot;Status Cafe&quot;/&amp;gt;&amp;lt;/a&amp;gt;, 不过被我嫌丑所以没有打算用这个. 之后装修博客的时候计划为这些组件画一些像素badge(inspired by &lt;a href=&quot;https://lmnt.me/&quot;&gt;LMNT&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;此外, Status cafe提供了一个显示最新状态的小组件, 通过这个小组件你就可以把最新的status显示在网页中. 自带的css略微复古, 就手搓了一个.
&lt;img src=&quot;https://r2.asyncx.top/2025/08/08/202508082324911.webp&quot; alt=&quot;易于使用的小组件页面&quot; /&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;div
  id=&quot;statuscafe&quot;
  class=&quot;ml-auto w-fit rounded-md border-bgdefault dark:border-fontdefault p-3 transition-colors duration-300&quot;
&amp;gt;
  &amp;lt;div class=&quot;text-center&quot;&amp;gt;
    &amp;lt;div
      id=&quot;statuscafe-content&quot;
      class=&quot;inline text-sm font-mono leading-relaxed text-zinc-900 dark:text-zinc-100&quot;
    &amp;gt;
      Loading...
    &amp;lt;/div&amp;gt;
    &amp;lt;span class=&quot;mx-1 text-xs text-zinc-500 dark:text-zinc-500&quot;&amp;gt;(&amp;lt;/span&amp;gt;
    &amp;lt;div
      id=&quot;statuscafe-username&quot;
      class=&quot;inline text-xs font-mono tracking-wide text-zinc-500 dark:text-zinc-500&quot;
    &amp;gt;
      Loading...
    &amp;lt;/div&amp;gt;
    &amp;lt;span class=&quot;mx-1 text-xs text-zinc-500 dark:text-zinc-500&quot;&amp;gt;)&amp;lt;/span&amp;gt;
  &amp;lt;/div&amp;gt;
&amp;lt;/div&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;PS: 因为Status cafe的主页还没装修, 目前并不打算很显式地公布link, 所以当我发现这个小组件会请求远程的js来进行渲染, 就把js嵌入到本地进一步修改了:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;document.writeln(`
  &amp;lt;div id=&quot;statuscafe&quot;&amp;gt;
    &amp;lt;div id=&quot;statuscafe-username&quot;&amp;gt;&amp;lt;/div&amp;gt;
    &amp;lt;div id=&quot;statuscafe-content&quot;&amp;gt;&amp;lt;/div&amp;gt;
  &amp;lt;/div&amp;gt;
`);
fetch(&quot;https://status.cafe/users/asyncx/status.json&quot;)
  .then((r) =&amp;gt; r.json())
  .then((r) =&amp;gt; {
    if (!r.content.length) {
      document.getElementById(&quot;statuscafe-content&quot;).innerHTML = &quot;No status yet.&quot;;
      return;
    }
    document.getElementById(&quot;statuscafe-username&quot;).innerHTML = r.timeAgo;
    document.getElementById(&quot;statuscafe-content&quot;).innerHTML = r.content;
  });
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;效果就像在主页看到的一样:
&lt;img src=&quot;https://r2.asyncx.top/2025/08/08/202508082332807.webp&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Astro的ViewTransition&lt;/h2&gt;
&lt;p&gt;Astro v5 把 &lt;code&gt;&amp;lt;ViewTransitions /&amp;gt;&lt;/code&gt; 组件改名成了 &lt;code&gt;&amp;lt;ClientRouter /&amp;gt;&lt;/code&gt;， 已手动修改. 但还是有一些bug没有解决, 例如整个网站对某些外部资源的请求只进行一次, 如果请求内容发生变化仍有几率不会重新请求, 进而导致显示异常, 比如Twiiko评论, 这个bug我会尽可能的修复.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;发布本文2h后已修复. 解决方法为在&lt;code&gt;&amp;lt;head&amp;gt;&lt;/code&gt;添加相应外部资源进行持久化&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;添加Solana赞赏&lt;/h2&gt;
&lt;p&gt;V2EX的站长Livid上线了一些加密货币的功能, 出发点是好的, 但站内充斥的乞讨信息令人厌烦. &lt;s&gt;个人建议加一个分区叫&lt;code&gt;Begging&lt;/code&gt;.&lt;/s&gt; 我一直对去中心化和联邦宇宙等比中心化自由的架构形态充满兴趣, 所以买了60$的V2EX币, 也顺手给blog加上了赞赏链接, 不过为了不影响观感, 添加到了某个不显眼的地方.&lt;/p&gt;
&lt;h2&gt;移除/recent&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;最近做了什么&lt;/code&gt;这个页面我并不经常更新, 可见性没有Status cafe高, 互动性没有Mastodon强, 趁着这次更新干脆就暂时移除掉了, 后续如果有更好的想法或装修好Status cafe会再次开放.&lt;/p&gt;
</content:encoded></item><item><title>Astro-blog记录(6) - 制作一个自同步运动数据页</title><link>https://blog.asyncx.top/posts/2025-07-13/</link><guid isPermaLink="true">https://blog.asyncx.top/posts/2025-07-13/</guid><description> </description><pubDate>Fri, 11 Jul 2025 13:07:00 GMT</pubDate><content:encoded>&lt;h2&gt;前言&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;本文的实现并没有包含路径展示,分年统计的功能, 如果你需要更成熟的方案, 可以使用&lt;a href=&quot;https://github.com/yihong0618/running_page/tree/master&quot;&gt;yihong0618/running_page&lt;/a&gt;.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;前几天购入了一块佳明, 在进行几次运动后一如既往的想要折腾一下, 就有了写一个运动数据页的想法. 我的需求很简单, 有一个总体数据展示, 并且可以兼顾隐私性(数据太多不会读)和扩展性(万一以后想加点什么). 所以初步功能就定为了:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;用一列数据来展示已经运动了多少&lt;/li&gt;
&lt;li&gt;用一个表格来汇总所有运动的细节&lt;/li&gt;
&lt;li&gt;添加一个&quot;更新日期&quot;方便观察运行情况&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;本文基于Python模拟Garmin connect登录以获得运动数据, 并存储为csv文件, 之后使用Astro基于csv文件进行前端页面的渲染. 其中自动化运行Python是通过Github Actions完成的. 你可以访问我的库来获得详情: &lt;a href=&quot;https://github.com/A5yncX/my_running&quot;&gt;A5yncX/my_running&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;1. 运行环境&lt;/h2&gt;
&lt;p&gt;由于佳明开启心电图功能后需要二次验证(邮箱验证码/短信验证码), 并且在短时间内多次的登录会触发cloudflare的风控, 所以本文方法是基于登录生成的token登录. 你需要如下包:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;pip install garminconnect httpx cloudscraper
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;接下来, Fork我的仓库是最快的方法, 如果你并不想fork, 也可以点击&lt;code&gt;Code -&amp;gt; Download zip&lt;/code&gt;到本地修改并继续运行.&lt;/p&gt;
&lt;h2&gt;2. 首次运行的准备&lt;/h2&gt;
&lt;p&gt;在项目目录运行:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;python3 running/garminconnect_exporter.py --username YOUR_MAIL --password YOUR_PSWD
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;这一步的作用是在本地生成2个JSON格式的Token, 用来持久化登录, 有效期据github上的大家说是1年.&lt;/p&gt;
&lt;p&gt;在你首次运行并接收到验证码后, 这两个文件会生成到位于你电脑的根目录的&lt;code&gt;.garminconnect&lt;/code&gt;文件夹内, 文件的名字是&lt;code&gt;oauth1_token.json/oauth2_token.json&lt;/code&gt;, 之后你运行一下命令就可以直接基于token进行登录了:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;python3 running/garminconnect_exporter.py
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;首次运行后你会发现csv文件生成于&lt;code&gt;src/components/activities.csv&lt;/code&gt;. 这就是后续使用Astro可以进行读取的文件了. 接下来的步骤需要你先推送到github.&lt;/p&gt;
&lt;h2&gt;3. (重要)(可选)Github Actions自动更新&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;如果你更倾向于手动更新, 那么恭喜你, 你可以略过这里跳转到部署那一步了.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;本地运行&lt;code&gt;garminconnect_exporter.py&lt;/code&gt;依托于本地的那2个token, 但是在Github上如果直接将这2个json的内容作为variable传入, 会出现换行符等问题导致没法正常使用, 所以需要用base64转换并存储, 接下来是详细步骤:&lt;/p&gt;
&lt;h3&gt;3.1 生成base64文件:&lt;/h3&gt;
&lt;p&gt;到本地&lt;code&gt;.garminconnect&lt;/code&gt;文件夹的目录中, 你会发现那2个json文件, 分别运行:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;base64 -i oauth1_token.json
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;和&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;base64 -i oauth2_token.json
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;分别复制这2个命令的输出, 并点击存储库的setting: &lt;code&gt;Setting-&amp;gt;Secrets and variables-&amp;gt;Actions-&amp;gt;New repository secrets&lt;/code&gt;
设置两个secret, 命名为&lt;code&gt;GARMIN_OAUTH1_B64/GARMIN_OAUTH2_B64&lt;/code&gt;, 分别存储这2个命令的输出.&lt;/p&gt;
&lt;h3&gt;3.2 (可选)存储账号密码到secret&lt;/h3&gt;
&lt;p&gt;这一步的作用是方便没有邮箱/短信登录验证的人使用的, 以及如果后续token失效, 你的邮箱/短信会收到一次验证码, 可以起到提醒你更新token的作用.
依旧点击存储库的setting: &lt;code&gt;Setting-&amp;gt;Secrets and variables-&amp;gt;Actions-&amp;gt;New repository secrets&lt;/code&gt;, 设置两个secret, 命名为&lt;code&gt;GARMIN_USERNAME/GARMIN_PASSWORD&lt;/code&gt;, 值就是你的登录账号密码.&lt;/p&gt;
&lt;h3&gt;3.3 试运行&lt;/h3&gt;
&lt;p&gt;删除github repo中之前生成的csv文件, 点击&lt;code&gt;Actions&lt;/code&gt;手动运行一下, 查看是否正确生成.&lt;/p&gt;
&lt;h2&gt;4. 部署(Cloudflare)&lt;/h2&gt;
&lt;p&gt;侧边栏选择计算(Workers), 创建pages, 模板选择Astro, 默认的命令和路径不需要改变, 等待部署成功即可.&lt;/p&gt;
</content:encoded></item><item><title>4-7月小结-庸庸碌碌</title><link>https://blog.asyncx.top/posts/2025-07-11/</link><guid isPermaLink="true">https://blog.asyncx.top/posts/2025-07-11/</guid><description> </description><pubDate>Fri, 11 Jul 2025 13:07:00 GMT</pubDate><content:encoded>&lt;h2&gt;前言&lt;/h2&gt;
&lt;p&gt;忙于学业, 好久没有更新. 为了追上之前落下的学分, 我选择在summer term报了full-time, 又因为夏季的学期有2段, 所以有2门课程集中在了第1段, 这就类似于我在一个正常的学期一周上5门课,每门课又有1/2个LEC课和1/2个LAB课. 第一段学期对我来说实在是太难了. 好在磕磕碰碰的结束了这个学期, 除了考试我感到不满意外, 我的作业和项目几乎都拿到了高分以至于满分. 一定程度上这对我来说也是一种鼓励吧.&lt;/p&gt;
&lt;h2&gt;消费主义陷阱&lt;/h2&gt;
&lt;p&gt;4个月前称体重的时候, 我的体重还一如既往的是65kg. 上周称体重的时候, 已经69kg了. 上一年爬Saint-Bruno的时候, 也是我有史以来第一次爬山爬到上气不接下气, 心率一度到200. 刚好看到Garmin的官网在打折, 于是买了一块Garmin Fēnix 7 Pro Sapphire Solar.&lt;/p&gt;
&lt;p&gt;到手后跑了一下, 发现我的身体机能下降到了一个不敢想象的地步.1km一圈, 跑了3圈, 配速是8&apos; 8&apos; 7&apos;. 第三圈的末尾我的心率从140断崖式上升到200. 很难想初中高中那时候的跑操是怎么跑下来的.&lt;/p&gt;
&lt;p&gt;很多专业的数据我还没有了解清楚, 我目前看的指标有: BPM(平均心率, 运动的时候看)和Body Battery(实时显示的身体电量, 休息和睡觉会充电, 压力和运动会消耗身体电量). 此外, Garmin会根据你的上述指标和其他状态来告诉你今天的理想运动内容. 目前我只用到了一部分的功能, 其他的还没有琢磨.&lt;/p&gt;
&lt;p&gt;第二段学期只有1门课, 所以我打算在每次下课后去爬Mont-Royal来增强心肺功能.&lt;/p&gt;
&lt;p&gt;最后, 我一如既往的折腾了一个&lt;a href=&quot;https://exercise.asyncx.top&quot;&gt;运动网页&lt;/a&gt;. 本来计划想用&lt;a href=&quot;https://github.com/yihong0618/running_page/tree/master&quot;&gt;yihong0618/running_page&lt;/a&gt;这个repo来实现, 但是我并不想展示轨迹, 于是在了解了Garmin connect API的原理后自己动手写了一个. 功能很简单, 具体来说就是Python模拟登录来获得运动数据的&lt;code&gt;json&lt;/code&gt;并处理成&lt;code&gt;.csv&lt;/code&gt;, 存储到&lt;code&gt;src/component&lt;/code&gt;中, 前端渲染交给&lt;code&gt;Astro&lt;/code&gt;来实现. 我会在晚些时候单独写一篇文章.
&lt;img src=&quot;https://r2.asyncx.top/2025/07/11/202507111422833.webp&quot; alt=&quot;默认页&quot; /&gt;
&lt;img src=&quot;https://r2.asyncx.top/2025/07/11/202507111422780.webp&quot; alt=&quot;详情数据展示&quot; /&gt;&lt;/p&gt;
&lt;p&gt;运行交给了Github, 部署交给了Cloudflare. 使用Actions, 在每日凌晨自动读取数据, 触发Cloudflare更新.&lt;/p&gt;
&lt;h2&gt;生活&lt;/h2&gt;
&lt;p&gt;我现在住的地方是外公外婆的房子, 天气变暖他们就从国内回来了. 所以我自然而然失去了厨房的所有权. 现在顿顿吃得极度清淡, 只能寄希望于和朋友们出门吃点口味重的. 考完试后, 我们一起去了昆虫馆:
&lt;img src=&quot;https://r2.asyncx.top/2025/07/11/202507111454519.webp&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;书影音游&lt;/h2&gt;
&lt;p&gt;++game/5pvs201VxbkldH4LOEtDVt++&lt;/p&gt;
&lt;p&gt;++game/35pyo0ZwNaEsTGrywLIsJ1++&lt;/p&gt;
&lt;p&gt;++movie/3pzmdXn8JRf4xIulfvb9Ef++&lt;/p&gt;
&lt;p&gt;++movie/6Vu6XIJIMSY2WWWobxj9r1++&lt;/p&gt;
</content:encoded></item><item><title>3月小结-自得其乐</title><link>https://blog.asyncx.top/posts/2025-04-13/</link><guid isPermaLink="true">https://blog.asyncx.top/posts/2025-04-13/</guid><description> </description><pubDate>Sun, 13 Apr 2025 21:04:00 GMT</pubDate><content:encoded>&lt;h2&gt;前言&lt;/h2&gt;
&lt;p&gt;距离上次更新已经1个多月了, 拖更的原因无非是学业, 以周为单位的代码实验课再加上偶尔的其他project也让我在很多时候应接不暇. 至于标题为什么是自得其乐, 是因为这个月没怎么进行不必要的社交, 这对一个I人来说是难能可贵的.&lt;/p&gt;
&lt;h2&gt;学业&lt;/h2&gt;
&lt;p&gt;我有想过这样的问题: 为什么每次小结我都要阶段性的提及我的学习方面? 这样的分类有没有存在的必要? 不过这个纠结点只存在了一会就消失了. 现在作为一个学生, 从任何角度来说都没有对学习略过不谈的理由. 而作为一个完全没有前车之鉴就出国读书的小白, 我自认为留下一些属于自己的记录是会对大家有帮助的.&lt;/p&gt;
&lt;p&gt;言归正传, 在停更的这段时间里, 我经历了6个实验, 2个代码考试, 1个期末考试外加几个presentation. 其中的代码考试和实验全部都是一门java编程课, 这门课的教授要求如下:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;上课不能使用任何电子设备.&lt;/li&gt;
&lt;li&gt;在实验和代码考试中你只能手写代码, 期间断网+禁止使用电子设备.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;那么实验和考试是如何开始的:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;TA在每次实验和考试(这两者的考察模式一模一样)开始前会先检查并确认你的电脑没法访问网络&lt;/li&gt;
&lt;li&gt;TA会发卷子并讲解题目, 卷子会提供input case和output case, 这和Leetcode上的写方法不同.&lt;/li&gt;
&lt;li&gt;完成代码并提交, 系统会测试并给你反馈.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;我在本科期间的实际java代码量少的可怜, 完全没有从0到1的完成过完整的代码, 所以在这门课开始的时候我很抓瞎, 至于抓瞎到什么程度: 第一次实验的内容是你需要对一个Array进行翻转和一些种类的遍历, 我当时甚至不知道java要怎么读取用户的输入(&lt;code&gt;Scanner sc = new Scanner(System.in)&lt;/code&gt;),在和旁边的中国同学窃窃私语得到答案后, 我又不知道怎么创建Array, 甚至不知道怎么遍历. 满分10分得了1/10.&lt;/p&gt;
&lt;p&gt;之后我狠狠的下了一番功夫, 实验和考试是在每周一的6:30PM开始的, 因为大家的变成水平良莠不齐, 经常考到11点才能回家, 因为我家离学校很远, 几乎每天回到家都是凌晨1点. 这里也留一下我对于这门课的心得: 我会在每周六看教授在交流软件上发布的关于下次考试的内容, 然后阅读教授的个人网站上的教学代码, 在过完所有的代码后结合考点去学习方法的写法和思路, 期间会用GPT学习一些代码写法上的简单问题, 我的prompt是&lt;code&gt;请你基于费曼学习法为我讲解XXXX&lt;/code&gt;(在这里我十分感谢&lt;a href=&quot;https://nortant.com&quot;&gt;汪哥&lt;/a&gt;, 我们之前关于获取信息的一些聊天让我受益匪浅). 在搞清楚所有可能考查的知识点后, 我会用markdown生成pdf打印下来, 便于随时看.
&lt;img src=&quot;https://r2.asyncx.top/2025/04/13/202504132314034.webp&quot; alt=&quot;为了日常的交作业和打印的方便和统一, 手搓了一个Typora输出pdf的主题(宋体+Times new roman)&quot; /&gt;&lt;/p&gt;
&lt;p&gt;这个教授平心而论, 很负责人且反馈迅速, 他能记住课上110+个学生每个人的名字,每次的考试也都会和同学沟通, 会去查看答题情况进而调整下次的实验/考试.&lt;/p&gt;
&lt;h2&gt;生活&lt;/h2&gt;
&lt;h3&gt;食&lt;/h3&gt;
&lt;p&gt;正如前言所说, 这个月没有那么多无意义的社交, 我依旧把大量的时间花费到了怎么犒劳自己的肚子上了. 这个月我也是带着诸如&quot;我做的卤猪蹄真的很好吃&quot;/&quot;我煲的汤真的很好喝&quot;的想法在做饭:
&lt;img src=&quot;https://r2.asyncx.top/2025/04/13/202504132334463.webp&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;还有在和大家聚餐时候做的腌笃鲜/可乐鸡翅.....&lt;/p&gt;
&lt;h3&gt;消费主义陷阱&lt;/h3&gt;
&lt;p&gt;因为我的手机膜告急, 不得不从淘宝买新的膜, 想着单独买有些亏, 遂再次步入了消费主义陷阱:&lt;/p&gt;
&lt;h4&gt;三菱UNI KURUTOGA自动铅笔&lt;/h4&gt;
&lt;p&gt;来到这里后因为考试/日常使用, 自动铅笔成了我唯一的文具. 我的上一根笔是三菱的α-gel
什么的, 宣传点是铅芯会随着每次写字自动旋转, 以保持字迹粗细的一致(很好用),和握住的那个凝胶能集中注意力(实际用下来真的很舒服, 并且用了2年没有任何老化问题). 这次更换后高强度使用, 得益于金属笔杆, 相比于上一根, 用起来更踏实, 字迹也更好控制了(妈见打, 就不放图片了)&lt;/p&gt;
&lt;h4&gt;CASIO B5600钛合金表壳+表带&lt;/h4&gt;
&lt;p&gt;这个表是好朋友在前些时候换了CASIO的农家橡树, 他没地方用也就寄给了我. 我的手腕实在太细了, 再加上他之前给我的是不锈钢壳, 想到快到夏天就顺便买了一个好评的小厂造的钛合金表壳+表带. 我在换钛合金前的称重是131g, 在换后的重量是100g, 和之前比舒服了特别多.&lt;/p&gt;
&lt;p&gt;迄今为止我给这个表改过:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;太阳能面板(b5000黑色原装)&lt;/li&gt;
&lt;li&gt;原装stn反显(可视角度更大)&lt;/li&gt;
&lt;li&gt;钛合金表壳+表带
&lt;img src=&quot;https://r2.asyncx.top/2025/04/13/202504132348653.webp&quot; alt=&quot;&quot; /&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;书影音游&lt;/h2&gt;
&lt;p&gt;++tv/5n1XRGkYnDWyLdkhQXMd3H++&lt;/p&gt;
&lt;p&gt;++movie/3rsuSP1f283c5CuJdxyMIt++&lt;/p&gt;
&lt;p&gt;++tv/7XMBvKp7G4l7hoo6oX1PMG++&lt;/p&gt;
</content:encoded></item><item><title>2月小结-悠闲生活</title><link>https://blog.asyncx.top/posts/2025-02-28/</link><guid isPermaLink="true">https://blog.asyncx.top/posts/2025-02-28/</guid><description> </description><pubDate>Fri, 28 Feb 2025 21:02:00 GMT</pubDate><content:encoded>&lt;h2&gt;前言&lt;/h2&gt;
&lt;p&gt;一眨眼也是进入了这学期的reading week. 和第一个学期的reading week相比大家都没有那么激动了, 这次就没有出门旅游, 只是简单的聚了个餐.
&lt;img src=&quot;https://r2.asyncx.top/2025/02/28/202502280005964.webp&quot; alt=&quot;&quot; /&gt;
就像这篇博文的标题一样, 我认为这个月的主题就是悠闲.&lt;/p&gt;
&lt;h2&gt;生活&lt;/h2&gt;
&lt;p&gt;食物方面, 从有了自己的厨房以来就没有再亏待过自己的嘴巴. 自己在家琢磨各种各样的美食. 比如下图, 按照记忆中的味道去复刻大学时候和女友吃到的土豆鸡+虾/用Instantpot去炖的猪蹄/去朋友家做的大烩菜/豉汁排骨/可乐鸡翅+虎皮蛋.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://r2.asyncx.top/2025/02/28/202502280009440.webp&quot; alt=&quot;&quot; /&gt;
这里留一个最满意的高压锅炖猪蹄的菜谱:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;猪蹄切块, 葱姜料酒焯水,水开之后焯5分钟, 捞出过冷水.&lt;/li&gt;
&lt;li&gt;加入Instantpot(高压锅), 生抽老抽, 少盐(1~2茶勺), 多糖(约6块冰糖), 2片香叶, 1个八角, 我额外加了一些花椒黑胡椒.&lt;/li&gt;
&lt;li&gt;High pressure 25min, 手动放气&lt;/li&gt;
&lt;li&gt;转入敞口的大锅, 大火收汁至黏稠.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;我在中国超市买了2个猪蹄, 大约是8CAD, 吃了4顿. 一开始还在担心这么多的汤汁到底要浇多久的米饭才能用完, 结果好吃到仅仅4顿就连汤带肉一起消灭掉了, 一点都没有剩下.&lt;/p&gt;
&lt;h2&gt;消费主义陷阱&lt;/h2&gt;
&lt;p&gt;上个月的月度小结里没有写到这个主题, 就在这里归纳一下: 本月入手了2个小玩意.&lt;/p&gt;
&lt;h3&gt;Kindle Paperwhite 6 32G&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;a href=&quot;https://blog.asyncx.top/posts/2025-02-05&quot;&gt;第六期-一些Kindle的使用方法&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;详情我写在了这篇当中, 我着重说一下使用体验. 使用场景大概是每天的通勤2h+晚上在床上看2h, 算是中等程度的使用. 新的一代据说是暖屏(没有参照物), 我习惯将色温设置在和Marginnote4的护眼色相近的&lt;code&gt;10&lt;/code&gt;档.
&lt;img src=&quot;https://r2.asyncx.top/2025/02/28/202502280023189.webp&quot; alt=&quot;&quot; /&gt;
和看手机屏幕比, 体验好了不止一点, 也变相的大幅提升了我的阅读时间, 这个月看的书得超过之前5年看的书了(笑).&lt;/p&gt;
&lt;h3&gt;Rog夜魔声音包(炸虾粒客制化)&lt;/h3&gt;
&lt;p&gt;这是从国内邮寄过来的, 大概上年年末的时候遇到一个学长要回国, 在小红书上卖全新的白夜魔和xbox手柄, 价钱折合人民币不到1100, 刚好身边朋友需要xbox手柄, 我就一起购入了. 之后也一直没有顾得上改这个键盘(北美客制化的发展没有竞争对手去卷, 和国内比少太多配件了), 直到情人节, 女友问我要什么我选了这个.
&lt;img src=&quot;https://r2.asyncx.top/2025/02/28/202502280028082.webp&quot; alt=&quot;白夜魔(雪武白轴)+FR4定位板(夜魔声音包9件套)&quot; /&gt;
和刚到手的声音相比, 键盘的声音更偏向于麻将音了. 我还额外买了圣熊猫的镀金卫星轴, 出乎意料的是夜魔原装的简易卫星轴的发挥全方位优于圣熊猫的卫星轴, 最后我还是换上了原装的简易卫星轴.&lt;/p&gt;
&lt;h2&gt;博客装修&lt;/h2&gt;
&lt;h3&gt;更清晰的点赞追踪&lt;/h3&gt;
&lt;p&gt;我在arc浏览器code分类的侧边栏根目录下保存了&lt;code&gt;Umami访客统计&lt;/code&gt;, 一般2~3天我都会看一下读者会从哪里访问. 最多的来源一般是V2EX, 其次是我之前在知乎上发布的一些教程, astro的官网和astro中国开发者的导航页, 再其次是google, 最后是赛博友邻的友链.&lt;/p&gt;
&lt;p&gt;言归正传, umami可以添加一些自定义的event来方便追踪用户行为, 之前对于点赞的event只定义了一个&lt;code&gt;Like&lt;/code&gt;标志, 即使能看到有读者点赞了文章, 但是没有办法显示读者点赞了哪一篇文章. 现在修改为&lt;code&gt;data-umami-event=${fileName}-Like&lt;/code&gt;, 这样的好处是可以知道读者点赞了哪片具体的文章.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;open-heart href={`https://xxx/${currentUrl}/like`} data-umami-event=`${fileName}-Like` emoji=&quot;♥&quot;&amp;gt;♥&amp;lt;/open-heart&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;img src=&quot;https://r2.asyncx.top/2025/02/08/202502080025090.webp&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;书影音游页&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;a href=&quot;https://blog.asyncx.top/posts/2025-02-12&quot;&gt;Astro-blog记录(5)-添加NeoDB影音页&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3&gt;小彩蛋&lt;/h3&gt;
&lt;p&gt;这个月的闲暇时间尝试了一下像素画, 于是有了&lt;code&gt;about&lt;/code&gt;页面右下角的产物:
&lt;img src=&quot;https://r2.asyncx.top/2025/02/28/202502280035817.webp&quot; alt=&quot;&quot; /&gt;
点击后会出现毛毛的丑照(毛毛就是我的长毛猫, 具体可以&lt;a href=&quot;https://blog.asyncx.top/posts/2022-06-23&quot;&gt;看这篇文章&lt;/a&gt;)&lt;/p&gt;
&lt;h2&gt;书影音游&lt;/h2&gt;
&lt;p&gt;++book/4bVED3OmX1AIAOy52Yxp4W++&lt;/p&gt;
&lt;p&gt;++book/0Qv4iGUnpdGHu9GEqpP5xh++&lt;/p&gt;
&lt;p&gt;++book/3BWmn3mhMrqIazr5ZO3pTa++&lt;/p&gt;
&lt;p&gt;++movie/6Bob1fCW9QcEpZoL56X16n++&lt;/p&gt;
&lt;p&gt;++tv/season/6ReFpsYl0zhcWdmgiCIOoO++&lt;/p&gt;
&lt;p&gt;++tv/7in2q2PQbOkpEcgnqr5DeP++&lt;/p&gt;
</content:encoded></item><item><title>Astro-blog记录(5) - 添加NeoDB影音页</title><link>https://blog.asyncx.top/posts/2025-02-12/</link><guid isPermaLink="true">https://blog.asyncx.top/posts/2025-02-12/</guid><description> </description><pubDate>Wed, 12 Feb 2025 15:02:00 GMT</pubDate><content:encoded>&lt;h2&gt;前言&lt;/h2&gt;
&lt;p&gt;曾几何时也是非常眼馋一些赛博友邻的观影页, 但是碍于没有相关的经验(懒)和Astro缺少相关的教程一直没有考虑过实现, 一开始的时候是想着这是一个动态服务, 所以可能需要考虑第三方服务来实现. 在看了几个博主是如何实现的后, 初步有了一些想法, 即可以用GitHub Action来实现. 因此, 本文所介绍的实现方式为:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;使用GitHub Action调用NeoDB的API, 定期爬取并存储为json文件到库中.&lt;/li&gt;
&lt;li&gt;使用Cloudflare加速并添加自定义域名.&lt;/li&gt;
&lt;li&gt;Astro读取json文件并渲染前端.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;1.生成NeoDB API Token&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;如果我的描述不够清晰, 或许你可以从&lt;a href=&quot;https://neodb.net/api/&quot;&gt;官方文档&lt;/a&gt;找到答案.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;首先打开终端, 输入以下指令, &lt;code&gt;client_name&lt;/code&gt;随意,&lt;code&gt;redirect_uris&lt;/code&gt;可以填写为你的博客url再加上&lt;code&gt;/callback&lt;/code&gt;, &lt;code&gt;website&lt;/code&gt;为你的博客链接, 即前者去掉&lt;code&gt;/callback&lt;/code&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;curl https://neodb.social/api/v1/apps \
  -d client_name=MyApp \
  -d redirect_uris=https://blog.asyncx.top/callback \
  -d website=https://blog.asyncx.top
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;之后会返回如下格式的内容, 你需要留存&lt;code&gt;client_id&lt;/code&gt;和&lt;code&gt;client_secret&lt;/code&gt;供后文使用:
&lt;img src=&quot;https://r2.asyncx.top/2025/02/12/202502121540295.webp&quot; alt=&quot;&quot; /&gt;
接着, 你需要在浏览器访问如下的网页链接, 将&lt;code&gt;[CLIENT_ID]&lt;/code&gt;和&lt;code&gt;[REDIRECT_URI]&lt;/code&gt;替换成你的输入即可:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;https://neodb.social/oauth/authorize?response_type=code&amp;amp;client_id=[CLIENT_ID]&amp;amp;redirect_uri=[REDIRECT_URI]&amp;amp;scope=read+write
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;如果没有问题则会弹出这样的图片, 点击Allow即可, 接着你会跳转你自己的网页, 在浏览器的链接栏你可以看到生成的&lt;code&gt;code&lt;/code&gt;.
&lt;img src=&quot;https://r2.asyncx.top/2025/02/12/202502121301532.webp&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;接着,使用以下指令来生成Token,其中新获得的code也需填写于其中:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;curl https://neodb.social/oauth/token \ 
-d &quot;client_id=CLIENT_ID&quot; \ 
-d &quot;client_secret=CLIENT_SECRET&quot; \ 
-d &quot;code=AUTH_CODE&quot; \ 
-d &quot;redirect_uri=https://example.org/callback&quot; \ 
-d &quot;grant_type=authorization_code&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote&gt;
&lt;p&gt;生成Token这步, 我会报错&lt;code&gt;access denied&lt;/code&gt;, 但我没有发现任何导致出现错误的问题, 如果有读者发现麻烦留言, 我会同步更新博文. 因此这步后我使用了测试Token. 生成的链接位于https://neodb.social/developer/ 点击&lt;code&gt;Test Access Token&lt;/code&gt;即可生成.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;在获得并存储了Token后, 接下来进入Github Action的设置中.&lt;/p&gt;
&lt;h2&gt;2.创建Github存储库和Action&lt;/h2&gt;
&lt;p&gt;首先创建一个新的GitHub存储库(我创建新库的原因是防止每天定时的更新会让本地的Obsidian频繁拉取更改/让历史记录更清晰), 点击&lt;code&gt;Setting-Security(Secrets and variables)-Action-New repository secret&lt;/code&gt;, 将生成的Token填进去, &lt;code&gt;Name&lt;/code&gt;为&lt;code&gt;NEODB_ACCESS_TOKEN&lt;/code&gt;
&lt;img src=&quot;https://r2.asyncx.top/2025/02/12/202502121613696.webp&quot; alt=&quot;&quot; /&gt;
接下来点击&lt;code&gt;Actions-Newworkflow&lt;/code&gt;, 复制下面的代码到新建的&lt;code&gt;.yml&lt;/code&gt;文件中
&lt;img src=&quot;https://r2.asyncx.top/2025/02/12/202502121614824.webp&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;name: Sync NeoDB Data

# 允许 GitHub Actions 拥有写入仓库的权限
permissions:
  contents: write

on:
  schedule:
    - cron: &quot;0 17 * * *&quot;
  workflow_dispatch:

jobs:
  neodb_sync:
    name: Sync NeoDB Data for multiple categories
    runs-on: ubuntu-latest

    steps:
      - name: Checkout
        uses: actions/checkout@v3

      - name: Check JQ
        run: |
          if ! command -v jq &amp;amp;&amp;gt; /dev/null; then
            echo &quot;jq is not installed. Installing...&quot;
            sudo apt-get update
            sudo apt-get install -y jq
          else
            echo &quot;jq is already installed.&quot;
          fi
          echo &quot;WORK_DIR=$(pwd)&quot; &amp;gt;&amp;gt; $GITHUB_ENV

      - name: Ensure local JSON files exist
        run: |
          # 定义需要同步的分类（移除 album）
          categories=(&quot;book&quot; &quot;movie&quot; &quot;tv&quot; &quot;game&quot;)
          mkdir -p data/neodb
          for category in &quot;${categories[@]}&quot;; do
            local_file=&quot;data/neodb/${category}.json&quot;
            if [ ! -f &quot;$local_file&quot; ]; then
              echo &quot;Creating default JSON for category: $category&quot;
              echo &apos;{&quot;data&quot;: [], &quot;pages&quot;: 0, &quot;count&quot;: 0}&apos; &amp;gt; &quot;$local_file&quot;
            fi
          done

      - name: Sync Categories Data
        run: |
          # 定义需要同步的分类（移除 album）
          categories=(&quot;book&quot; &quot;movie&quot; &quot;tv&quot; &quot;game&quot;)
          UPDATED=0

          for category in &quot;${categories[@]}&quot;; do
            echo &quot;Processing category: $category&quot;

            # 下载该分类第一页数据，用于获取 count 和 pages
            curl -s -X GET &quot;https://neodb.social/api/me/shelf/complete?category=${category}&amp;amp;page=1&quot; \
              -H &quot;accept: application/json&quot; \
              -H &quot;Authorization: Bearer ${{ secrets.NEODB_ACCESS_TOKEN }}&quot; \
              -o &quot;${category}1.json&quot;

            # 提取远程数据的 count 和 pages, 如果为 null 则设为 0
            remote_count=$(jq &apos;.count // 0&apos; &quot;${category}1.json&quot;)
            pages=$(jq &apos;.pages // 0&apos; &quot;${category}1.json&quot;)
            echo &quot;Remote count for ${category}: $remote_count, pages: $pages&quot;

            # 读取本地数据的 count
            local_file=&quot;data/neodb/${category}.json&quot;
            local_count=$(jq &apos;.count // 0&apos; &quot;$local_file&quot;)
            echo &quot;Local count for ${category}: $local_count&quot;

            # 对比远程和本地的 count 数值，若一致则跳过下载
            if [ &quot;$remote_count&quot; -eq &quot;$local_count&quot; ]; then
              echo &quot;No update for ${category}. Skipping download.&quot;
              continue
            else
              echo &quot;Update detected for ${category}. Downloading all pages...&quot;
              UPDATED=1
              # 为当前分类创建临时目录存储下载数据
              mkdir -p &quot;neodb/${category}&quot;
              if [ &quot;$pages&quot; -gt 0 ]; then
                # 循环下载所有页数据
                for ((i=1; i&amp;lt;=pages; i++)); do
                  echo &quot;Downloading ${category} page $i&quot;
                  curl -s -X GET &quot;https://neodb.social/api/me/shelf/complete?category=${category}&amp;amp;page=$i&quot; \
                    -H &quot;accept: application/json&quot; \
                    -H &quot;Authorization: Bearer ${{ secrets.NEODB_ACCESS_TOKEN }}&quot; \
                    -o &quot;neodb/${category}/${category}${i}.json&quot;
                done

                # 利用 jq 合并所有页面数据为一个 JSON 文件
                jq -c -s &apos;{
                  data: map(.data[]) | unique | sort_by(.created_time) | reverse,
                  pages: (map(.pages)[0]),
                  count: (map(.count)[0])
                }&apos; neodb/${category}/*.json &amp;gt; &quot;${category}.json&quot;
              else
                # 如果 pages 为 0，则创建默认空数据文件
                echo &apos;{&quot;data&quot;: [], &quot;pages&quot;: 0, &quot;count&quot;: 0}&apos; &amp;gt; &quot;${category}.json&quot;
              fi

              # 确保目标目录存在，然后将合并后的 JSON 文件复制过去
              mkdir -p data/neodb
              cp -f &quot;${category}.json&quot; &quot;data/neodb/${category}.json&quot;
            fi
          done

          # 如果所有分类均未更新，则退出工作流
          if [ $UPDATED -eq 0 ]; then
            echo &quot;No categories updated. Exiting.&quot;
            exit 0
          fi

      - name: Git Add and Commit
        uses: EndBug/add-and-commit@v9
        with:
          message: &apos;chore(data): update neodb data for multiple categories&apos;
          add: &apos;./data/neodb&apos;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;点击提交, 接下来你需要再次进入&lt;code&gt;Actions&lt;/code&gt;并手动Run一下, 不出意外你就可以看到新生成的json文件了.
&lt;img src=&quot;https://r2.asyncx.top/2025/02/12/202502121616253.webp&quot; alt=&quot;&quot; /&gt;
&lt;img src=&quot;https://r2.asyncx.top/2025/02/12/202502121617433.webp&quot; alt=&quot;&quot; /&gt;
到这一步, 你已经存储了NeoDB的数据, 接下来就是前端工作了.&lt;/p&gt;
&lt;h2&gt;3.前端读取和渲染&lt;/h2&gt;
&lt;p&gt;到了这一步我全权交给了ChatGPT, 由于展示的内容实在很多, 我在尝试了几个想法发现效果不理想后, 最终确定的内容为:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;展示基于日期的最近3个月内的影音.&lt;/li&gt;
&lt;li&gt;分类展示基于日期的最新的20个影音.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;我在博客的页面目录&lt;code&gt;/pages&lt;/code&gt;下创建了新的路径文件&lt;code&gt;/bmmg/index.astro&lt;/code&gt;, 这样最终的访问url为&lt;code&gt;https://blog.asyncx.top/bmmg&lt;/code&gt;. 对于下面的代码来说, 你需要手动修改一下自定义域名后的json文件url.&lt;strong&gt;以及由于我使用了TailwindCSS, 你需要让GPT修改其样式为普通的CSS&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;---
import Layout from &quot;../../layouts/Layout.astro&quot;;

// 定义各分类对应的 JSON 文件地址
const jsonUrls = {
  movie: &quot;https://neodb.asyncx.top/data/neodb/movie.json&quot;,
  tv: &quot;https://neodb.asyncx.top/data/neodb/tv.json&quot;,
  game: &quot;https://neodb.asyncx.top/data/neodb/game.json&quot;,
  book: &quot;https://neodb.asyncx.top/data/neodb/book.json&quot;
};

// 定义分类中文显示名称
const categoryMap = {
  movie: &quot;影&quot;,
  tv: &quot;剧&quot;,
  game: &quot;游&quot;,
  book: &quot;书&quot;
};

// 用于存储各分类的所有数据（不做时间过滤，取最新20条）
const grouped = {};

// 用于存储合并后的数据（仅包含过去3个月内的记录）
let mergedRecentItems = [];

// 计算当前日期三个月前的日期
const now = new Date();
const threeMonthsAgo = new Date();
threeMonthsAgo.setMonth(now.getMonth() - 3);

// 动态读取各 JSON 文件
await Promise.all(
  Object.entries(jsonUrls).map(async ([cat, url]) =&amp;gt; {
    const res = await fetch(url);
    const jsonData = await res.json();
    // 对该分类所有数据按创建时间降序排序（不做时间过滤）
    const sortedAll = jsonData.data.sort(
      (a, b) =&amp;gt; new Date(b.created_time) - new Date(a.created_time)
    );
    // 分类展示：取前20条，并附加所属分类信息
    grouped[cat] = sortedAll.slice(0, 20).map(item =&amp;gt; ({ ...item, category: cat }));
    // 合并展示：过滤出过去三个月内的记录，并附加所属分类信息
    const filteredRecent = jsonData.data.filter(
      (item) =&amp;gt; new Date(item.created_time) &amp;gt;= threeMonthsAgo
    ).map(item =&amp;gt; ({ ...item, category: cat }));
    mergedRecentItems = mergedRecentItems.concat(filteredRecent);
  })
);

// 对合并后的所有数据按创建时间降序排序，并取前20条
mergedRecentItems.sort((a, b) =&amp;gt; new Date(b.created_time) - new Date(a.created_time));
mergedRecentItems = mergedRecentItems.slice(0, 20);

// 定义生成跳转链接的函数
const getLink = (entry) =&amp;gt; {
  if (entry.category === &quot;movie&quot;) {
    // 对于电影，点击跳转到固定的电影 JSON 文件地址
    return jsonUrls.movie;
  } else {
    // 对于其它分类，构造链接为：https://neodb.social/{分类}/{uuid}
    return `https://neodb.social/${entry.category}/${entry.item.uuid}`;
  }
};
---
&amp;lt;Layout title=&quot;NeoDB&quot; description=&quot;NeoDB&quot;&amp;gt;
  &amp;lt;div class=&quot;container mx-auto py-8&quot;&amp;gt;
    &amp;lt;h1 class=&quot;text-3xl font-bold mb-6&quot;&amp;gt;最近看/玩了什么&amp;lt;/h1&amp;gt;
    &amp;lt;!-- &amp;lt;p class=&quot;text-gray-500 mb-6&quot;&amp;gt;
      上半部分展示过去3个月内的全部记录，下半部分按分类展示各自最新的20条数据。
    &amp;lt;/p&amp;gt; --&amp;gt;
    &amp;lt;!-- 全部展示部分：仅展示过去3个月内的记录 --&amp;gt;
    &amp;lt;section class=&quot;mb-8&quot;&amp;gt;
      &amp;lt;!-- &amp;lt;h2 class=&quot;text-2xl font-semibold mb-4&quot;&amp;gt;全部&amp;lt;/h2&amp;gt; --&amp;gt;
      {mergedRecentItems &amp;amp;&amp;amp; mergedRecentItems.length &amp;gt; 0 ? (
        &amp;lt;div class=&quot;grid grid-cols-2 md:grid-cols-5 gap-3&quot;&amp;gt;
          {mergedRecentItems.map((entry) =&amp;gt; (
            &amp;lt;a href={getLink(entry)} class=&quot;block&quot;&amp;gt;
              &amp;lt;div class=&quot;border rounded overflow-hidden shadow hover:shadow-lg transition-shadow&quot;&amp;gt;
                &amp;lt;img
                  src={entry.item.cover_image_url}
                  alt={entry.item.title}
                  loading=&quot;lazy&quot;
                  class=&quot;w-full h-48 object-cover&quot;
                /&amp;gt;
              &amp;lt;/div&amp;gt;
              &amp;lt;p class=&quot;mt-2 text-sm font-bold text-center truncate&quot;&amp;gt;
                {entry.item.title}
              &amp;lt;/p&amp;gt;
            &amp;lt;/a&amp;gt;
          ))}
        &amp;lt;/div&amp;gt;
      ) : (
        &amp;lt;p class=&quot;text-gray-500&quot;&amp;gt;暂无数据&amp;lt;/p&amp;gt;
      )}
    &amp;lt;/section&amp;gt;
    &amp;lt;hr class=&quot;my-8&quot; /&amp;gt;
    &amp;lt;!-- 分类展示部分：各分类显示最新20条数据，不限制时间 --&amp;gt;
    {Object.keys(jsonUrls).map((cat) =&amp;gt; (
      &amp;lt;section class=&quot;mb-12&quot;&amp;gt;
        &amp;lt;h1 class=&quot;text-2xl font-semibold mb-4&quot;&amp;gt;{categoryMap[cat]}&amp;lt;/h1&amp;gt;
        {grouped[cat] &amp;amp;&amp;amp; grouped[cat].length &amp;gt; 0 ? (
          &amp;lt;div class=&quot;grid grid-cols-2 md:grid-cols-5 gap-3&quot;&amp;gt;
            {grouped[cat].map((entry) =&amp;gt; (
              &amp;lt;a href={getLink(entry)} class=&quot;block&quot;&amp;gt;
                &amp;lt;div class=&quot;border rounded overflow-hidden shadow hover:shadow-lg transition-shadow&quot;&amp;gt;
                  &amp;lt;img
                    src={entry.item.cover_image_url}
                    alt={entry.item.title}
                    loading=&quot;lazy&quot;
                    class=&quot;w-full h-48 object-cover&quot;
                  /&amp;gt;
                &amp;lt;/div&amp;gt;
                &amp;lt;p class=&quot;mt-2 text-sm font-bold text-center truncate&quot;&amp;gt;
                  {entry.item.title}
                &amp;lt;/p&amp;gt;
              &amp;lt;/a&amp;gt;
            ))}
          &amp;lt;/div&amp;gt;
        ) : (
          &amp;lt;p class=&quot;text-gray-500&quot;&amp;gt;暂无数据&amp;lt;/p&amp;gt;
        )}
      &amp;lt;/section&amp;gt;
    ))}
  &amp;lt;/div&amp;gt;
&amp;lt;/Layout&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;4.效果展示/写在最后&lt;/h2&gt;
&lt;p&gt;将数据存储在本地的好处是不用担心日后哪天失效, 倘若失效还有数据可以展示(笑). 如果我有描述不清晰的地方, 请尽情评论, 我会将没讲清楚的地方更新在文中.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://r2.asyncx.top/2025/02/12/202502121624436.webp&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
</content:encoded></item><item><title>1月小结-天大寒, 过年</title><link>https://blog.asyncx.top/posts/2025-02-06/</link><guid isPermaLink="true">https://blog.asyncx.top/posts/2025-02-06/</guid><description> </description><pubDate>Thu, 06 Feb 2025 23:02:00 GMT</pubDate><content:encoded>&lt;p&gt;魁省进入雪天也有很长一段时间了, 每次回家都被风雪吹得狼狈不堪, 这对一个从小在国内中原地区长大的人还是很有冲击力的... 本月的生活还是比较充实的.&lt;/p&gt;
&lt;h2&gt;学习&lt;/h2&gt;
&lt;p&gt;尽管在美国读书的朋友一再劝我选容易通过的简单课程, 但是受制于必修课的选择, 我还是选择了一门对我来说颇有难度的Java编程课. 这门课程每周会有一个实验课需要强制出席, 每次需要解决两道算是LeetCode的easy难度的算法题, 这对大学本科几乎没有动手从0开始写java代码的我很是头大. 不过固定的考查模式让我上手很快, 时至今日的第三次实验课我已经可以全部完成.&lt;/p&gt;
&lt;h2&gt;生活&lt;/h2&gt;
&lt;p&gt;生活上简简单单, 我也一贯坚持着什么都能苦, 就是不能苦我的嘴的观点在努力干饭. 我也在我的文字性内容归档站更新了&lt;a href=&quot;https://lib.asyncx.top/04-recipe/#%E5%89%8D%E8%A8%80&quot;&gt;Instantpot食谱&lt;/a&gt;. 用来记录一些可以用高压锅省心完成的饭. 由于过年的时候是周二, 我们几个中国留学生朋友都是满课, 于是我们提前到了周末, 聚在一起吃了顿年夜饭, 我也是掏出了逢年必做的烤鸡.
&lt;img src=&quot;https://r2.asyncx.top/2025/02/07/202502070020139.webp&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;由于经常下雪的缘故, 我也经常开车, 从国内没上过几次高速的新手也变成了现在倒车入库比较在行的&quot;中手&quot;了.&lt;/p&gt;
&lt;h2&gt;博客更新&lt;/h2&gt;
&lt;p&gt;这个月算得上是井喷式更新了:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;/posts/2025-01-15&quot;&gt;11/12月小结-低谷&lt;/a&gt;: 上次的月度小结, 情绪实在低落&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;/posts/2025-01-16&quot;&gt;新的一年, 新的blog.&lt;/a&gt;: 重写了博客的主题成为了现在看到的样式, 更能让读者集中注意了.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;/posts/2025-01-18&quot;&gt;不要让自己的努力随着时间淡化&lt;/a&gt;: 事实是这个想法仍然停留在笔尖, 这次小结仍然是一口气写完的, 所以遗漏了很多地方.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;此外我对博客的样式也一直在进行微调,例如将&lt;code&gt;&amp;lt;h1&amp;gt;&lt;/code&gt;设置为了渐变的彩色, 为最近做什么和友链单独创建了页面, 这里立一个从2024年传过来的flag: 添加多图拼接功能.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://r2.asyncx.top/2025/02/07/202502070113185.webp&quot; alt=&quot;在downtown吃到的让人眼前一亮的寿司&quot; /&gt;&lt;/p&gt;
</content:encoded></item><item><title>第六期-一些Kindle的使用方法</title><link>https://blog.asyncx.top/posts/2025-02-05/</link><guid isPermaLink="true">https://blog.asyncx.top/posts/2025-02-05/</guid><description> </description><pubDate>Wed, 05 Feb 2025 23:02:00 GMT</pubDate><content:encoded>&lt;h2&gt;0. 前言&lt;/h2&gt;
&lt;p&gt;前些天购入了Kindle Paperwhite 12th 32G signature的版本. 其实是没有什么动机的, 只是联想到每天的通勤时间可能长达2h(因为住的离学校远, 需要大量的公共交通时间), 仔细思索了一番, 认为可以购入一个Kindle来打发时间. 原计划是购入普通版本, 但是家附近的Bestbbuy已经没有普通版(16G版本), 考虑到我会用来看漫画和长期使用, 索性购入了一个32G的版本. (由于我在国内还有一个Paperwhite3, 本文可能会用两者进行对比.) 使用了几天, 打算写一篇文章记录在使用过程中遇到的一些细节.&lt;/p&gt;
&lt;p&gt;不知道是否是签名版的缘故, 我到手后没有广告之类的选项, 所以省略了网上关闭广告的步骤. Paperwhite6相比前代5, 根据网上博主测评, 所谓的翻页速度提高可能只是翻页时间从0.3s到了0.25s(无法取证). 但相比于我之前的3代paperwhite, 这个从左到右过渡动画着实让我欣喜.
&lt;img src=&quot;https://r2.asyncx.top/2025/02/05/202502052333793.gif&quot; alt=&quot;30fps的gif. 实际体验会更好一些(字体: 思源宋体)&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;1. 初步设置和资源&lt;/h2&gt;
&lt;p&gt;在之前的系统版本中, Kindle已经允许用户自己导入喜欢的字体. 但官网所说我这代没有办法使用macos读取, 你只需要下载你喜欢的字体, 然后用数据线连接到Windows系统的电脑, 打开Kindle的fonts文件夹放入即可.&lt;/p&gt;
&lt;p&gt;关于资源, 我的获取途径并不固定, 具体是如下2类.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;漫画:&lt;/strong&gt; &lt;a href=&quot;https://kox.moe/&quot;&gt;kox moe&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;书籍:&lt;/strong&gt; &lt;a href=&quot;https://www.jiumodiary.com/&quot;&gt;鸠摩搜书&lt;/a&gt;/Google&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;用Google搜索的格式是&lt;code&gt;书籍名 + 格式&lt;/code&gt;. 例如我最近下载了特德·姜的&lt;code&gt;&amp;lt;呼吸&amp;gt;&lt;/code&gt;, 我只需要搜索 &lt;code&gt;呼吸 epub&lt;/code&gt;. 或对这个资源进一步做出过滤:&lt;code&gt;呼吸 特德姜 epub&lt;/code&gt;. 此外, 我还会看一些小说, 但是上述的几种途径都没有办法搜索, 因此这里我推荐一种新的办法: 在微信中直接搜索小说的名字即可, 有相当一部分公众号会提供&lt;code&gt;.txt&lt;/code&gt;格式的文件下载, 这样的格式需要经过处理才可以用Kindle阅读, 因此延伸出下个部分.&lt;/p&gt;
&lt;h2&gt;2. 资源处理和推送&lt;/h2&gt;
&lt;p&gt;我使用到的工具只有&lt;a href=&quot;https://calibre-ebook.com/download&quot;&gt;Calibre&lt;/a&gt;. 这个软件可以让你在电脑上高效的处理电子书的一些格式.
&lt;img src=&quot;https://r2.asyncx.top/2025/02/05/202502052350135.webp&quot; alt=&quot;&quot; /&gt;
软件具体的使用我不赘述, 你可以在网络上查找相关教程, 这里我对一些在网上难以搜索到的教程/用法做出一些讲解, 顺序为:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;假设你在网上找到了一切都ok的电子书, 只需要推送.&lt;/li&gt;
&lt;li&gt;你在网上找到了具有错误的电子书数据or格式(例如标题为&lt;code&gt;作者+书名 ---&amp;lt;更多资源:xxx.com&amp;gt;&lt;/code&gt;等情况), 你需要编辑并推送.&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;2.1 推送和会遇到的一些问题&lt;/h3&gt;
&lt;p&gt;除了使用数据线将kindle连接到电脑, 你还可以打开Calibre的邮件推送. 具体位置位于&lt;code&gt;设置-分享-以电子邮件分享书本&lt;/code&gt;
&lt;img src=&quot;https://r2.asyncx.top/2025/02/05/202502052356900.webp&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;接下来你需要做:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;找到代表kindle的电子邮件(你可以在你的kindle中看到)&lt;/li&gt;
&lt;li&gt;添加Calibre发送的邮箱.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;找到kindle的电子邮箱后, 你需要填写到下图红框的位置处. 将格式修改为EPUB(加上mobi似乎也是可以的.)
&lt;img src=&quot;https://r2.asyncx.top/2025/02/05/202502052357536.webp&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;接下来就是添加calibre的发送邮箱, 即SMTP服务, 如果你有添加邮箱到第三方邮箱客户端的经验, 只需要填写下方的相关内容, 并点击&lt;code&gt;测试电子邮件&lt;/code&gt;即可. 如果没有你可以在&lt;a href=&quot;https://bookfere.com/post/11.html#cp_1_4&quot;&gt;这篇文章&lt;/a&gt;看到更详细的配置.&lt;/p&gt;
&lt;p&gt;当你完成后, Calibre就可以向你的Kindle正常的推送书籍了, 但是这里会出现书籍的名称和作者被转换为拼音的情况, 因此你需要一个额外的插件来处理.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;a href=&quot;https://bookfere.com/post/1042.html&quot;&gt;如何解决 Calibre 推送中文书到 Kindle 显示拼音书名问题&lt;/a&gt; 参照这篇文章, 你可以很快的解决问题.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3&gt;2.2 修改格式和txt格式优化&lt;/h3&gt;
&lt;p&gt;假如你在网上找到了一些被网站二次编辑元数据的电子书, 你可以将电子书拖入calibre, 并且右键你想要修改的书籍, 如下操作:
&lt;img src=&quot;https://r2.asyncx.top/2025/02/06/202502060007128.webp&quot; alt=&quot;&quot; /&gt;
&lt;img src=&quot;https://r2.asyncx.top/2025/02/06/202502060008235.webp&quot; alt=&quot;&quot; /&gt;
你可以很直观的看到和修改这个电子书的所有数据.&lt;/p&gt;
&lt;p&gt;接下来讲一下如果你下载了txt格式的电子书你需要如何做. 在导入calibre后, 你可以直接转换其格式, 也可以为其添加大纲. 点击左上的&lt;code&gt;转换书本-结构探测&lt;/code&gt;, 你需要根据txt文件的目录来修改这个Xpath表达式. 我这里提供一个几乎通用的表达式, 它会读取所有开头为&lt;code&gt;第X章/卷/节... XXX&lt;/code&gt;的内容. 我建议你配合GPT来对当前的txt电子书进行修改.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;//*[re:test(., &quot;^\s*[第卷][0123456789一二三四五六七八九十零〇百千两]*[章回部节集卷].*&quot;, &quot;i&quot;)]
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;img src=&quot;https://r2.asyncx.top/2025/02/06/202502060009117.webp&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;3. 后话&lt;/h2&gt;
&lt;p&gt;上一个kindle是我在中学时候偷偷买的, 在我的印象里我没有过多的去折腾它, 只是去使用. 它也高强度(直到我偷偷买了手机)的陪伴了我2年.&lt;/p&gt;
&lt;p&gt;如果评价当时的阅读体验, 我会说很棒, 用它我看完了老生常谈的基地/沙丘/..., 也看了武·科瓦奇/菲利普·迪克/恩斯特·克莱恩等人所写的数不清的科幻作品. 但它最后也难逃吃灰的下场(碎片化的手机视频app,老式接口和不耐用的电池). 但是如果问我值得现在再买一个吗, 我肯定会心疼, 但会说值得.
&lt;img src=&quot;https://r2.asyncx.top/2025/02/06/202502060023654.webp&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
</content:encoded></item><item><title>不要让自己的努力随着时间淡化</title><link>https://blog.asyncx.top/posts/2025-01-18/</link><guid isPermaLink="true">https://blog.asyncx.top/posts/2025-01-18/</guid><description> </description><pubDate>Sat, 18 Jan 2025 12:01:00 GMT</pubDate><content:encoded>&lt;h2&gt;前言&lt;/h2&gt;
&lt;p&gt;前日晚, 和汪哥聊起了搜索优化问题. 因为我经常折腾, 所以我修起这些问题来能比较快的定位到问题所在, 他问到我是如何掌握这些知识的. 我用流水账般的语言讲了从大学开始折腾的过程, 在某段时间做了什么, 在某段时间又做了什么. 乍一听起来就是一个学习的过程, 其内容就像是在某年某月学了什么, 会了什么. 这样讲出来, 旁人看起来一定是会说一句&quot;我*, 👍&quot;, 仿佛你是一个轻松获得胜利的天才, 但实际上你可能在时候淡化了你当时的努力.&lt;/p&gt;
&lt;p&gt;汪哥用了一个简单的例子说明了这点:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;经历的事情，就像是在拾柴火，在拾的过程中根本不知道什么时候会点火，不知道拾了有啥用，就是闷着头拾就行了。等到某个时间点，得到了一个火种，这时候才发现这火种恰巧可以点着柴火，这时候才会对以前拾的柴火觉得有意义。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;拾柴点火&lt;/h2&gt;
&lt;p&gt;讲到这里的时候让我霍然开朗, 这在逻辑上来讲可以形成自洽. 当你积累(柴)了足够多, 在某一天你的灵感迸发(点火)了, 完成了某个目标, 而不是说你能在没有任何理论基础的情况下无师自通, 并且能知行合一的学以致用, 天才也不行.&lt;/p&gt;
&lt;p&gt;那么用这个例子套入传授知识的过程, 我们的侧重点应该放在&lt;strong&gt;在有清晰理论的基础下进行引导&lt;/strong&gt;. 也就是提供上等木柴的同时递给学生打火机. 在我国分数为王的教育体系里, 像&lt;code&gt;学这些东西有什么用?能用来做什么&lt;/code&gt;这样的声音已经被淹没了, 鲜有老师可以做到上面这点. 下面从教学体系上来讲解: 每个学校教授的内容是固定的, 那么如何避免不同的老师在授课内容上有偏差? 这就发明了教学大纲, 一些厉害的老师们将自己的毕生所学填充进去, 所有的老师再去进行雕琢完善, 就成为了一个包含所有老师智慧结晶的产物, 接下来就是围绕着大纲备课, 传授. 这一点无论是放在国内还是放在国外都是一样的.&lt;/p&gt;
&lt;p&gt;话再说回来, 为什么经常会有人唾弃国内的教学体系? 套用上述例子, 个人拙见是老师尽心尽力的把优质木柴塞给了你, 却没有交给你点火的手段. 你知道这是木柴, 却不知道要如何点火. 那么会有人说, 我会做题了不就是会点火了吗. 你有了答题思路, 只会在同样的问题上不丢分, 换了问题照样会有大部分的人做错. 为什么说是大部分? 是因为对于小部分人来说, 他已经有了火种, 故而能&lt;code&gt;触类旁通&lt;/code&gt;. 因此, 一问一答看似解惑, 实则仍然属于传道授业的范畴.&lt;/p&gt;
&lt;p&gt;在我的上一学期, 有一门课业比较繁重, 课程叫做Natural Language Processing(NLP/自然语言处理) 这门课程是一位风趣的女教授, 这是她时隔十几年来重新开设这门课程, 从基础的朴素贝叶斯讲起, 到最后的Transformer架构(GPT2/GPT3的底层架构)循序渐进娓娓道来. 我认为她的课程略显枯燥, 但是作业的质量极高. 总共3个作业参与评分, 每个占15%, 内容为一个&lt;code&gt;.ipynb&lt;/code&gt;项目文件+一个report. 项目文件会提供传入传出参数的注释, 你需要完成封装的逻辑, 使用的训练数据库都是目前最新or最权威的, 在完成项目文件后你需要完成2个Experiment, 例如修改参数/更换训练数据库等. 并且要将你Experiment写在report中. 我的作业1的report有些老实, 要求6页我就写了6页, 最终得分为71/100🤦‍♂️. 在确定老师所喜欢的论点后我的后面2个作业分数为100/100. 所有的report都拿到了满分, 例如如果有2份数据集的比较相差过大怎么办?(在作业3中使用了Transformer来实现英语和法语的翻译, 数据集的大小相差几十倍) 我用Python爬取了2份数据集的相关词汇的占比, 结果为占比类似, 因此这2份数据集参数比较仍然有相同点以供分析. 在这门课程中, 你获得的柴火可以在作业中点燃, 并且你在上一个作业的的report撰写方案仍然可以被优化, 应用到下一篇的分析中. 你的角度会越来越刁钻, 越来越专业.&lt;/p&gt;
&lt;h2&gt;及时记录&lt;/h2&gt;
&lt;p&gt;这是我的缺点, 我在完成阶段性任务后往往选择归档搁置. 不会回过头来吸收这段过程中有用的地方, 因此如果和别人聊起来我在这段时间做了哪些努力, 学习了哪些内容, 我往往会一笔带过, 没能给大家提供有用的帮助. 所以在完成任务后复盘, 哪怕是撰写一份大纲进行留存也是一个进步.&lt;/p&gt;
</content:encoded></item><item><title>新的一年, 新的blog.</title><link>https://blog.asyncx.top/posts/2025-01-16/</link><guid isPermaLink="true">https://blog.asyncx.top/posts/2025-01-16/</guid><description> </description><pubDate>Thu, 16 Jan 2025 21:01:00 GMT</pubDate><content:encoded>&lt;h2&gt;前言&lt;/h2&gt;
&lt;p&gt;很多时候, 写前端是一个不怎么用脑力参与的事情. 你已经知道了它的基本原理, 你的键盘就在手前, 想到什么功能只需要去用那个逻辑实现就可以了. 刚好昨天实现了拖沓很久的openheart, 翻看之前的博客感觉有些冗杂, 虽然核心功能就那么多, 但在观感和页面加载速度上有些问题. 干脆一不做二不休的重新写一个. 存储库覆盖了原先的主题, 仍然位于&lt;a href=&quot;https://github.com/A5yncX/DG&quot;&gt;A5yncX/DG&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;之前偶然在github闲逛发现了我现在&lt;a href=&quot;https://asyncx.top&quot;&gt;个人主页&lt;/a&gt;的template, 于是打算新的主题贯彻那种风格, 找了找发现没找到, 于是打算基于Astro官网模板的&lt;a href=&quot;https://astro.build/themes/details/miniblog/&quot;&gt;Miniblog&lt;/a&gt;进行了二次开发. 说是二次开发, 其实大改了一翻(笑. 移除了更多的无关元素, 专注于写作本身, 于是有了现在这个主题, 我命名为&lt;code&gt;Marius&lt;/code&gt;. 没什么含义, 可能会作为日后我的英文名.
&lt;img src=&quot;https://r2.asyncx.top/2025/01/16/202501162208822.webp&quot; alt=&quot;约定的Frontmatter现在只有三个属性.标题/日期/标签&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;不至于&quot;烦人&quot;的一些TODO&lt;/h2&gt;
&lt;p&gt;相信很大一部分人喜欢极简主义, 其实在我的上个博客中我也在做一个尝试, 同时顾及视觉的繁复和极简, 我认为对比色和干净的界面元素是一个很好的主意, 于是使用了&lt;code&gt;#9bdbee&lt;/code&gt;和&lt;code&gt;#ffb300&lt;/code&gt;作为对比色----没错, 灵感依旧来源于电影&lt;code&gt;&amp;lt;TRON:Legacy&amp;gt;&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;现在看来尝试的结果是褒贬不一的, 但是新博客的内测用户: &lt;a href=&quot;https://nortant.com/&quot;&gt;汪哥&lt;/a&gt;(没错他有了博客)给出了很鼓舞的评价:
&lt;img src=&quot;https://r2.asyncx.top/2025/01/16/202501162234239.webp&quot; alt=&quot;&quot; /&gt;
言归正传, 年末时分由于频繁的出入Benji的&lt;code&gt;OpenHeart&lt;/code&gt;博文, 于是发现了很多具有时效性的小彩蛋. 例如你会在他的blog的黑色背景中发现白色小点, 在你点击后所有具有超链接属性的文字会五颜六色, 又例如在圣诞节前后, 如果在他的网站滞留时间过长, 你的屏幕则会被大雪所填满, 你需要点击联系铲雪公司的按钮来清理掉所有的积雪. 我认为这是为博客添加特色的一个完美方案. 在上个博客中可能会有部分读者发现当访问主页的时候会出现随机的特效, 例如宇宙,又或者是彩色马赛克格. 这也是我的一个简单尝试, 但我看了访问统计的后端后发现鲜有人会呆在主页观看. 所以我打算将此类功能作为一个简单的TODO, 即添加一些彩蛋来奖励长时间留在blog中的读者.&lt;/p&gt;
&lt;h2&gt;新博客的功能&lt;/h2&gt;
&lt;p&gt;大部分还是和上个博客的功能一样, 由于Astro的性质, markdown的渲染可以加入自建的&lt;code&gt;remark/rehype.js&lt;/code&gt;文件, 因此现在参与博客渲染的功能有状态bar/图注...etc. 此外就是使用&lt;code&gt;markdown-it&lt;/code&gt; 的解析全文的rss, 以及让代码框功能更多的&lt;code&gt;expressive-code&lt;/code&gt;, 本地搜索&lt;code&gt;Pagefind&lt;/code&gt;, pagefind的css被集成在了其他地方, 考虑到双色浏览的可用性我用&lt;code&gt;!important&lt;/code&gt;覆盖了原先的颜色. 还有最最重要的就是终于填了2年前用&lt;code&gt;TailwindCSS&lt;/code&gt;的坑, 由于MiniBlog是用的TailwindCSS, 我被迫简单学习了一下, 真的很好用. &lt;code&gt;.css&lt;/code&gt;的行数从原博客的620行变成了现在的184行, 是一个不小的进步.&lt;/p&gt;
&lt;p&gt;今天仔细的看了一下Astro的&lt;code&gt;内容集合&lt;/code&gt;, 也想明白了之前试图将博文分为中文和英文的困难之处, 新的主题将参与页面搭建的&lt;code&gt;.md&lt;/code&gt;归档在&lt;code&gt;pages&lt;/code&gt;集合, 而同时&lt;code&gt;posts&lt;/code&gt;集合又负责存储所有的博文, 这意味着我之后可以在Obsidian中编辑很大一部分页面的信息, 这对于时效性的内容, 例如最近在做的事/节日快乐等消息可以更快更简单的编辑.&lt;/p&gt;
&lt;p&gt;我在写新的主题的时候尽可能的去顾及读者的观感.(btw, 实际发现我的blog可能并不会有外国有人读, 因此我取消了国际化功能. 考虑到rss不能变动, 所以订阅链接依旧为&lt;code&gt;blog.asyncx.top/zh.xml&lt;/code&gt;).此外, 也取消了博文置顶和友链的单独分类. 一个存在于Header中的&lt;code&gt;README.md&lt;/code&gt;栏对于专业性的读者/其他博主会有更强的吸引力.&lt;/p&gt;
&lt;h2&gt;结语和展望&lt;/h2&gt;
&lt;p&gt;虽然不是很懂所谓的&lt;code&gt;冥想&lt;/code&gt;, 但是像这样不分昼夜的去雕琢前端的细节对我来说是很能静下心的. 这断断续续的十几个小时能让我清空大脑是很值得的.&lt;/p&gt;
&lt;p&gt;关于新的一年的展望其实有很多, 与自己和解/完全入门法语/多做,多尝试一些事情, 让未来的自己不后悔.&lt;/p&gt;
&lt;p&gt;就是这样了, 新的一年, 新的博客, 加油💪&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://r2.asyncx.top/2025/01/16/202501162341093.webp&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
</content:encoded></item><item><title>11/12月小结-低谷</title><link>https://blog.asyncx.top/posts/2025-01-15/</link><guid isPermaLink="true">https://blog.asyncx.top/posts/2025-01-15/</guid><description> </description><pubDate>Wed, 15 Jan 2025 15:01:00 GMT</pubDate><content:encoded>&lt;p&gt;&amp;lt;iframe style=&quot;border-radius:12px&quot; src=&quot;https://open.spotify.com/embed/track/3k1IJYrxcQvm9m7UbITf3d?utm_source=generator&quot; width=&quot;100%&quot; height=&quot;352&quot; frameBorder=&quot;0&quot; allowfullscreen=&quot;&quot; allow=&quot;autoplay; clipboard-write; encrypted-media; fullscreen; picture-in-picture&quot; loading=&quot;lazy&quot;&amp;gt;&amp;lt;/iframe&amp;gt;&lt;/p&gt;
&lt;h2&gt;前言&lt;/h2&gt;
&lt;p&gt;对我个人来说, 这2个月可以说是令我痛苦的2个月了, 有史以来第一次&quot;挂科&quot;.&lt;/p&gt;
&lt;p&gt;30%的原因出在语言上, 这门课需要理解题目并分析. 偏理论, 我缺乏这方面的复习经验.另外40%的原因出在我没有给这门课很高的重视, 我的作业成绩很高, 轻视考试的深度和难度了. 剩下30%的原因是我单打独斗了. 我给这门课程留下的预习复习时间是别的课程的的1/10甚至更少.&lt;/p&gt;
&lt;p&gt;遭遇失败也不能找借口, 要找原因, 所以这学期打算找学习伙伴, 并且学习重心放在这门课上.&lt;/p&gt;
&lt;p&gt;说起来很轻巧, 实际上在整整1个月的假期中 (12.13考完-12.27出这门课的成绩-1.13开学)情绪低落了大半个月, 什么都没有做, 也什么都没有做好. 仿佛回到了本科时候被论文和考研压得喘不过气的日子. 做梦惊醒, 呼吸费劲成为常态... 然后养成了现在每天吃维生素D的习惯.&lt;/p&gt;
&lt;h2&gt;苦中得乐&lt;/h2&gt;
&lt;p&gt;谢谢亲人和好友, 在我低落的时候开导我安慰我, 让我不至于一蹶不振. 和好友一起在家吃火锅, 打雪仗, 打游戏. 让我的情绪稳定了很多.&lt;/p&gt;
&lt;p&gt;去IGA买了三文鱼, 自己在冰箱冻了半个月来杀死寄生虫. 基于售卖的三文鱼的样子, 我得出了一个结论, 国内的三文鱼都是达不到生食品质的, 均为冷冻杀死寄生虫后再拿出来售卖的, 自己冻会更便宜和健康.
&lt;img src=&quot;https://r2.asyncx.top/2025/01/15/202501151606901.webp&quot; alt=&quot;吃完竟然不会拉肚子&quot; /&gt;&lt;/p&gt;
&lt;p&gt;还有最大的一个改变就是驾驶技术, 飞速增长. Montreal迈入冬季, 一周可能有6天都没有太阳, 在体感温度大约为-15℃的天气还是开车出门购物更合适. 偶尔接上朋友去购物, 经常要跑高速. 争取这学期考下来驾照.&lt;/p&gt;
&lt;h2&gt;博客装修&lt;/h2&gt;
&lt;p&gt;从上年年底友邻竹子在Mastodon转发了&lt;a href=&quot;https://github.com/dddddddddzzzz/OpenHeart&quot;&gt;OpenHeart&lt;/a&gt;相关的帖子后我尝试部署了一下. 出现了无法使用的问题, 近日仔细查找后发现提供的&lt;code&gt;worker.js&lt;/code&gt;多了一次编码, 导致前端GET和POST的地址和KV中所存储的不一样. 在这里提供一些参考性的建议.&lt;/p&gt;
&lt;p&gt;Openheart整个流程为: 前端传递-后端存储-前端获取. 当在前端点赞后, 通过脚本(worker.js)创建键值对(KV)进行存储, 并通过前端js来刷新显示最新的点赞计数. 现在来详细的进行部署.&lt;/p&gt;
&lt;h3&gt;后端存储&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;本文教程使用Astro和Cloudflare&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;首先创建一个存储库: 存储和数据库-KV-创建. 如果想开箱即用, 名字就和我一样设置为&lt;code&gt;KV&lt;/code&gt;即可.&lt;/p&gt;
&lt;p&gt;接下来创建Cloudflare Workers, 代码为:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;const instruction = `.^⋁^.
&apos;. .&apos;
  \`
OpenHeart protocol API
`;

export default {
  async fetch(request, env) {
    if (request.method === &apos;OPTIONS&apos;) {
      return new Response(null, { headers });
    }
    if (request.method === &apos;GET&apos;) {
      if (url(request).pathname === &apos;/&apos;) {
        return new Response(instruction, { headers });
      } else {
        return handleGet(request, env);
      }
    }
    if (request.method === &apos;POST&apos;) return handlePost(request, env);
  },
};

const headers = {
  &quot;Access-Control-Allow-Origin&quot;: &quot;*&quot;,
  &quot;Access-Control-Allow-Methods&quot;: &quot;GET,POST&quot;,
  &quot;Access-Control-Max-Age&quot;: &quot;86400&quot;,
};

function error(text, code = 400) {
  return new Response(text, { headers, status: code });
}

function url(request) {
  return new URL(request.url);
}

function ensureEmoji(emoji) {
  const segments = Array.from(
    new Intl.Segmenter({ granularity: &apos;grapheme&apos; }).segment(emoji.trim())
  );
  const parsedEmoji = segments.length &amp;gt; 0 ? segments[0].segment : null;

  if (/\p{Emoji}/u.test(parsedEmoji)) return parsedEmoji;
}

// Generate KV keys with single encoding
function generateKey(domain, uid, emoji) {
  const encodedDomain = encodeURIComponent(domain); // Single encoding
  const encodedUid = encodeURIComponent(uid); // Single encoding
  return `${encodedDomain}:${encodedUid}:${emoji}`;
}

async function handleGet(request, env) {
  const [domain, ...uidParts] = url(request).pathname.slice(1).split(&apos;/&apos;);
  const decodedDomain = decodeURIComponent(domain); // 解码
  const decodedUid = decodeURIComponent(uidParts.join(&apos;/&apos;)); // 解码
  const prefix = `${encodeURIComponent(decodedDomain)}:${encodeURIComponent(decodedUid)}`; // 单次编码
  console.log(&quot;GET Prefix:&quot;, prefix); // 调试日志

  const res = await env.KV.list({ prefix });
  const list = {};
  for (const key of res.keys) {
    const value = await env.KV.get(key.name);
    const [, uidDecoded, emoji] = key.name.split(&apos;:&apos;).map(decodeURIComponent); // 解码键值
    const obj = list[uidDecoded] || {};
    obj[emoji] = Number(value);
    list[uidDecoded] = obj;
  }

  console.log(&quot;GET Response Data:&quot;, list); // 调试日志
  return new Response(
    JSON.stringify(list[decodedUid] || {}),
    { headers: { ...headers, &apos;Content-Type&apos;: &apos;application/json;charset=UTF-8&apos; } }
  );
}


async function handlePost(request, env) {
  const urlObject = url(request);
  const path = urlObject.pathname.slice(1);
  if (path === &apos;&apos;) return error(&apos;pathname missing&apos;);

  const [domain, ...uidParts] = path.split(&apos;/&apos;);
  const decodedDomain = decodeURIComponent(domain); // 解码
  const decodedUid = decodeURIComponent(uidParts.join(&apos;/&apos;)); // 解码
  const emoji = ensureEmoji(await request.text());
  if (!emoji) return error(&apos;request body should contain an emoji&apos;);

  // Generate the key with single encoding
  const key = generateKey(decodedDomain, decodedUid, emoji);
  console.log(&quot;POST Generated Key:&quot;, key); // 调试日志

  const currentCount = Number(await env.KV.get(key) || 0);
  await env.KV.put(key, currentCount + 1);

  return new Response(&apos;recorded&apos;, { headers });
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;在推送后回到Worker的设置界面, 绑定刚刚创建的KV, 名称均设置为KV.
&lt;img src=&quot;https://r2.asyncx.top/2025/01/15/202501151627013.webp&quot; alt=&quot;&quot; /&gt;
当我使用自定义域的时候出现了问题, 因此我使用了默认的workers.dev域名.&lt;/p&gt;
&lt;h3&gt;前端传递/获取&lt;/h3&gt;
&lt;p&gt;接下来就是前端的传递. 在Openheart的协议中, 你需要在访问API时提供一个target和uid, 这个target可以是任何字符串, 于是我设置为当前博文的链接并将uid默认为&lt;code&gt;like&lt;/code&gt;.
所以根据官方的文档, 可以通过以下命令来进行POST(点赞)和GET(获取点赞数)操作:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;curl -d &apos;💯&apos; -X POST &apos;https://xxx.workers.dev/xxx.example.com/like&apos;
recorded%
curl &apos;https://xxx.workers.dev/xxx.example.com/like&apos;
{&quot;❤️&quot;:1}%
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;在这个过程中, 特殊字符, 例如&lt;code&gt;:/&lt;/code&gt;会根据worker.js设置来影响对KV的存储. 因此需要对url编码一次来转换这些特殊字符.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;---
// Get current URL dynamically
const currentUrl = Astro.url.toString();
---
&amp;lt;div class=&quot;like&quot;&amp;gt;
&amp;lt;open-heart href={`https://xxx.workers.dev/${currentUrl}/like`} data-umami-event=&quot;Like&quot; emoji=&quot;❤️&quot;&amp;gt;❤️&amp;lt;/open-heart&amp;gt;
&amp;lt;/div&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;这样的请求和存储就保持一致了, 你可以通过开发者工具来确认这一点
&lt;img src=&quot;https://r2.asyncx.top/2025/01/15/202501151637263.webp&quot; alt=&quot;&quot; /&gt;
&lt;img src=&quot;https://r2.asyncx.top/2025/01/15/202501151637373.webp&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;最后就是前端样式, 由于我的基于benji的二次修改, 这是&lt;a href=&quot;https://www.benji.dog/articles/interactions-or-reactions/&quot;&gt;benji的文章链接&lt;/a&gt;, 可以自行访问获取.&lt;/p&gt;
&lt;h2&gt;书影音游&lt;/h2&gt;
&lt;p&gt;颓废的这段时间都用来看小说了, 重新看了一遍龙族.&lt;/p&gt;
&lt;p&gt;++tv/season/7SFK34YjPavk4GINN3OeGW++&lt;/p&gt;
&lt;p&gt;第七集的抽帧让我感到惊艳, 就是最后的结尾略显仓促, 杰斯陪葬的动机我感觉不是很清晰.&lt;/p&gt;
&lt;p&gt;++game/21J6htiKlo8WgU1CQbfI0N++&lt;/p&gt;
&lt;p&gt;圣诞时候和大家一起用Switch玩了.&lt;/p&gt;
&lt;p&gt;++tv/season/2ZgS53uh0au6wUA92UZrWW++&lt;/p&gt;
&lt;p&gt;++game/6tNeehHtnETUtptu1nhwzO++&lt;/p&gt;
&lt;p&gt;一部不错的魔幻史诗, 在刚出的时候觉得名字好听体验了一下, 被冗长的任务打断了. 现在创新号重新回坑过完了剧情, 很棒.&lt;/p&gt;
</content:encoded></item><item><title>思想和智慧的结束</title><link>https://blog.asyncx.top/posts/2024-11-20/</link><guid isPermaLink="true">https://blog.asyncx.top/posts/2024-11-20/</guid><description> </description><pubDate>Wed, 20 Nov 2024 12:11:00 GMT</pubDate><content:encoded>&lt;p&gt;本篇写得有一些仓促, 但我觉得很有意义. 之前有看过王德峰教授的录课, 但没有上心, 最近在抖音上看到了教授这样讲过, 认为有必要分享一下:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;假如全人类只有一种思想，它就是思想和智慧的结束.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;身边和我有过大量交流的朋友肯定会知道我是一个科幻迷, 如果再交流的更多我就会输出这样一个观点: 如果有机会可以让所有人类成为一个思维共同体, 我会毫不犹豫的同意. 我已经忘记这个观念来自于什么时候了, 但是很多科幻作品会出现这样的影子, 神们自己/沙丘/黑客帝国, 数不胜数. 我最感兴趣的其实是群体心智(蜂巢思维), 科幻作品中的虫族, 高度有序, 理想中的共产主义(笑). 我其实并不理解各个主义的形态, 但是以我个人的观点, 共产主义是不可能真正实现的, 原因是有悖人性.&lt;/p&gt;
&lt;p&gt;回到正题, 我拿出来这句话配合我的想法来讲的原因, 是我感受到这有消极想法的存在, 我不会时时刻刻做此想, 只会在人和人之间无法传达全部信息/极度伤心的时候有这种想法. 换一个通俗易懂的语言来说, 消极的时候觉得个体不应该存在, 积极的时候觉得自己又存在. 听起来很双标, 但现在, 我看来这不是一个二元论的问题.&lt;/p&gt;
&lt;p&gt;前段时间在吃饭的时候和朋友们聊起来安乐死, 我的想法是, 当&lt;strong&gt;我&lt;/strong&gt;这一个体在精神层面死亡, 即我得了老年痴呆, 我不再是我的时候我会选择安乐死. 基于我的这个想法大家开始讨论客观和主观的&lt;strong&gt;我&lt;/strong&gt;哪个才是真正的我. 我直接说结论好了: 共同存在, 相互作用. (参考:人的一生，要经历三次死亡...)&lt;/p&gt;
&lt;p&gt;再次回到正题, 我其实不是很认同王德峰教授的这句话, 但是我能理解这样的想法, 甚至能想象到有人能摸出来&amp;lt;人类群星闪耀时&amp;gt;来扇我. 也如我所说这是一个乐观和悲观的两面, 悲观时看事物自然是消极的. 但是这两者如何统一呢, 我就用我小时候看的郑渊洁儿童读物(是皮皮鲁和鲁西西, 似乎是橙色系列的某本)的一段话来说好了: 孩子给妈妈说想要换爸爸, 妈妈说:&quot;这样你就不会出生了&quot;, 孩子说:&quot;我会以另一种形式存在在这个世界上.&quot; 3维生物能理解2/1维, 但是你虽然知道了高维, 却想象不到真正的存在形式一样, 因为思维就位于这个高度, 不妨接受, 吸纳, 再进一步辩证看待, Feed forward.&lt;/p&gt;
</content:encoded></item><item><title>酒(Alcoholism)和认同感</title><link>https://blog.asyncx.top/posts/2024-11-12/</link><guid isPermaLink="true">https://blog.asyncx.top/posts/2024-11-12/</guid><description> </description><pubDate>Tue, 12 Nov 2024 19:11:00 GMT</pubDate><content:encoded>&lt;p&gt;:::note
下一次的月度小结会推迟到12月的期末周结束发布.
:::&lt;/p&gt;
&lt;p&gt;&amp;lt;iframe style=&quot;border-radius:12px&quot; src=&quot;https://open.spotify.com/embed/track/7MZM9KhwGQG8QJ4BycsnQn?utm_source=generator&quot; width=&quot;100%&quot; height=&quot;352&quot; frameBorder=&quot;0&quot; allowfullscreen=&quot;&quot; allow=&quot;autoplay; clipboard-write; encrypted-media; fullscreen; picture-in-picture&quot; loading=&quot;lazy&quot;&amp;gt;&amp;lt;/iframe&amp;gt;&lt;/p&gt;
&lt;h2&gt;前言&lt;/h2&gt;
&lt;p&gt;为什么会有这样的一篇博文? 我站在比较清醒的角度完整看到了朋友从清醒到做出不合乎常理举动的这一过程, 酒精能&lt;strong&gt;催化&lt;/strong&gt;一起喝酒的人之间的关系, 我觉得十分有意思.&lt;/p&gt;
&lt;p&gt;一言蔽之, 我不是一个能从喝酒体会到乐趣的人, 但是我会从调酒这一手艺中感到快乐, 写本文前也不能体会到乐趣, 但是体会到了看大家出糗的乐趣.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://r2.asyncx.top/2024/11/12/202411122111251.webp&quot; alt=&quot;赛博朋克2077-来生酒吧-大卫·马丁内斯&quot; /&gt;&lt;/p&gt;
&lt;p&gt;上月的Reading week旅行期间, 我第一次和同龄人在没有&lt;code&gt;酒桌文化&lt;/code&gt;的情况下喝酒, 那一次没有喝多少. 这个月的早些时间我们一起去看了万能青年旅店, 因为比较晚, 我就住在了朋友家. 朋友在来之前在国内由于工作原因, 对这方面有很多研究, 还能调出来带有渐变的酒(很简单, 一看就会), 我们三人就一边打扑克一边喝酒. 酒后, 他们就会做出不合常理的举动.&lt;/p&gt;
&lt;h2&gt;为什么是催化?&lt;/h2&gt;
&lt;p&gt;标题处的括号内英文Alcoholism的意思是酗酒, 我主观认为还没有到这样的地步. 饮酒让&lt;a href=&quot;https://zh.wikipedia.org/wiki/%E8%A1%80%E6%B6%B2%E9%85%92%E7%B2%BE%E6%BF%83%E5%BA%A6&quot;&gt;血液酒精浓度&lt;/a&gt; (BAC) 达到0.03-0.12%的时候，通常会让整体情绪改善，以及可能产生&lt;a href=&quot;https://zh.wikipedia.org/wiki/%E6%AC%A3%E5%BF%AB&quot;&gt;欣快&lt;/a&gt;的感觉、自信和社交能力增加、焦虑减少、&lt;a href=&quot;https://zh.wikipedia.org/wiki/%E9%85%92%E7%B2%BE%E5%8F%8D%E5%BA%94&quot;&gt;脸红反应&lt;/a&gt;、和判断力及肌肉精细协调力受到妨碍.&lt;/p&gt;
&lt;p&gt;我在前言中之所以使用&lt;strong&gt;催化&lt;/strong&gt;一词, 是因为结果并不一定是积极的.&lt;/p&gt;
&lt;p&gt;一段时间前我和&lt;a href=&quot;https://nortant.com/&quot;&gt;汪哥&lt;/a&gt;(汪哥终于搭了自己的博客, 开始输出)说过关于我不喜欢交际, 不喜欢谈论自己观点的原因, 我会认为我是一个很贫瘠的人, 我的语言, 思想是直来直去, 经不起推敲的. 放在和大家喝酒也是一样, 我会认为我在喝醉后自己的思想没有办法得到控制, 维特根斯坦说过: 凡能够说的，都能够说清楚；凡不能谈论的，就应该保持沉默.&lt;/p&gt;
&lt;p&gt;回到&lt;strong&gt;催化&lt;/strong&gt;, 酒精会抑制大脑中控制自我约束的区域，使人更加容易表达内心, 大家的想法会变得自然, 你会更快的看到这个人是什么样的. 这样的速度远远超过用MBTI那16种人格来对另一个人产生认知要更全面, 更快速. 因此, 当一个人自然表现的种种和你对ta的认知相差甚远, 或者你对ta的自然表现有所顾虑, 催化的结果自然就是消极的.&lt;/p&gt;
&lt;h2&gt;催化的积极结果&lt;/h2&gt;
&lt;p&gt;酒后的谈话往往比平日更自然，大家也更愿意分享彼此的经历和感受, 因此会产生集体认同感. 汪哥认为认同感的建立在很大程度上依赖于双向反馈，并且是个体抵抗孤独、寻求归属感的重要因素, 个体认同感往往源于对共性的寻找和亲密关系的深度. 而群体认同感则建立在个人在群体中的定位和价值感之上.&lt;/p&gt;
&lt;p&gt;从心理学的角度来看，认同感和归属感是人类的基本需求之一, 人们往往通过交流和相互支持来增强认同感，而这建立在信任和对方反馈的基础上. 关于集体认同感, 我认为群体的反馈是认同感的关键, 假如我和合得来的人一起做事, 并且能得到正向的反馈, 这对于个人也是具有高度满足感的.
&lt;img src=&quot;https://r2.asyncx.top/2024/11/12/202411122200609.webp&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
</content:encoded></item><item><title>10月小结-和解, 旅游</title><link>https://blog.asyncx.top/posts/2024-10-27/</link><guid isPermaLink="true">https://blog.asyncx.top/posts/2024-10-27/</guid><description> </description><pubDate>Sun, 27 Oct 2024 11:10:00 GMT</pubDate><content:encoded>&lt;p&gt;&amp;lt;iframe style=&quot;border-radius:12px&quot; src=&quot;https://open.spotify.com/embed/track/0l5bSnAfPH7hyrankRaq48?utm_source=generator&quot; width=&quot;100%&quot; height=&quot;152&quot; frameBorder=&quot;0&quot; allowfullscreen=&quot;&quot; allow=&quot;autoplay; clipboard-write; encrypted-media; fullscreen; picture-in-picture&quot; loading=&quot;lazy&quot;&amp;gt;&amp;lt;/iframe&amp;gt;&lt;/p&gt;
&lt;h2&gt;前言&lt;/h2&gt;
&lt;p&gt;转眼来加已经两个月了, 相比第一个月的收获满满, 这一个月的学习和生活可以初步平衡了: 忙里偷闲变得没有负罪感了, 哈哈. 第一个月的学业有一种被自己push着前进的感觉, 到第二个月由于作业量突然增大, 没有那么多的时间去精雕细琢, 也算变相的于自己和解了. 生活方面, 临时搬到了西岛的亲戚家中住, 通勤时间从原先的1h且公交直达, 变成了1h20min偶尔要中转---这是有一些烦恼的, 这意味着我每天会在公共交通花费至少2.5个小时. 这段时间由于大部分是乘坐公交, 如果看电子设备我会晕车, 只能在路上听一些English Podcast. 上个月我听完了&lt;code&gt;Six minute english&lt;/code&gt;, 这个月正在听更长, 语速更快的&lt;code&gt;BBC All Ears English Podcast&lt;/code&gt;.
&lt;img src=&quot;https://r2.asyncx.top/2024/10/27/202410271219942.webp&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Reading week 旅游&lt;/h2&gt;
&lt;p&gt;这个月没想到有什么比这个更有纪念意义的事情, 我的理解中Reading week是感恩节长假的另一种称呼, 在结束之后就要考试, 所以在这之前让你好好复习和放松. 我们总共5人, 都是中国留学生.&lt;/p&gt;
&lt;p&gt;整个旅游的时间是2天, 行程是:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;day1: 千岛湖坐船, Kingston看景, 晚上在Gatineau住&lt;/li&gt;
&lt;li&gt;day2: Gatineau regional park hiking, Ottawa美术博物馆, 返程
我把图片放到文章末尾记录
(似乎可以做一个多图的拼图功能...TODO)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;本月观影记录&lt;/h2&gt;
&lt;p&gt;++movie/44lXTrJZeJlFQ6ZYbVQCMR++&lt;/p&gt;
&lt;p&gt;++movie/1MQTe6StK7U9anZfXwrvxN++&lt;/p&gt;
&lt;p&gt;++movie/2O7n5MUqKupr9wtmAflybI++&lt;/p&gt;
&lt;p&gt;++movie/3uE2DHo3faivferMPTsrSQ++&lt;/p&gt;
&lt;p&gt;++movie/4ZuBYH4VdKPyaqRRpycoRN++&lt;/p&gt;
&lt;h2&gt;旅游风景&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://r2.asyncx.top/2024/10/27/202410271256835.webp&quot; alt=&quot;停在桅杆休息的海鸥&quot; /&gt;
&lt;img src=&quot;https://r2.asyncx.top/2024/10/27/202410271257367.webp&quot; alt=&quot;Kingston码头和开心的我&quot; /&gt;
&lt;img src=&quot;https://r2.asyncx.top/2024/10/27/202410271259302.webp&quot; alt=&quot;I AM THE STORM THAT IS APPROACHING.....&quot; /&gt;
&lt;img src=&quot;https://r2.asyncx.top/2024/10/27/202410271300661.webp&quot; alt=&quot;汽车起步上路发现没有关后备箱&quot; /&gt;
&lt;img src=&quot;https://r2.asyncx.top/2024/10/27/202410271301401.webp&quot; alt=&quot;Gatineau regional park&quot; /&gt;&lt;/p&gt;
</content:encoded></item><item><title>Astro-blog记录(4) - 为Astro添加NeoDB卡片</title><link>https://blog.asyncx.top/posts/2024-10-07/</link><guid isPermaLink="true">https://blog.asyncx.top/posts/2024-10-07/</guid><description> </description><pubDate>Mon, 07 Oct 2024 23:10:00 GMT</pubDate><content:encoded>&lt;h2&gt;前言&lt;/h2&gt;
&lt;p&gt;使用请遵循&lt;a href=&quot;https://creativecommons.org/licenses/by-nc-sa/4.0/&quot;&gt;CC-BY-NC-SA 4.0&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;如何使用?&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;本博客的Github存储库获取: &lt;code&gt;/src/components/mdrenders/remark-neodb-card.mjs&lt;/code&gt;或&lt;a href=&quot;https://github.com/A5yncX/DG/blob/main/src/components/mdrenders/remark-neodb-card.mjs&quot;&gt;点击跳转&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;创建&lt;code&gt;remark-neodb-card.mjs&lt;/code&gt;,复制第一步的代码并在&lt;code&gt;astro.config.mjs&lt;/code&gt;添加:&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;&lt;code&gt;import { defineConfig } from &apos;astro/config&apos;;

import remarkFigureCaption from &apos;@microflash/remark-figure-caption&apos;;
import remarkDirective from &apos;remark-directive&apos;;
import remarkCalloutDirectives from &quot;./src/components/mdrenders/remark-callout-directives-customized.mjs&quot;
import remarkNeoDB from &quot;./src/components/mdrenders/remark-neodb-card.mjs&quot;
import { remarkReadingTime } from &apos;./src/components/mdrenders/remark-reading-time.mjs&apos;;
import { remarkModifiedTime } from &apos;./src/components/mdrenders/remark-modified-time.mjs&apos;;
import { pluginCollapsibleSections } from &apos;@expressive-code/plugin-collapsible-sections&apos;
import sitemap from &apos;@astrojs/sitemap&apos;;

import expressiveCode from &quot;astro-expressive-code&quot;;

// https://astro.build/config
export default defineConfig({
  site: &apos;https://blog.asyncx.top&apos;,
  integrations: [sitemap(), 
    expressiveCode({
      plugins: [pluginCollapsibleSections()],
      themes: [&apos;material-theme-ocean&apos;],
      styleOverrides: {
        // You can also override styles
        borderRadius: &apos;10px&apos;,
        borderWidth: &apos;1px&apos;,
        frames: {
        },
      },
      defaultProps: {
        // Enable word wrap by default
        wrap: true,
        // Disable wrapped line indentation for terminal languages
        overridesByLang: {
          // &apos;bash,ps,sh&apos;: { preserveIndent: false },
        },
      },
    })
  ],
  markdown: {
    remarkPlugins: [remarkNeoDB],
  }
});
&lt;/code&gt;&lt;/pre&gt;
&lt;ol&gt;
&lt;li&gt;使用方式为&lt;code&gt;++类别/ID++&lt;/code&gt;,你可以通过复制某个NeoDB的链接来得到.例如: &lt;code&gt;https://neodb.social/movie/2O7n5MUqKupr9wtmAflybI&lt;/code&gt;, 其中&lt;code&gt;movie/2O7n5MUqKupr9wtmAflybI&lt;/code&gt;就是类别和条目ID, 这意味着你只需要复制&lt;code&gt;https://neodb.social/&lt;/code&gt;后面的部分并在两端带上&lt;code&gt;++&lt;/code&gt;就可以使用.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;演示(安利)环节&lt;/h2&gt;
&lt;p&gt;++movie/63F9JoxdWImOJkhuf4OIhK++&lt;/p&gt;
&lt;p&gt;++book/4RcTj1AilRVONB8RIKJSVA++&lt;/p&gt;
&lt;p&gt;++game/2psMXUufasnomW0woLnlie++&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;输入内容为:
++movie/63F9JoxdWImOJkhuf4OIhK++
++book/4RcTj1AilRVONB8RIKJSVA++
++game/2psMXUufasnomW0woLnlie++
&lt;/code&gt;&lt;/pre&gt;
</content:encoded></item><item><title>9月小结-课业和生活</title><link>https://blog.asyncx.top/posts/2024-10-01/</link><guid isPermaLink="true">https://blog.asyncx.top/posts/2024-10-01/</guid><description> </description><pubDate>Tue, 01 Oct 2024 19:10:00 GMT</pubDate><content:encoded>&lt;p&gt;&amp;lt;iframe style=&quot;border-radius:12px&quot; src=&quot;https://open.spotify.com/embed/track/7HoICc5j4GcwXsAPvsfCgo?utm_source=generator&quot; width=&quot;100%&quot; height=&quot;352&quot; frameBorder=&quot;0&quot; allowfullscreen=&quot;&quot; allow=&quot;autoplay; clipboard-write; encrypted-media; fullscreen; picture-in-picture&quot; loading=&quot;lazy&quot;&amp;gt;&amp;lt;/iframe&amp;gt;
刚刚提交了周五截止的Assignment, 得闲可以更新一下博客了, 发现上一次写博客已经是9.8日了, 想到以后可以提笔写一写月度小结.&lt;/p&gt;
&lt;p&gt;这个想法有一些仓促, 没什么时间可以沉淀想法, 我还是想到什么写什么好了.&lt;/p&gt;
&lt;h2&gt;生活&lt;/h2&gt;
&lt;p&gt;落地以后最需要操心的生活反而没什么值得提的, 住在亲戚家, 吃的用的不用操很多的心. 唯一美中不足的地方就是要去学校需要坐1h+的公共交通.&lt;/p&gt;
&lt;p&gt;除了学习之外我是没什么课余生活的, 实在平衡不好.&lt;/p&gt;
&lt;p&gt;不知道大家能不能从博文的字里行间看出来我是一个不善主动交际的人, 在一个陌生的环境信息闭塞是很严重的, 这个情况让我感到很恐慌, 于是我主动的去和一些人交流, 同时又不得不承担和一些人交流时滋生的负面情绪. 好在总是有汪哥(这里缺一个他的博客链接, 等到有了再添加) 开导.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://r2.asyncx.top/2024/10/01/202410012105579.webp&quot; alt=&quot;和朋友去吃海底捞&quot; /&gt;&lt;/p&gt;
&lt;p&gt;此外就是了解到很多和一开始想得不一样的事情, 譬如这里的downtown, 会让你有一种&lt;code&gt;欢迎来到夜之城&lt;/code&gt;的感觉. 抬头高楼林立, 过一个马路就到处是流浪汉, 此外就是经常修路, 即使这目前没对我造成什么困扰.&lt;/p&gt;
&lt;p&gt;还有就是探索周边的一些美食, 因为家里有饭所以还是没在外面吃过很多的, 不过目前吃到的也都很不错, 图片我会放在末尾.&lt;/p&gt;
&lt;h2&gt;学习&lt;/h2&gt;
&lt;p&gt;很累, 但是很值.&lt;/p&gt;
&lt;p&gt;课程方面:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;COMP335: 学校给我加了一门计算机基础的课程, 学Automata, Grammar之类的. 老师是俄罗斯/乌克兰人(GPT给出的名字倾向) 这门课真的既让我享受到数学的乐趣,又让我知道了之前在本科疑惑的计算机底层逻辑背后是什么.&lt;/li&gt;
&lt;li&gt;SOEN6441: 这门课程是侧重Java的编程和数据结构, 本科大二的时候浑浑噩噩的所以没有好好听, 正在恶补朋友推荐的&lt;a href=&quot;https://sp23.datastructur.es/&quot;&gt;CS 61B Data Structures&lt;/a&gt;. 这周五会有Midterm Exam(我也不知道为什么这么早)&lt;/li&gt;
&lt;li&gt;COMP6781: NLP, 老师很好玩, 像一个善良的巫婆哈哈哈哈哈哈. 很想给她拍一些照片. 会因为有同学迟到生气委屈, 发调查问卷, 发巧克力.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;社交方面, 和很多印度同学交流过, 很多时候我真的听不清. 目前有两个Group, 6441的4人小组和6781的2人小组. 中国人, 巴基斯坦人, 伊朗人. 现在的问题是词汇量少(动词和形容词). 我没有办法准确,快速的去反应我脑子里想到的问题. 6781同组的伊朗大姐觉得每周的交流以Meeting形式进行会对我有帮助, 头大的同时且接受进步.&lt;/p&gt;
&lt;p&gt;另一个问题就是前文所述的无法平衡, 防止上课听不懂, 我会在课前预习. 这占据了极大的时间, 以及课后的作业时间. 这一问题还是要和自己和解, 我太想拿到高绩点了, 尽管有一些边际效应, 实际效率感觉并不高.&lt;/p&gt;
&lt;p&gt;总的来说还是在可接受范围内的, 毕竟人还好好活着, 十月加油.&lt;/p&gt;
&lt;h2&gt;图片预警(按照时间)&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://r2.asyncx.top/2024/10/01/202410012140106.webp&quot; alt=&quot;来这边吃的第一顿薯条, 太好吃了&quot; /&gt;
&lt;img src=&quot;https://r2.asyncx.top/2024/10/01/202410012143005.webp&quot; alt=&quot;学校和地铁站地下空间买的好吃面包&quot; /&gt;
&lt;img src=&quot;https://r2.asyncx.top/2024/10/01/202410012142120.webp&quot; alt=&quot;10刀的鳗鱼饭&quot; /&gt;
&lt;img src=&quot;https://r2.asyncx.top/2024/10/01/202410012141400.webp&quot; alt=&quot;学校周边的教堂&quot; /&gt;
&lt;img src=&quot;https://r2.asyncx.top/2024/10/01/202410012141776.webp&quot; alt=&quot;好吃的米线&quot; /&gt;
&lt;img src=&quot;https://r2.asyncx.top/2024/10/01/202410012139252.webp&quot; alt=&quot;为Action5pro配的背包夹&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;后记&lt;/h2&gt;
&lt;p&gt;逛友链的时候发现大家都在用Hugo, 用短代码调API来渲染NeoDB的观影记录为卡片, 在Github逛了一圈, 似乎没有见到用Astro来实现的, 再夸下海口, 抽空实现一下.&lt;/p&gt;
</content:encoded></item><item><title>第五期-我的效率工具</title><link>https://blog.asyncx.top/posts/2024-09-08/</link><guid isPermaLink="true">https://blog.asyncx.top/posts/2024-09-08/</guid><description> </description><pubDate>Sun, 08 Sep 2024 19:09:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img src=&quot;https://r2.asyncx.top/2024/09/08/202409081915149.webp&quot; alt=&quot;Drawio所画-与服务商相关的Workflow&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;前言&lt;/h2&gt;
&lt;p&gt;有身边的朋友和一些读者会对我用的各种工具感到好奇, 本文侧重以下几个方面介绍我使用的工具和侧重方面. 部分高强度使用软件因为其功能过多, 我没有地方切入进行介绍. 打算后续围绕&lt;code&gt;博客发布&lt;/code&gt;和&lt;code&gt;学习归纳&lt;/code&gt;这两个工作流再写一篇文章说明.
&lt;img src=&quot;https://r2.asyncx.top/2024/09/08/202409081930332.webp&quot; alt=&quot;Xmind所画&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;为什么我的工具构成是这样的?&lt;/h3&gt;
&lt;p&gt;我的设备:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Windows笔记本(2019) 32GB+2TB&lt;/li&gt;
&lt;li&gt;Macbook 2021 M1Pro 16+512&lt;/li&gt;
&lt;li&gt;iPad Pro(2nd) A12Z 128G&lt;/li&gt;
&lt;li&gt;iPhone12 Pro 128G&lt;/li&gt;
&lt;li&gt;OnePlus 12 16+512&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;我具有以下情况:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;我对于未知事物的态度体现在App探索上为:任何button都会尝试其功能.&lt;/li&gt;
&lt;li&gt;我乐于使用具有好看UI/高度快捷键支持的应用.&lt;/li&gt;
&lt;li&gt;我在日常使用中经常有从Mac传输内容到安卓手机的情况.&lt;/li&gt;
&lt;li&gt;我喜欢键盘多过Apple Pencil.&lt;/li&gt;
&lt;li&gt;我具有一定的数据存储读取需求和高度数据安全需求.&lt;/li&gt;
&lt;li&gt;我把我自己比喻为赛博仓鼠. 具有时效性的数据我往往不会删除.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;你可以灵活使用右下角的返回最顶层和文章目录来确定你所想浏览的工具.&lt;/p&gt;
&lt;h2&gt;电脑相关应用&lt;/h2&gt;
&lt;h3&gt;Localsend(全平台)&lt;/h3&gt;
&lt;p&gt;&lt;a href=&quot;https://localsend.org/zh-CN&quot;&gt;官网&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;这是一个&lt;code&gt;主动选择文件&lt;/code&gt;并在多端同步的工具, 你只需要将设备连接到同一互联网即可.
&lt;img src=&quot;https://r2.asyncx.top/2024/09/08/202409081942668.webp&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;iCloud(Apple Only)&lt;/h3&gt;
&lt;p&gt;这个东西不再简述, 我购买了50GB的存储. 主要用于:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Mac桌面的多端同步&lt;/li&gt;
&lt;li&gt;Marginnote4/GoodNotes/思维导图/我所有应用密钥的同步&lt;/li&gt;
&lt;li&gt;我在本地经常编辑的Github仓库的同步(包括Obsidian的文档和博客的仓库)&lt;/li&gt;
&lt;li&gt;常用性的文件和应用配置文件
&lt;img src=&quot;https://r2.asyncx.top/2024/09/08/202409081945354.webp&quot; alt=&quot;&quot; /&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;Raycast(Mac Only)&lt;/h3&gt;
&lt;p&gt;&lt;a href=&quot;https://www.raycast.com/&quot;&gt;官网&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Raycast作为我的&lt;code&gt;⌘+Space&lt;/code&gt;工具存在.其作用为:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;剪切板存储&lt;/li&gt;
&lt;li&gt;分屏&lt;/li&gt;
&lt;li&gt;实时汇率换算&lt;/li&gt;
&lt;li&gt;应用快速打开/网页快速查询等一系列应用相关功能.
&lt;img src=&quot;https://r2.asyncx.top/2024/09/08/202409081948317.webp&quot; alt=&quot;剪切板存储&quot; /&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;https://r2.asyncx.top/2024/09/08/202409081950322.webp&quot; alt=&quot;配合相关开源插件可以实现微信数据读取和防撤回&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;Arc(Apple/Windows)&lt;/h3&gt;
&lt;p&gt;&lt;a href=&quot;https://arc.net/&quot;&gt;官网&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;这是我最喜欢的浏览器, 没有之一. 配合&lt;a href=&quot;https://itab.link/&quot;&gt;iTab新标签页(下图)&lt;/a&gt;可以实现全平台常用链接统一.
&lt;img src=&quot;https://r2.asyncx.top/2024/09/09/202409090804404.webp&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;教程我不在此赘述, 使用方法因人而异.&lt;/p&gt;
&lt;p&gt;此外, 关于书签的存储, 我并没有作统一管理.&lt;/p&gt;
&lt;p&gt;对于会用到但不经常使用的书签我使用Notion剪藏配合Tag来管理, 如果我在某一时间需要用到也能保证全平台查看; 对于我经常查看且需要长久登录帐号的网页我只会用浏览器查看, 我会放在iTab上. 在我的电脑和iPad之间可以同步查看.&lt;/p&gt;
&lt;h2&gt;生活相关应用&lt;/h2&gt;
&lt;h3&gt;Notion Calendar(全平台)&lt;/h3&gt;
&lt;p&gt;&lt;a href=&quot;https://www.notion.so/product/calendar&quot;&gt;官网&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;这也是我最近感到最惊艳的工具, 它可以读取你的Notion/Google Calendar. 用最优雅的UI展示你需要做的事情.
&lt;img src=&quot;https://r2.asyncx.top/2024/09/08/202409081959619.webp&quot; alt=&quot;我本学期的课表...&quot; /&gt;
我只在手机上开启了Notion Calendar通知, 防止出现&lt;code&gt;一个电话, 所有设备响&lt;/code&gt;类似的情况.&lt;/p&gt;
&lt;h3&gt;Notion(全平台+网页)&lt;/h3&gt;
&lt;p&gt;&lt;a href=&quot;https://www.notion.so/&quot;&gt;官网&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;由于我已经在高强度使用Obsidian和跨平台的原因, 我的Notion现在代替了所有设备的备忘录和TODO. &lt;code&gt;你需要一份教程来了解如何使用Database&lt;/code&gt;
&lt;img src=&quot;https://r2.asyncx.top/2024/09/08/202409082004297.webp&quot; alt=&quot;使用Database实现带有优先级TODO&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;Reeder5(Apple Only)&lt;/h3&gt;
&lt;p&gt;&lt;a href=&quot;https://reederapp.com/&quot;&gt;官网&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;用来订阅RSS.&lt;/p&gt;
&lt;h2&gt;学习相关应用&lt;/h2&gt;
&lt;h3&gt;Marginnote 4(Apple Only)&lt;/h3&gt;
&lt;p&gt;&lt;a href=&quot;https://www.marginnote.com/&quot;&gt;官网(没有更新,只显示3的介绍)&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;我目前的主力学习软件, 功能强大, 有思维导图/Anki复习功能/pdf标记/卡片定位/标签/链接等各种各样的功能. &lt;code&gt;你需要一份学习如何使用软件的教程&lt;/code&gt;
&lt;img src=&quot;https://r2.asyncx.top/2024/09/08/202409082016683.webp&quot; alt=&quot;使用脑图来归纳多个课程文档(书本和PPT)&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;Draw.io(全平台+网页)&lt;/h3&gt;
&lt;p&gt;&lt;a href=&quot;https://www.drawio.com/&quot;&gt;官网&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;功能强大的绘图软件, 之所以称之为绘图软件是因为它可以展示不能用树形图和线性(笔记)来体现的内容. 正如我在本文开头画的那张图:
&lt;img src=&quot;https://r2.asyncx.top/2024/09/08/202409081915149.webp&quot; alt=&quot;Drawio所画-与服务商相关的Workflow&quot; /&gt;
这张图就很平面的告诉了我自己, 我用了Github和CloudFlare托管了哪些服务, 它们之间有哪些部分交互.&lt;/p&gt;
&lt;h3&gt;Xmind(全平台)&lt;/h3&gt;
&lt;p&gt;&lt;a href=&quot;https://xmind.cn/&quot;&gt;官网&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;强大的思维导图工具.&lt;/p&gt;
&lt;h3&gt;Obsidian(全平台)&lt;/h3&gt;
&lt;p&gt;&lt;a href=&quot;https://obsidian.md/&quot;&gt;官网&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;带有&lt;code&gt;双链&lt;/code&gt;的笔记应用, 有强大的第三方软件生态支持. 我的第二大脑.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;这里应有一篇介绍我本人用法和P.A.R.A归纳法的文章.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;博客相关应用&lt;/h2&gt;
&lt;h3&gt;Typora(Mac/windows)&lt;/h3&gt;
&lt;p&gt;&lt;a href=&quot;https://typora.io/&quot;&gt;官网&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;美观简洁的Markdown编辑器. 对我的意义更类似于高强度使用Marginnote4后随手演草的Notability.&lt;/p&gt;
&lt;h3&gt;PicList(Mac/Windows)&lt;/h3&gt;
&lt;p&gt;&lt;a href=&quot;https://piclist.cn/&quot;&gt;官网&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;图床应用, 基于Picgo二次开发的项目, 我用它的原因是可以在本地对图片的上传进行一系列设置.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;这里似乎也可以有一篇更新后的如何搭建博客的工作流.&lt;/p&gt;
&lt;p&gt;之前较老的文章 :https://blog.asyncx.top/zh/tags/astro/&lt;/p&gt;
&lt;/blockquote&gt;
</content:encoded></item><item><title>入加记(4)-货币/超市</title><link>https://blog.asyncx.top/posts/2024-09-06/</link><guid isPermaLink="true">https://blog.asyncx.top/posts/2024-09-06/</guid><description> </description><pubDate>Fri, 06 Sep 2024 16:09:00 GMT</pubDate><content:encoded>&lt;h2&gt;前言&lt;/h2&gt;
&lt;p&gt;第一周的课也是上完了. 除了印度教授的课我认为需要多花费一些功夫(Inglish和Java)以外, &lt;a href=&quot;http://www.healthx-lab.ca/people.html&quot;&gt;Yiming Xiao&lt;/a&gt;的计算机图像领域入门课和&lt;a href=&quot;https://pankratov.ca/&quot;&gt;denis pankratov&lt;/a&gt;的QP课程(Qualification Program)在预习的情况下可以听懂90%.&lt;/p&gt;
&lt;p&gt;言归正传, 本文基于这十几天的经历, 流水帐一样记录一下.&lt;/p&gt;
&lt;h2&gt;货币&lt;/h2&gt;
&lt;p&gt;我第一次见到加拿大的钞票时候是在小时候, 感觉像饮料瓶子外面的包装纸一样.&lt;/p&gt;
&lt;h3&gt;钞票&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://r2.asyncx.top/2024/09/06/202409061657406.webp&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;面值&lt;/th&gt;
&lt;th&gt;颜色&lt;/th&gt;
&lt;th&gt;特征&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;$5&lt;/td&gt;
&lt;td&gt;蓝&lt;/td&gt;
&lt;td&gt;正面是加拿大前总理威尔弗里德·劳雷尔爵士（Sir Wilfrid Laurier). 背面是加拿大太空探索主题&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;$10&lt;/td&gt;
&lt;td&gt;紫&lt;/td&gt;
&lt;td&gt;正面是加拿大前总理约翰·麦克唐纳爵士（Sir John A. Macdonald），背面是加拿大人权运动领袖维奥拉·戴斯蒙德（Viola Desmond）&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;$20&lt;/td&gt;
&lt;td&gt;绿&lt;/td&gt;
&lt;td&gt;正面是英国女王伊丽莎白二世，背面是加拿大国家战时纪念碑（The Vimy Memorial）&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;$50&lt;/td&gt;
&lt;td&gt;红&lt;/td&gt;
&lt;td&gt;正面是加拿大前总理威廉·莱昂·麦肯齐·金（William Lyon Mackenzie King），背面是加拿大北极研究主题&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;$100&lt;/td&gt;
&lt;td&gt;棕&lt;/td&gt;
&lt;td&gt;正面是加拿大前总理罗伯特·博登爵士（Sir Robert Borden），背面是医学创新主题&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3&gt;硬币&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://r2.asyncx.top/2024/09/06/202409061649254.webp&quot; alt=&quot;从左到右,从上到下分别是2元,1元,25分,10分,5分&quot; /&gt;&lt;/p&gt;
&lt;p&gt;1分用得比较少, 还要翻来翻去的.(我懒了)&lt;/p&gt;
&lt;h2&gt;超市&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;高品质: Whole Foods Market和IGA Extra&lt;/li&gt;
&lt;li&gt;Costco: 中高品质/中低价格&lt;/li&gt;
&lt;li&gt;中品质: Provogo, Metros, Adonis&lt;/li&gt;
&lt;li&gt;低品质: SuperC, Maxi, Walmart, Dollarama&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;此外还有中国超市, 我只去过丰泰(Marché G&amp;amp;D). 种类齐全, 不存在买不到调料的情况.&lt;/p&gt;
&lt;h2&gt;一些随手拍&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://r2.asyncx.top/2024/09/06/202409061703210.webp&quot; alt=&quot;&quot; /&gt;
&lt;img src=&quot;https://r2.asyncx.top/2024/09/06/202409061703357.webp&quot; alt=&quot;&quot; /&gt;
&lt;img src=&quot;https://r2.asyncx.top/2024/09/06/202409061703257.webp&quot; alt=&quot;&quot; /&gt;
&lt;img src=&quot;https://r2.asyncx.top/2024/09/06/202409061703476.webp&quot; alt=&quot;&quot; /&gt;
&lt;img src=&quot;https://r2.asyncx.top/2024/09/06/202409061704336.webp&quot; alt=&quot;&quot; /&gt;
&lt;img src=&quot;https://r2.asyncx.top/2024/09/06/202409061704273.webp&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
</content:encoded></item><item><title>入加记(3)-开卡历程</title><link>https://blog.asyncx.top/posts/2024-09-01/</link><guid isPermaLink="true">https://blog.asyncx.top/posts/2024-09-01/</guid><description> </description><pubDate>Sun, 01 Sep 2024 09:09:00 GMT</pubDate><content:encoded>&lt;h2&gt;前言&lt;/h2&gt;
&lt;p&gt;想了想, 读者不一定用得上现金和有方便的交通去各个超市. 这篇文章的优先度还是优于超市和现金的. 这篇文章依旧是简单对这段时间带有感情色彩的详略缩写, 和我就读同所大学的读者将来可以在&lt;a href=&quot;https://lib.asyncx.top&quot;&gt;我维护的Library&lt;/a&gt;中找到更详细的攻略.&lt;/p&gt;
&lt;p&gt;到8.31的晚上六点, GIC和我的银行账户关联. 也算是结束了落地以后的所有大事. 有OPUS交通卡,Student ID Card校园卡, GIBC GIC账户以及银行卡.
&lt;img src=&quot;https://r2.asyncx.top/2024/09/01/202409012131452.webp&quot; alt=&quot;IDcard/OPUScard&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;交通卡&lt;/h2&gt;
&lt;p&gt;官网上的介绍是: 只要你申请了Office365相关的邮箱, 你就可以登录上传照片的门户上传学生卡照片, 再用这个照片线上申请OPUS交通卡邮寄到家中.&lt;/p&gt;
&lt;p&gt;上传后一段时间我收到了成功的邮件. 但是申请线上的时候异常, 发邮件询问Advisor无果后打算线下申请.&lt;/p&gt;
&lt;p&gt;跟着学校官网的步骤预约到第二天第一批后, 来到线下办理. 只带了护照和一个ipad, 用来出示在学校系统申请的Attestation letter.&lt;/p&gt;
&lt;h2&gt;校园卡&lt;/h2&gt;
&lt;p&gt;开着导航走到教学楼之后问保安从哪里可以到拿卡的办公室,沟通后保安指了指我面前的教职人员...由于我在线上上传了照片, 所以就不用当场拍一个丑丑的照片然后现场等待印卡了.(可能我拿的比较晚, 没有多少人会在网上上传照片. 说明做足功课的人还是少数).&lt;/p&gt;
&lt;h2&gt;CIBC GIC&lt;/h2&gt;
&lt;p&gt;这件事情的始末贯穿我落地后的很多天.&lt;/p&gt;
&lt;p&gt;第一天, 第一次办理是有appointment的, 去之后人家表示同事不在, 无法激活. 当天我walk-in了另一个CIBC, 他们表示没有办法并帮我约到了周六, 就是成功办理的那天.&lt;/p&gt;
&lt;p&gt;第二天, 办完上面两张卡后我打算walk-in一个就近的CIBC询问, 象友在downtown办理的时候没有预约, 劝我去试一试. 在和前台沟通后她表示目前的appointment因为劳动节和罢工已经爆满, 可以帮我预约到下周, 委婉拒绝后我就去Chinatown吃饭了. Chinatown的CIBC有很多华人, 全称中文交流. 他们表示只有account manager可以开GIC账户.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;这里科普一下GIC account.&lt;/p&gt;
&lt;p&gt;当你在国内办理GIC后你的钱都存在于银行作为定期存款. 所以你会在银行给你的pdf中看到redeemable: NO. GIC account不属于cheque和saving这两个账户中的任何一个, 但是发给你的钱会在Cheque账户中.(CIBC是这样的)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;第三天(周六), 我去银行办理. 职员在activate我的GIC account之后表示卡没有办法和我的GIC account关联. 理由是现在是周末时间. 他打电话询问后台说说等到劳动节之后如果账户里还没有GIC account就mail他解决.(后台和周末怎么还能有互动呢? 对CIBC的印象差了很多...)&lt;/p&gt;
&lt;p&gt;在给debit card激活后我就回来了, 到晚上6点左右收到了CIBC的邮件, 表示GIC account已激活, 到此结束了3张关键卡的办理.&lt;/p&gt;
&lt;p&gt;后续还有RBC的两张卡(credit/debit), 到手使用后也会详说.&lt;/p&gt;
</content:encoded></item><item><title>入加记(2.5)-外话</title><link>https://blog.asyncx.top/posts/2024-08-31/</link><guid isPermaLink="true">https://blog.asyncx.top/posts/2024-08-31/</guid><description> </description><pubDate>Sat, 31 Aug 2024 09:08:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img src=&quot;https://r2.asyncx.top/2024/08/31/202408312151923.webp&quot; alt=&quot;&amp;quot;去码头整点薯条&amp;quot;&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;商品&lt;/h2&gt;
&lt;p&gt;转眼已经来这里1星期了, 在住所周围逛了逛这里的超市, 关于超市和差价以及货币我后面会详细写一篇.
&lt;img src=&quot;https://r2.asyncx.top/2024/08/31/202408312127900.webp&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;正事&lt;/h2&gt;
&lt;p&gt;前些天忙着办理QC的优惠交通卡和Student ID Card. 去了downtown, 也是感慨到有一种Cyberpunk的感觉, 高楼林立, 下面的路坑坑洼洼, 还有流浪汉在绿化带里面躺着.&lt;/p&gt;
&lt;p&gt;等到开学熟悉后计划专门写一篇downtown的记录.&lt;/p&gt;
&lt;p&gt;CIBC陆续跑了4个银行都没有办下来, 预约到今天中午,打算再去尝试一下. 开GIC账户一定要make an appointment, 现在赶上加拿大的劳动节(Labour day)和罢工, 各个银行都忙着办理业务.
&lt;img src=&quot;https://r2.asyncx.top/2024/08/31/202408312145339.webp&quot; alt=&quot;Confédération des syndicats nationaux的罢工(疑似)现场&quot; /&gt;&lt;/p&gt;
</content:encoded></item><item><title>入加记(2)-抵达</title><link>https://blog.asyncx.top/posts/2024-08-27/</link><guid isPermaLink="true">https://blog.asyncx.top/posts/2024-08-27/</guid><description> </description><pubDate>Tue, 27 Aug 2024 11:08:00 GMT</pubDate><content:encoded>&lt;h2&gt;前言&lt;/h2&gt;
&lt;p&gt;出门熟悉了一下周围的交通, 给&lt;a href=&quot;https://asyncx.top&quot;&gt;主页&lt;/a&gt;(停靠页,Landing Page)重构了一下. 想起来还没动笔落地后的事情.&lt;/p&gt;
&lt;p&gt;从苏黎世起飞时还想着身边会做一个哪个国家的游客, 没想到还是国人同学, 他在Mcgill读材料工程的大二. 一路上开始聊了很多, 后面我实在是太累了(30h没有休息好), 就眯过去了.&lt;/p&gt;
&lt;h2&gt;落地Montreal&lt;/h2&gt;
&lt;p&gt;落地之后跟着大部队走, 不用担心错过换大签的地方
&lt;img src=&quot;https://r2.asyncx.top/2024/08/28/202408280054112.webp&quot; alt=&quot;&quot; /&gt;
这中间有个丢脸的地方, 走到了一个分岔路口, 左侧是工作人员通道, 通道的中间放着和游客申报机器一模一样的工作人员申报机器. 我直接走过去开始操作, 我身边的同学甚至和我一起分析为什么无效. 后来来了几个海关告诉我not here.&lt;/p&gt;
&lt;p&gt;继续跟着大部队走, 就能看到很多申报机器.
&lt;img src=&quot;https://r2.asyncx.top/2024/08/28/202408280057208.webp&quot; alt=&quot;超级多机器, 有ArriveCAN快速通道&quot; /&gt;
右侧为ArriveCAN快速通道, ArriveCAN的作用就是可以省略你在机器上操作的步骤. 在你申报完成后, 机器会打印出来&lt;code&gt;一张带有字母+数字的白色纸条&lt;/code&gt;, 你务必要保管好这张纸条.&lt;/p&gt;
&lt;p&gt;在你拿到白色纸条后, 从中间绕出, 你的面前是一排工作人员, 当你排队到他们面前时他们会询问你的目的, 你说&quot;for Study&quot;或拿出签证让他们检查都可以. 在当时他们告诉我到Immigration2等待.&lt;/p&gt;
&lt;h2&gt;换大签&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://r2.asyncx.top/2024/08/28/202408280110306.webp&quot; alt=&quot;排队等待中, 很多印度人&quot; /&gt;
在房间外排队, 一次进大概进5,6个人. 排队时我的前面也是国人, 是在Mcgill读生物材料PhD的女生. 在进去后等待叫你的名字,去柜台拿大签就行.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;不具有参考性的建议:
和我同一批进去的人都拿到大签后还没叫到我的名字, 我直接去找工作人员问了. 他们拿走我的护照后就带回来了我的大签.没有要任何材料和问我任何问题.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;:::danger
在机器申报拿到的白条一定不要扔, 它是你出机场一路上的凭证.
:::&lt;/p&gt;
&lt;p&gt;换到大签后, 下楼后看牌子取行李即可, 出站时可以看着指示牌选择出口.&lt;/p&gt;
</content:encoded></item><item><title>入加记(1)-启程</title><link>https://blog.asyncx.top/posts/2024-08-24/</link><guid isPermaLink="true">https://blog.asyncx.top/posts/2024-08-24/</guid><description> </description><pubDate>Sat, 24 Aug 2024 21:08:00 GMT</pubDate><content:encoded>&lt;h2&gt;前言&lt;/h2&gt;
&lt;p&gt;下签下的很仓促, 收拾东西也收拾得很仓促, 机票买的更仓促. 最后选择了上海-苏黎世-蒙特利尔的路线, 绕了2/3个地球.&lt;/p&gt;
&lt;p&gt;因为没有留学生机票, 所以行李额度的构成是23kg+8kg, 即托运23kg和手提8kg.
后面有我的行程和一部分行李构成.&lt;/p&gt;
&lt;h2&gt;启程&lt;/h2&gt;
&lt;p&gt;我买的两程都是瑞士航空, 所以行李是直挂的, 我提前一天在航司的APP上线上值机, 也算是抢到了一个可以的位置. 从上海浦东旁边的汉庭酒店出发, 乘7点的机场大巴到机场. 下车后带着行李直接前往柜台办理托运. 行李箱的称重和家里电子称的重量相差不多, 托运完成后在航司的APP上就可以看到托运行李的实时数据.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://r2.asyncx.top/2024/08/26/202408260918112.webp&quot; alt=&quot;SWISS App的页面&quot; /&gt;&lt;/p&gt;
&lt;p&gt;托运完成后随时可以过海关候机, 之后按指纹扫人脸, 此处值得提一下, &lt;code&gt;背包没有称重,可以多装&lt;/code&gt;, 但是所有的电子设备要掏出来单独过一遍安检. 我检查了一下发现海关少给我了一个盒子, 差点失去一个耳机.&lt;/p&gt;
&lt;h3&gt;苏黎世飞行中&lt;/h3&gt;
&lt;p&gt;候机时没什么需要注意的. 由于是瑞士航空, 乘务员使用的语言都是英语. 在路上总共吃了4顿, 也算是凭自己蹩脚的英语要到了想要的, 例如&quot;Coffee or Tea&quot;-&quot;Tea&quot;-试图给我倒红茶-&quot;Not this one, that one&quot;(指着三得利). 又比如分发三明治的时候, 他们似乎默认国人喜欢吃肉, 给了火腿三明治. &quot;Sorry, can i get another one&quot;. 这样我就换到了又大又好吃的鸡蛋三明治.&lt;/p&gt;
&lt;p&gt;除了吃就是和旁边的大哥聊, 聊一个多小时. 大哥在上海的德企, 来瑞士转机到阿尔卑斯山脉参加公司团建. 从出国读书聊到大哥的职业, 愈发认为在中年一定要转到管理岗, 技术岗是卷不过年轻人的. 在飞机起飞平稳开启机上wifi后, 互相加了微信.&lt;/p&gt;
&lt;h3&gt;苏黎世候机中&lt;/h3&gt;
&lt;p&gt;落地后就和大哥告别了, 因为大哥有申根签, 打算去市中心逛一逛, 后来大哥说卡过期了没法坐bus. 告别后我开始找餐厅, 出发前在小红书上有看到苏黎世机场有好吃的三文鱼饭, 打算当夜宵.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://r2.asyncx.top/2024/08/26/202408260919384.webp&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;在经历了迷路和问路后, 遇到了送孩子出国读书的母子, 我又用塑料口语从阿三海关的口中得知没有申根签甚至没法出航站楼, 这意味着没有办法到商业区去. 于是我在航站楼随便找了地方坐, 在小红书上查到有一个没启用的航站楼可以过夜, 这时候被要去纽约大学读本科的同学搭话了. 正好, 我们两个买了三明治和饮料, 在航站楼谈天说地.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://r2.asyncx.top/2024/08/26/202408260921716.webp&quot; alt=&quot;9.8CHF-折合人民币80元的三明治&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://r2.asyncx.top/2024/08/26/202408260922375.webp&quot; alt=&quot;跟着万能小红书找到的未启用登机处&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://r2.asyncx.top/2024/08/26/202408260923987.webp&quot; alt=&quot;蜷缩的我&quot; /&gt;&lt;/p&gt;
&lt;p&gt;苏黎世机场是分开的, Gate A/B/D推测是欧洲航班, Gate E是国际航班. 我们两个人早上6点机场开放就收拾出发前往Gate E, 第一次航班的大哥试图和我碰面, 奈何Gate E的人实在太多了. 去纽约大学的同学第二天10点登机, 给他送走后我找了个地方敲博客.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://r2.asyncx.top/2024/08/26/202408260925328.webp&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;结语&lt;/h3&gt;
&lt;p&gt;飞在瑞士上空的时候看下面的风景像童话小镇一样, 还抓拍到了滑翔机. 在机场的地勤人员也很松弛, 傍晚时骑自行车来来回回, 有一些遗憾的是早上下雨了, 没能看到日出.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://r2.asyncx.top/2024/08/26/202408260924095.webp&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;出行备忘&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;8.24
14h 上海-苏黎世(温度35~20) 航班10:05 行李托运停止09:05
8.25
机场候机18h(无申根签证不能出机场)
8h 苏黎世-蒙特利尔(温度35~18) 航班12:40
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;入境文件类&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;(什么都没看)
小签护照
CAQ
IMM5813
IMM5825
LOA(学校Offer)
GIC两份pdf
学费缴纳证明
体检回执复印件
身份证/护照彩印件
---携带文件---
驾驶信息证明 驾照原件/复印件
&lt;/code&gt;&lt;/pre&gt;
</content:encoded></item><item><title>博德之门3自用MOD留存</title><link>https://blog.asyncx.top/posts/2024-08-09/</link><guid isPermaLink="true">https://blog.asyncx.top/posts/2024-08-09/</guid><description> </description><pubDate>Fri, 09 Aug 2024 12:08:00 GMT</pubDate><content:encoded>&lt;p&gt;&amp;lt;iframe style=&quot;border-radius:12px&quot; src=&quot;https://open.spotify.com/embed/track/5Y94QNZmNoHid18Y7c5Al9?utm_source=generator&quot; width=&quot;100%&quot; height=&quot;352&quot; frameBorder=&quot;0&quot; allowfullscreen=&quot;&quot; allow=&quot;autoplay; clipboard-write; encrypted-media; fullscreen; picture-in-picture&quot; loading=&quot;lazy&quot;&amp;gt;&amp;lt;/iframe&amp;gt;&lt;/p&gt;
&lt;p&gt;UI改进 https://www.nexusmods.com/baldursgate3/mods/366?tab=description&lt;/p&gt;
&lt;p&gt;携带重量增加 https://www.nexusmods.com/baldursgate3/mods/522?tab=description&lt;/p&gt;
&lt;p&gt;人脸增加 https://www.nexusmods.com/baldursgate3/mods/2226?tab=files&amp;amp;file_id=49893&lt;/p&gt;
&lt;p&gt;装备扩展 https://www.nexusmods.com/baldursgate3/mods/87?tab=description&lt;/p&gt;
&lt;p&gt;面部皱纹减少 https://www.nexusmods.com/baldursgate3/mods/1058?tab=description&lt;/p&gt;
&lt;p&gt;自分类背包 https://www.nexusmods.com/baldursgate3/mods/880&lt;/p&gt;
</content:encoded></item><item><title>润加记(4)-SDS学签(附时间线)</title><link>https://blog.asyncx.top/posts/2024-07-24/</link><guid isPermaLink="true">https://blog.asyncx.top/posts/2024-07-24/</guid><description> </description><pubDate>Wed, 24 Jul 2024 11:07:00 GMT</pubDate><content:encoded>&lt;pre&gt;&lt;code&gt;2024.08.09更新
下签了!完整时间线如下:
2024.07.11 - 提交签证申请
2024.07.23 - 录指纹,当天关联
2024.08.02 - re(体检关联)
2024.08.09 - OPR
2024.08.12 - 上海递签
2024.08.13 - IRCC状态更新为通过
&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote&gt;
&lt;p&gt;2024.07.24更新&lt;/p&gt;
&lt;p&gt;写完这篇要休息一段时间, 既是等签证, 也要考虑一下后面要做的事了.&lt;/p&gt;
&lt;p&gt;前文导航: &lt;a href=&quot;https://blog.asyncx.top/zh/categories/%E7%95%99%E5%AD%A6/&quot;&gt;润加记&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;一些链接(对我的签证申请起到很大帮助):&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://zhuanlan.zhihu.com/p/633041015&quot;&gt;最新加拿大学签SDS DIY自主申请全网最详细全流程&lt;/a&gt;
&lt;a href=&quot;https://bbs.gter.net/thread-2507913-1-1.html&quot;&gt;最新加拿大学签申请全流程&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;0. 前言&lt;/h2&gt;
&lt;p&gt;:::warn
关于SDS的申请条件请上网查阅
:::&lt;/p&gt;
&lt;p&gt;本文写于7/23在上海加拿大签证中心录生物信息后.&lt;/p&gt;
&lt;p&gt;也是给这段时间的焦头烂额划句号了. 从5月考试结束到材料的陆续准备, 我自认不是一个很上进的人, 所以材料的准备也是慢慢腾腾的, 到最后没想到是银行卡的问题耗费了最长时间.&lt;/p&gt;
&lt;p&gt;本文将争取从各个方面告诉读者在SDS签证申请时候要注意的所有事项.&lt;/p&gt;
&lt;h2&gt;1. 需要准备的材料&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://r2.asyncx.top/2024/07/14/202407141105263.webp&quot; alt=&quot;文件递交页面&quot; /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;预体检（Upfront Medical Exam）： 预体检必须在加拿大移民局指定的一些体检点体检，成年人费用大概在1700元左右。关于加拿大移民局指定医院，请参考该连接中的内容 &lt;a href=&quot;https://link.zhihu.com/?target=https%3A//secure.cic.gc.ca/pp-md/pp-list.aspx&quot;&gt;Panel Physicians&lt;/a&gt;。预体检需要预约，预约后直接去体检中心缴费，最后体检完毕后会拿到一张体检凭证，请妥善保存，申请签证时会用到。体检的有效期为1年。&lt;code&gt;我在预体检预约到了北京, 在上文链接找到想去的诊所可以打电话询问/访问官网, 一般的预约方式都是导向到公众号上进行的. &lt;/code&gt;&lt;/li&gt;
&lt;li&gt;大学成绩单/身份证：把中文原件和英文翻译件组合到一个文件中。&lt;/li&gt;
&lt;li&gt;语言成绩单：扫描件即可。&lt;/li&gt;
&lt;li&gt;指定学习机构的大学录取证明：&lt;a href=&quot;https://link.zhihu.com/?target=https%3A//www.canada.ca/en/immigration-refugees-citizenship/services/study-canada/study-permit/prepare/designated-learning-institutions-list.html&quot;&gt;加拿大移民局指定学习机构(DLI)列表&lt;/a&gt;，链接中网站滑到底部，然后选择你所在的学校的省份，查看清单中是否有即可。如果没有请申请普签。&lt;code&gt;学校的offer中往往会说明DLI号&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;第一年学费证明：一般来说，加拿大学校会有关于SDS的指导，教你如何缴纳第一年的学费，如何估计第一年的学费等，请留意来自学校的邮件。在缴纳学费后，学校官方会发给你一个学费缴纳凭证，用这个凭证作为资金证明的材料之一即可。``&lt;/li&gt;
&lt;li&gt;GIC投资担保证明：SDS要求必须有最低&lt;strong&gt;20635&lt;/strong&gt;万加元的指定银行的投资担保证明， 这笔钱可以在你到达加拿大后去银行拿到卡以后解封，第一笔会返2000加元，之后所有的钱会在一年内每个月返还一次（附带利息，相当于活期存款）。关于GIC，我建议参考&lt;a href=&quot;https://zhuanlan.zhihu.com/p/633041015&quot;&gt;2024年6月最新加拿大学签SDS DIY自主申请全网最详细全流程&lt;/a&gt;的&lt;code&gt;三、GIC投资担保证明的办理&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;2024.08.02
状态为re&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;2. 提交签证申请&lt;/h2&gt;
&lt;p&gt;参考: &lt;a href=&quot;https://zhuanlan.zhihu.com/p/633041015&quot;&gt;2024年6月最新加拿大学签SDS DIY自主申请全网最详细全流程&lt;/a&gt;的&lt;code&gt;四、IRCC Portal申请流程&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;以下是专业名词的解答:&lt;/p&gt;
&lt;h3&gt;护照re: RE-Review(of medical results)&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://r2.asyncx.top/2024/08/09/202408091240564.webp&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;护照opr: OPR(Original Passport Request)&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://r2.asyncx.top/2024/08/09/202408091241499.webp&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;3. 未完待续&lt;/h2&gt;
&lt;p&gt;写了很多也删了很多, 这篇文章还是打算以记录自己遇到的问题为主, 目前有以下的问题还没有写&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;1. 办理GIC踩的坑
2. 银行卡的选择
3. 生物信息(录指纹)
4. 签证后的一些准备
5. ...
&lt;/code&gt;&lt;/pre&gt;
</content:encoded></item><item><title>润加记(3)-CAQ(魁北克学习证明)</title><link>https://blog.asyncx.top/posts/2024-07-14/</link><guid isPermaLink="true">https://blog.asyncx.top/posts/2024-07-14/</guid><description> </description><pubDate>Sun, 14 Jul 2024 10:07:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;这一个月因为办理GIC和汇款焦头烂额, 等到写签证申请时我会着重分享细节部分.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;CAQ的申请是因人而异的. 如果你需要在魁北克进行长时间学习, 那么你的学校会指导你进行申请.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://zhuanlan.zhihu.com/p/446752884&quot;&gt;知乎-加拿大留学|魁北克接收函CAQ介绍及申请流程&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;这一链接我想会帮到需要的读者, CAQ在申请的时候几乎是问答形式, 因此对于我自己的选项我也有记录.
&lt;img src=&quot;https://r2.asyncx.top/2024/07/14/202407141105824.webp&quot; alt=&quot;CAQ申请步骤&quot; /&gt;&lt;/p&gt;
</content:encoded></item><item><title>近日杂谈/毛毛2岁了</title><link>https://blog.asyncx.top/posts/2024-06-16/</link><guid isPermaLink="true">https://blog.asyncx.top/posts/2024-06-16/</guid><description> </description><pubDate>Sun, 16 Jun 2024 14:06:00 GMT</pubDate><content:encoded>&lt;h2&gt;更换图床&lt;/h2&gt;
&lt;p&gt;前些日子象友/赛博友邻&lt;a href=&quot;https://zhuzi.dev&quot;&gt;竹子&lt;/a&gt;换了图床到R2, 交流方案后我用的Github仓库+CF加速就显得有些力不从心了.&lt;/p&gt;
&lt;p&gt;在判断错误的情况下我还给Piclist提了issue, 虽然也算是解决了Piclist的图片缓存问题....&lt;/p&gt;
&lt;p&gt;正好上一年弄了一个Wise卡, 干脆还是换图床到Cloudflare R2了.&lt;/p&gt;
&lt;p&gt;不少读者是知道我在大学期间是绑了一只流浪猫回来的(学费回收计划), 这里就顺手存一些毛毛图:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://r2.asyncx.top/2024/06/16/202406161446563.webp&quot; alt=&quot;凌晨喵喵扰民的毛毛&quot; /&gt;
&lt;img src=&quot;https://r2.asyncx.top/images/202303262315761.png&quot; alt=&quot;晒太阳的毛毛&quot; /&gt;
&lt;img src=&quot;https://r2.asyncx.top/images/202304221847853.png&quot; alt=&quot;刚从学校抓住的毛毛&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;加签(SDS)申请&lt;/h2&gt;
&lt;p&gt;焦头烂额的去北京体检, 颤抖的转了学费. 现在正在焦头烂额的写Studyplan.&lt;/p&gt;
&lt;p&gt;希望下个星期就可以递签!&lt;/p&gt;
</content:encoded></item><item><title>润加记(2)-硕士申请</title><link>https://blog.asyncx.top/posts/2024-05-30/</link><guid isPermaLink="true">https://blog.asyncx.top/posts/2024-05-30/</guid><description> </description><pubDate>Thu, 30 May 2024 13:05:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;前文: &lt;a href=&quot;https://blog.asyncx.top/posts/2024-05-23/&quot;&gt;润加记(1)-英语成绩&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;前言&lt;/h2&gt;
&lt;p&gt;前文说到我在PTE第一次考过后就开始着手申请学校, 由于一些我的个人原因我就不在这里解释为什么我选择了Concordia作为目标就读, 本文我会简单说一下我在申请的时候递交了的重要材料, 以及递交的方式.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;1. 推荐信
2. Personal Statemnt(PS/个人陈述)
3. 本科成绩
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;推荐信&lt;/h2&gt;
&lt;p&gt;不同申请项目所需要的推荐信数量都是不同的. 我申请的应用计算机科学需要3封推荐信. 现在的大学都会规定有最短3个月的实习项目, 你可以联系实习的负责人让他写1篇, 用来体现你的实际工作能力. 已经工作的读者可以让同事写.&lt;/p&gt;
&lt;p&gt;其余的2封, 建议体现学术能力, 教师的职称一定程度反映国际认可度, 我本人联系了2个曾授课的正高级教师(学院院长/校特聘教授)来帮我写推荐信.&lt;/p&gt;
&lt;h3&gt;一些细节&lt;/h3&gt;
&lt;p&gt;在递交申请程序完成后学校自动发送了邮件到你预留的推荐人邮箱中, 其中包含填写链接, 打开链接后会出现一些评定被推荐人能力的问卷, 最后会要求提交电子版推荐信(word/pdf)&lt;/p&gt;
&lt;p&gt;:::warn{title=&quot;注意&quot;}
在我申请的时候遇到了教师无法访问邮件的情况, 如果有条件强烈建议去教师的办公室一起填写.
:::&lt;/p&gt;
&lt;h2&gt;个人陈述&lt;/h2&gt;
&lt;p&gt;我从以下几个方面进行了说明, 写了2页, 提交的pdf版. 隐私原因我就不在文中展示. 如果读者想要详细了解可以mail我, 我会提供这方面的帮助.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;个人兴趣的形成&lt;/li&gt;
&lt;li&gt;基础技能的培养&lt;/li&gt;
&lt;li&gt;实习/工作经验&lt;/li&gt;
&lt;li&gt;申请该所大学的原因&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;成绩提交&lt;/h2&gt;
&lt;p&gt;首先你需要联系学校的教务处提供你的课程成绩, 并需要盖章(校教务处/档案馆/院教务处等部门的公章)&lt;/p&gt;
&lt;p&gt;接着你需要去淘宝进行公证翻译, 并安装学校的要求提交原件和公证后的文件提交到指定处.&lt;/p&gt;
&lt;p&gt;:::warn{title=&quot;注意&quot;}
绝大多数学校在正式入学前会要求你提交正式的成绩文件, 需要你以学校的名义直接寄出你手中的成绩单纸质原件, 并最好包含毕业后的毕业证书等(带有证书编号的那些)文件的复印件.
:::&lt;/p&gt;
</content:encoded></item><item><title>润加记(1)-英语成绩</title><link>https://blog.asyncx.top/posts/2024-05-23/</link><guid isPermaLink="true">https://blog.asyncx.top/posts/2024-05-23/</guid><description> </description><pubDate>Thu, 23 May 2024 07:05:00 GMT</pubDate><content:encoded>&lt;h2&gt;前言&lt;/h2&gt;
&lt;p&gt;说来惭愧, 从上一年9月左右开始学英语, 到昨天才考到了可以通过SDS(Student Direct Stream)的分数(雅思6.0/PTE60), 断断续续考了总共5次. 现在也是可以舒坦的把文件夹给拖到archive里了.
&lt;img src=&quot;https://r2.asyncx.top/images/202405230740688.webp&quot; alt=&quot;在Obsidian中&quot; /&gt;
时隔2个月开始更新blog, 计划开一个栏目来记录我的每一步. 带有参考价值的内容我会在整理后发布到&lt;a href=&quot;https://lib.asyncx.top/&quot;&gt;我的Lib中&lt;/a&gt;, 不过应该要等到签证下来了.&lt;/p&gt;
&lt;h2&gt;首考雅思&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;日期: 2023.09.10&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;本来是要在9.11中午的时候考完口语的.当时报名是9.10考听读写的,9.11中午考口语,不知道由于什么原因提前一天到9.10的中午,我没有仔细的看准考证上面的日期.于是在昨天中午的时候考点老师打电话问我什么时候过来,是不是要弃考,从食堂跑到教学楼,上气不接下气的开始口语考试, 发挥有一些影响.&lt;/p&gt;
&lt;p&gt;虽然可以想到什么说什么, 但是还是局限于背的观点和一些简单词句.&lt;/p&gt;
&lt;h2&gt;首考PTE&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;日期: 2023.10.24&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;PTE是一个技巧性很强的考试. 如果我回到这个时候我会选择报课来极大程度节省我的时间.&lt;/p&gt;
&lt;p&gt;这是我当时写的另一篇文章: &lt;a href=&quot;https://blog.asyncx.top/posts/2023-10-25/&quot;&gt;首考PTE的一些问题/快速入门&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;我在首考的成绩足以让我申请offer后, 就开始以积累为借口的消极学习. 持续到3月初学校给我下offer, 我才开始稍稍努力.&lt;/p&gt;
&lt;h2&gt;二战PTE&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;日期: 2024.04.17&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;考前(4.15日)在看小红书备考时, 很多当天考试的人反应WFD出现了换题, 萤火虫之类的平台确认后我直接心态爆炸, 从4.15开始到考前的时间都在巩固新的WFD, 这也导致我考试时候的口语部分发挥不好. (后文我会贴上从这次开始考试的我的小分变化图供参考.)&lt;/p&gt;
&lt;p&gt;这次考后我意识到我的抗压能力还是不行.&lt;/p&gt;
&lt;h2&gt;三战PTE&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;日期: 2024.05.07&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;直接说结果, 差1分达标.&lt;/p&gt;
&lt;p&gt;在过程来看, 从上次考后开始有焦虑问题, 于是尽量刻意放松的去学习, 重点也是放在了口语题型的流利度和阅读题(FIB-RW)上. 我自认为听力还是不错的, 考试时候遇到了阅读的难题怪题, FIB-L和HIW做得不好. 口语部分我完全没有一点卡顿, 但得分不尽人意.&lt;/p&gt;
&lt;h2&gt;四战PTE&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;日期: 2024.05.22&lt;/strong&gt;
四点考完五点就出分了. 这次考前我其实是半摆烂的状态, 考这么多次让我很怀疑自己的能力. 先说口语, 和上次考试相比我有几处卡顿, 实际出分来看比上次高了很多. 可能机器觉得是个人都会卡顿...&lt;/p&gt;
&lt;p&gt;其次是阅读, 我只刷了C哥的绿色高频的一半, 在考试时只有一道原题. 阅读还是重在积累, 但是要在高频题的基础上积累.&lt;/p&gt;
&lt;p&gt;听力部分发挥正常, FIB-L和HIW做得比上次好.&lt;/p&gt;
&lt;h2&gt;考后碎碎念&lt;/h2&gt;
&lt;h3&gt;小分表&lt;/h3&gt;
&lt;p&gt;这是我2/3/4次考试的小分表:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;openResponseSpeakingWriting 51 - 66 - 73 DI/RL/SST/SWT/WE
reproducingSpokenWrittenLanguage 49 - 61 - 71 RA/RS/WFD
writingExtended 61 - 70 - 71 SST/SWT/WE
writingShort 45 - 57 - 74 WFD/FIB-RW
speakingExtended 42 - 62 - 80 DI/RL
speakingShort 55 - 64 - 69 RA/RS/ASQ
multipleSkillsComprehension 50 - 61 - 67 RA/RL/SWT
singleSkillComprehension 66 - 48 - 41 SST/WFD/RO/FIB-RW/FIB-R
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;前为小分名称, 中间为三次考试成绩变化, 后面为供分项.&lt;/p&gt;
&lt;p&gt;我也不知道为什么阅读还越来越差, 可能题是老题, 排名样本量大了(PTE是排名制考试).&lt;/p&gt;
&lt;h3&gt;每日记录&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;4.2 - RS20 WE1 WFD-red-words1 优化DI模板
4.3 - 预计WFD RS FIB练习 背模板
4.4 - 玩
4.5 - RS高频全过 背WE
4.6 - (效率低)背模板 继续RS WFD
4.7 - (效率低)背模板 WFD
4.8 - 过各个题型 RA20(65+) 敲WE
4.9 - DI FIB-RW 敲WE
4.10 - WFD(50/190) 找题练
4.11 - WE1(13/15) WFD(120/190) RS20
4.12 - WFD(190/190) RA20 RS20 SST1(良)
4.13 - 背WFD WE1 背DI/RL RA20
4.14 - 熟练DI/RL/WFD(张嘴大声读) 听RS 熟悉SST模板
4.15 - 回忆首考场景 发现WFD换题,心态爆炸开始背
4.16 - 考试 51 WFD(3中0写出1句) DI/RL模板卡顿 但是个人觉得RA/RS/FIB-L等题型有明显进步.
4.17 - 有点焦虑问题 近日换题期计划解决口语卡顿和练阅读 休息
4.18 - DI5 WFD10 睡大觉
4.19 - DI5 4.30号考试满,报5.7 WFD(30/161) 简写签证studyplan框架
4.20 - DI3 WFD纸质背诵(1-50)
4.21 - DI5 WFD纸质背诵(50~90)
4.22 - DI7 WFD纸质背诵(90~140)
4.23 - DI3 WFD纸质背诵(140~161)
4.24 - DI3 WFD(90/161)
4.25 - DI3 WFD(169/169)
4.26 - DI3(无卡顿) FIB2(c预测🟩) WFD(听+背) RA10 WE1
4.27 - DI3 WFD听 效率低
4.28 - DI1 WFD(听+背) RS听
4.29 - DI1(流利) WFD背 RA3
4.30 - DI/RL1(流利) WFD背 FIB RARS听
5.1 - WFD背 玩 效率低
5.2 - DI1(流利) WFD写(170/170) RA8 效率高
5.3 - DI2 WFD背(1/3) FIB1(c预测🟩)
5.4 - DI1(流利) WFD(1/1) WE2(15min)
5.5 - DI1(流利) WFD背 SST2 RA20 RS听 WE2(总结一些观点)
5.6 - WFD全部 DI1(流利) FIB3(c预测🟩) RARS各30
5.7 - WFD读 DI1(流利) RA20 FIB记 下午考试加油
...
5.10 - 出分59(59 58 57 66) 总结WE观点 阅读出大问题 积累阅读 改发音
5.11 - 上午FIBRW5🟩 DI2 下午 FIBRW2🟩
5.12 - 出门
5.13 - 上午背WFD FIBRW1🟩 下午DI2 FIBRW2🟩 RA5
5.14 - 上午FIBRW5 下午背WFD
5.15 - 上午DI1 FIB4 下午FIB1 RA20
5.16 - 上午DI1 RA10 效率低
5.17 - 上午DI1 RA20 下午FIB1 WFD30 效率低
5.18 - WFD(181/181) 效率低
5.19 - WFD全背诵 效率低
5.20 - 上午RA40 下午DI2 WFD背诵
5.21 - 上午WE1 SST1 下午WFD全 FIBRW
5.22 - 上午WFD FIBRW 下午考试
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;会有这个表的原因是在第二次考前我觉得已经没什么可以学的了, 直到换题和心态问题给我上了一课. 能很明显的看到我的学习量是越来越低的, 但好在这个积累的过程是越来越多的.&lt;/p&gt;
&lt;h3&gt;写在最后&lt;/h3&gt;
&lt;p&gt;在考到差1分后我一度想要defer. 我那时候想到换题季考完坐在家里哭的时候, 又觉得差一分也没什么.&lt;/p&gt;
&lt;p&gt;干脆再考最后一次, 过了就可以办签证了, 不过也可以defer一年, 人生没什么标准答案. 但好在这次最后超额完成任务.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://r2.asyncx.top/images/202405230814493.webp&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
</content:encoded></item><item><title>第四期-在安卓上使用Rime</title><link>https://blog.asyncx.top/posts/2024-03-29/</link><guid isPermaLink="true">https://blog.asyncx.top/posts/2024-03-29/</guid><description> </description><pubDate>Fri, 29 Mar 2024 16:03:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;前文: &lt;a href=&quot;https://blog.asyncx.top/posts/2023-04-14/&quot;&gt;在MacOS配制Rime（鼠须管）输入法&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;前言&lt;/h2&gt;
&lt;p&gt;前段时间购入了&lt;code&gt;Oneplus 12 16+512G&lt;/code&gt;. 现在变为双持后难免感慨iPhone在很多方面就像精致的原始人. 相比IOS的节约, 安卓厂商是下足了功夫. 在我刚拿到手机的时候已经贴好了手机膜, 甚至自带了一个手机壳供使用. 这点真的深得我心.&lt;/p&gt;
&lt;p&gt;言归正传, 本文基于&lt;a href=&quot;https://github.com/fcitx5-android/fcitx5-android&quot;&gt;fcitx5-android&lt;/a&gt;和其插件&lt;a href=&quot;https://github.com/fcitx5-android/fcitx5-android/releases/download/0.0.8/org.fcitx.fcitx5.android.plugin.rime-0.0.8-0-g4c8399ad-arm64-v8a-release.apk&quot;&gt;plugin.rime&lt;/a&gt;实现手机上使用librime, 并没有提及相关词库自动化工具.&lt;/p&gt;
&lt;p&gt;本文仅旨在同步显式(存储在RIME的&lt;code&gt;custom_phrase.txt&lt;/code&gt;的用户词库)和隐式(名称为&lt;code&gt;XX.userdb&lt;/code&gt;的文件夹, 存储日常输入频率的用户词库)的用户词库, 方便你在手机上使用键盘.&lt;/p&gt;
&lt;h2&gt;下载&lt;/h2&gt;
&lt;p&gt;:::warn{title=&quot;注意&quot;}
F-Droid和Google Play的该应用版本过老, 推荐在从Jekins(下文下载链接)获取.
:::&lt;/p&gt;
&lt;p&gt;你需要准备的工具如下:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;安装&lt;a href=&quot;https://jenkins.fcitx-im.org/job/android/job/fcitx5-android/&quot;&gt;Fcitx5 for Android&lt;/a&gt;和&lt;a href=&quot;https://github.com/fcitx5-android/fcitx5-android/releases/download/0.0.8/org.fcitx.fcitx5.android.plugin.rime-0.0.8-0-g4c8399ad-arm64-v8a-release.apk&quot;&gt;rime插件&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;安装&lt;a href=&quot;https://github.com/ElishaAz/Sayboard/releases&quot;&gt;SayBoard&lt;/a&gt;(语音输入, 可选)&lt;/li&gt;
&lt;li&gt;压缩电脑端&lt;code&gt;/Rime&lt;/code&gt;目录的所有文件.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;安装&lt;code&gt;Fcitx5 for Android&lt;/code&gt;后安装插件, 建议打开通知权限. 进入应用点击: &lt;code&gt;插件-重新加载&lt;/code&gt;, 出现插件后等待你的手机系统出现浮动窗, 通知Rime加载完成. 若没有出现你需要手动唤醒键盘并调到中州韵键盘等待浮动窗提示完成.&lt;/p&gt;
&lt;h2&gt;安装后的配制&lt;/h2&gt;
&lt;p&gt;将&lt;code&gt;3.&lt;/code&gt;中压缩的文件发送到手机, 将所有文件解压到手机的如下路径中:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;/Android/data/org.fcitx.fcitx5.android/files/data/rime/
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;重新唤起输入法, 切换到中州韵, 在工具栏右上角的设置中点击&lt;code&gt;重载配制&lt;/code&gt;即可.&lt;/p&gt;
&lt;h2&gt;Q&amp;amp;A&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;从Google Play安装的小企鹅输入法(Fcitx5 for Android)版本过低, 无法加载插件.
- 所以就听我的去Jekins下载
初次生成配制文件出错/时间长.
- 如果你的个人词库很大, 会造成键盘读取用户数据的时间长, 耐心等待.
&lt;/code&gt;&lt;/pre&gt;
</content:encoded></item><item><title>Astro-blog记录(3) - 修改部分渲染组件</title><link>https://blog.asyncx.top/posts/2024-03-27/</link><guid isPermaLink="true">https://blog.asyncx.top/posts/2024-03-27/</guid><description> </description><pubDate>Wed, 27 Mar 2024 16:03:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img src=&quot;https://r2.asyncx.top/images/202403271619938.webp&quot; alt=&quot;被夸了&quot; /&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;是的,这是被夸之后趁着开心写的.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;这几天V2上开始出现大量的&lt;code&gt;2024年还有人写博客吗&lt;/code&gt;诸如此类的帖子, 逛了逛发现是有很多(&lt;s&gt;没几个&lt;/s&gt;)高质量/高产出的博客的.&lt;/p&gt;
&lt;h2&gt;图片描述/样式块&lt;/h2&gt;
&lt;p&gt;也是看到了国内的&lt;code&gt;Astro Maintainer&lt;/code&gt;ruifeng的帖子, 突然想起来更换和重写Markdown到HTML渲染, 官网的文档对于这一过程说的有点少, 对于没有背景知识的新手可能颇难.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;const { Content } = await page.render();
...
&amp;lt;Content /&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;code&gt;[..slug].astro&lt;/code&gt;中的&lt;code&gt;page.render()&lt;/code&gt;用于获取md文件的所有内容, 并赋予&lt;code&gt;Content&lt;/code&gt;组件.&lt;/p&gt;
&lt;p&gt;我的需求是&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;为有名字的图片添加描述.&lt;/li&gt;
&lt;li&gt;添加样式块(也被称作告示/警告块).
&lt;img src=&quot;https://r2.asyncx.top/images/202403271633932.webp&quot; alt=&quot;无边记画图真方便&quot; /&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;一开始的想法复杂化了, 打算手动重写一下&lt;code&gt;page.render()&lt;/code&gt;, 修改从markdown到HTML的整个过程, 后来在Astro的官方Discord问了一下, 是可以用&lt;code&gt;Remark&lt;/code&gt;和&lt;code&gt;Rehype&lt;/code&gt;来搞定的. 这是配置文件.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;import { defineConfig } from &apos;astro/config&apos;;
import sitemap from &apos;@astrojs/sitemap&apos;;

import remarkFigureCaption from &apos;@microflash/remark-figure-caption&apos;;
import remarkDirective from &apos;remark-directive&apos;;
import remarkCalloutDirectives from &quot;./src/components/mdrenders/remark-callout-directives-customized.mjs&quot;
import { remarkReadingTime } from &apos;./src/components/mdrenders/remark-reading-time.mjs&apos;;

import expressiveCode from &quot;astro-expressive-code&quot;;
import { pluginCollapsibleSections } from &apos;@expressive-code/plugin-collapsible-sections&apos;
// https://astro.build/config
export default defineConfig({
  site: &apos;https://blog.asyncx.top&apos;,
  integrations: [sitemap(), 
    expressiveCode({
      themes: [&apos;material-theme-ocean&apos;],
      styleOverrides: {
        // You can also override styles
        borderRadius: &apos;10px&apos;,
        borderWidth: &apos;1px&apos;,
        frames: {},
      },
      defaultProps: {
        // Enable word wrap by default
        wrap: true,
        // Disable wrapped line indentation for terminal languages
        overridesByLang: {
          // &apos;bash,ps,sh&apos;: { preserveIndent: false },
        },
      },
    })
  ],
  markdown: {
    remarkPlugins: [remarkFigureCaption, remarkDirective, remarkCalloutDirectives, remarkReadingTime, pluginCollapsibleSections()],
  }
});
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;代码框增强&lt;/h2&gt;
&lt;p&gt;使用扩展插件可以自定义你想DIY的组件, 例如上文的代码框折叠, 文件名显示, 还有添加/删除/高亮等样式.
你可以在:&lt;a href=&quot;https://expressive-code.com/&quot;&gt;Expressive Code&lt;/a&gt;看到更多用法.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;非常感谢Oliver, 许愿他在2024年可以多一些头发..
&lt;img src=&quot;https://r2.asyncx.top/images/202403271641375.webp&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;这真的是考过分数线前的最后一次修改了.&lt;/h2&gt;
&lt;p&gt;今天在和已经在美国读CS的朋友聊天, 他说不想从事纯代码的工作, 他描述的应该想从事偏向于toB/toC的视觉传达方面的工作. 我给他浇冷水说这个方向一般Design和Code是分开的. 最后还是聊回怎么面对应试的英语, 虽然这也是学英语的一种方式吧...&lt;/p&gt;
&lt;p&gt;但是还是在博客的代码和样式上花费了太多心思了. 在今天被&lt;a href=&quot;https://tiffahahahu7.github.io/gigigatgat/zh-tw/index.xml&quot;&gt;烧麦老师&lt;/a&gt;夸奖时还是高兴了一下的, 很快又感觉这样的样式很少有人注意到, 像乔布斯坚持的&lt;code&gt;设计驱动&lt;/code&gt;, 读者(客户)的观感往往是最重要的. 现在很难有设计编码一体的岗位, 除了当个人开发者,在创业公司,在外包. 希望我的职业最后是个人开发者吧.&lt;/p&gt;
</content:encoded></item><item><title>解决手柄无法在Macbook玩星露谷的问题</title><link>https://blog.asyncx.top/posts/2023-10-26/</link><guid isPermaLink="true">https://blog.asyncx.top/posts/2023-10-26/</guid><description>                                                  </description><pubDate>Sun, 24 Mar 2024 19:45:00 GMT</pubDate><content:encoded>&lt;p&gt;这段时间和女朋友在一起玩星露谷,因为考试,来的时候只带了mac...
言归正传,由于valve的支持问题,导致星露谷的手柄文件过新,steam for mac无法读取导致的,在星露谷论坛查找后找到问题所在:&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://forums.stardewvalley.net/threads/help-controller-not-working-in-stardew-on-mac.5452/#post-106170&quot;&gt;[HELP] Controller not working in Stardew on Mac&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://r2.asyncx.top/images/202310252159264.png&quot; alt=&quot;&quot; /&gt;
我使用了这个老哥的方法,成功使用了手柄.
我的运行环境为&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;MacBook Pro 2021 M1Pro Sonoma&lt;/li&gt;
&lt;li&gt;xBox手柄(XSX/XSS均尝试可行)&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;2023.3.24更新&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;img src=&quot;https://r2.asyncx.top/images/202403241946633.webp&quot; alt=&quot;&quot; /&gt;
1.6更新后也是重新下回来玩了, 发现很多朋友不知道这个文件要在哪里替换, 我详细说一下路径.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;/Users/XXX/Library/Application Support/Steam/steamapps/common/Stardew Valley/Contents/MacOS/
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;这个目录含有一个&lt;code&gt;libSDL2-2.0.0.dylib&lt;/code&gt;,下载下文的此文件压缩包并覆盖这个文件就好.&lt;/p&gt;
&lt;p&gt;这是替换文件的下载链接,这个链接位于星露谷物语的官方论坛, 若无法下载请检查自己的网络环境:https://forums.stardewvalley.net/attachments/libsdl2-2-0-0-dylib-zip.7743/&lt;/p&gt;
</content:encoded></item><item><title>献给阿尔吉侬的花束</title><link>https://blog.asyncx.top/posts/2024-03-20/</link><guid isPermaLink="true">https://blog.asyncx.top/posts/2024-03-20/</guid><description> </description><pubDate>Wed, 20 Mar 2024 11:03:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;有些常识的人都会记得，眼睛的困惑有两种，也来自两种起因，不是因为走出光明，就是因为走进光明所致，不论是人体的眼睛或心灵的眼睛，都是如此。记得这件事的人，当他们看到别人迷茫、虚弱的眼神，他们不会任意嘲笑，而会先询问这个人的灵魂是否刚从更明亮的生命走出来，因为不适应黑暗而无法看清周遭；或是他刚从黑暗走入光明，因为过多的光芒而目眩。他会认为其中一个人的情况与心境是快乐的，并对另一个人产生怜悯。或是，他可能想嘲笑从幽冥走进光明的灵魂，但这总比嘲笑从光明世界回到黑暗洞穴的人更有道理。 ——柏拉图《理想国》&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;在神的视角看来，那些返回洞穴的人就如同被遣返回人世苦海。他不能很快的适应这一点，所以他会在这个无法被理解的环境里显得笨拙和可笑。如果穴居的囚犯能有更多共情，他们也许就会认识到有两种截然不同的视力障碍：其一出现在从黑暗走向光明，另一是从光明退回黑暗。这也适用于人的灵魂，当一个人经历了一段截然不同的体验，从而迷失自我，无法认识某个事物的时候，当事人不应当受到嘲笑，因为这可能是由于他来自那理念的光明世界，无法立刻习惯洞穴里黑暗氛围；或者也有可能是他从一个无知的环境闯入一个相对明了的世界，从而感到头晕目眩。这两种相互对立的原因，可能导致相同的结果。&lt;/p&gt;
&lt;p&gt;今天修rss订阅的bug的时候顺便迁移了一下博客的评论, 想到好久没输出一些观点了. 昨天看完了《献给阿尔吉侬的花束》, 前几天第二次看了《魔女宅急便》.&lt;/p&gt;
&lt;p&gt;在看完这些后还是很伤心的, 《魔女宅急便》里面的Jiji为了女朋友Lily选择变成普通的猫. 阿尔吉侬在思维能力下降后选择主动结束自己的生命.&lt;/p&gt;
&lt;p&gt;这对应着两种态度, 在哲学上，这种区别涉及关于自我认同/生命价值。一种观点是人的自我认同是一个动态的、不断变化的过程，而人们对生命的态度和选择往往受到他们对自己身份和意义的理解的影响。&lt;/p&gt;
&lt;p&gt;《献给阿尔吉侬的花束》的引言部分引用的就是柏拉图的&lt;strong&gt;洞穴寓言&lt;/strong&gt;, 洞穴是人体感官所能及的世界的化身，它代表了人类的处境。走出洞穴并看见太阳的过程，则代表灵魂从可视的世界，提升到“理念的境界”，即只有精神才可领会的世界。柏拉图以此表达了他的&lt;a href=&quot;https://zh.wikipedia.org/wiki/%E5%94%AF%E5%BF%83%E4%B8%BB%E7%BE%A9&quot;&gt;理念论&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;之前给我评论的老哥说的很好, 他认为生命的长度/存在的意义是密度. 这和我的观点有些不谋而合. 不管是美食/电影/游戏/运动, 一切你热爱, 你主动愿意为之花费时间的事物, 一定程度上就&lt;strong&gt;主观&lt;/strong&gt;延长了你的生命.&lt;/p&gt;
&lt;p&gt;话说回来, 在我的角度来看, 如果自我没有了真我只剩下了本我, 我或许也会像阿尔吉侬一样主动结束自己的生命. 站在Jiji的角度, 我虽然能理解他选择了自己的生活, 成为一只普通的猫, 但是电影中Kiki和Jiji无法沟通只发生在一个瞬间, 这是让我作为观众无法接受的--我理解为他在和别人短暂的接触后就放弃了自己的生活/选择融入了Lily的生活, 成为一只普通的猫(&lt;s&gt;如果你非要解释成这是Kiki心灵的成长我没话说&lt;/s&gt;).&lt;/p&gt;
&lt;p&gt;在很多的作品中我很喜欢关注没有主角重要但是在主角成长中起到关键作用的角色, 作品是否成功往往和他们有直接的联系. 现在几乎所有的爽文之所以称之为爽文, 是因为主角得到了和他当下情况完全不匹配的事物, 这无异于一个普通工人在搬了一天的砖后顺手买张彩票中了1个亿走向人生巅峰一样.&lt;/p&gt;
</content:encoded></item><item><title>Astro-blog记录(2) - 一些优化</title><link>https://blog.asyncx.top/posts/2024-03-13/</link><guid isPermaLink="true">https://blog.asyncx.top/posts/2024-03-13/</guid><description> </description><pubDate>Wed, 13 Mar 2024 11:03:00 GMT</pubDate><content:encoded>&lt;p&gt;上篇记录了一些关键模块的实现, 这篇博客大片贴一下实现代码.&lt;/p&gt;
&lt;h2&gt;目录(TOC)&lt;/h2&gt;
&lt;p&gt;在网上找的教程几乎所有都是用三方包实现的. 出去在任何端的浏览体验都不能差的目的, 我打算将目录嵌在文章中.(还是有背景好看一点)
&lt;img src=&quot;https://r2.asyncx.top/images/202403131125394.webp&quot; alt=&quot;&quot; /&gt;
不要忘了在&lt;code&gt;Layout.astro(你的文章默认布局页面)&lt;/code&gt;中调用:
&lt;img src=&quot;https://r2.asyncx.top/images/202403131127739.webp&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;可以参考的实现方法: https://gist.github.com/maciejpedzich/000da5c6b3a91290d49a91c9fe940ca3&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;如果你的文章默认布局页面没有调用&lt;code&gt;{headings}&lt;/code&gt;, 请你手动导出, 如果你的config没有传递&lt;code&gt;{headings}&lt;/code&gt;也无关紧要, 只要文章页可以在中途接收到即可. &lt;s&gt;这不是屎山! 我用这个方法让通用布局的所有模块可以自定义参数传递&lt;/s&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;主页遮罩&lt;/h2&gt;
&lt;p&gt;用&lt;code&gt;::before&lt;/code&gt;给主页覆盖了一个带有模糊的背景色图层, 打算将来添加一些背景/动效的时候可以提供一些层次感.&lt;/p&gt;
&lt;h2&gt;文章页面标签跳转&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://r2.asyncx.top/images/202403131215040.webp&quot; alt=&quot;&quot; /&gt;
&lt;img src=&quot;https://r2.asyncx.top/images/202403131215490.webp&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;博客页面字体&lt;/h2&gt;
&lt;p&gt;少数派刚好发布了一篇&lt;a href=&quot;https://sspai.com/bullet/1709630036&quot;&gt;你喜欢的自定义字体？&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;大家对&lt;code&gt;FutureMono&lt;/code&gt;的呼声比较高, 我就把code和blockquote的字体设置为FutureMono了
中文字体打算换成屏幕观感较好的字体, 一开始是打算换&lt;a href=&quot;https://source.typekit.com/source-han-serif/cn/&quot;&gt;思源宋体&lt;/a&gt;结果看到woff文件的大小竟然天杀的21MB, 果断换成2MB的Noto Serif.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;--font-family-base:
	&apos;noto-serif&apos;,
	&apos;FutureMono&apos;,
	ui-monospace,
	&apos;Chinese Quotes&apos;, &apos;Inter var&apos;, &apos;Inter&apos;, ui-sans-serif,
    system-ui, -apple-system, BlinkMacSystemFont, &apos;Segoe UI&apos;, Roboto,
    &apos;Helvetica Neue&apos;, Helvetica, Arial, &apos;Noto Sans&apos;, sans-serif,
    &apos;Apple Color Emoji&apos;, &apos;Segoe UI Emoji&apos;, &apos;Segoe UI Symbol&apos;, &apos;Noto Color Emoji&apos;;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;目前还没想好要不要正文字体的英文也用FutureMono, 用一段时间看看.&lt;/p&gt;
</content:encoded></item><item><title>Astro-blog记录(1) - 初步实现的需求</title><link>https://blog.asyncx.top/posts/2024-03-11/</link><guid isPermaLink="true">https://blog.asyncx.top/posts/2024-03-11/</guid><description> </description><pubDate>Mon, 11 Mar 2024 11:03:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;strong&gt;Astro&lt;/strong&gt; 是最适合构建像博客、营销网站、电子商务网站这样的&lt;strong&gt;以内容驱动的网站&lt;/strong&gt;的 Web 框架。Astro 以开创了一种新的&lt;a href=&quot;https://docs.astro.build/zh-cn/concepts/islands/&quot;&gt;前端架构&lt;/a&gt;而闻名，与其他框架相比它减少了 JavaScript 的开销和复杂性。如果你需要一个加载速度快、具有良好 SEO 的网站，那么 Astro 就是你的选择。&lt;/p&gt;
&lt;p&gt;在最开始用Astro的时候我其实没有考虑到为自己做一些功能. 只自己修改了一些样式和实现了一些和主题自带组件类似的功能.&lt;/p&gt;
&lt;p&gt;本篇用于记录实现所需功能的关键点.&lt;/p&gt;
&lt;h2&gt;组件&lt;/h2&gt;
&lt;h3&gt;群岛&lt;/h3&gt;
&lt;p&gt;Astro 开创并推广了一种叫做 &lt;strong&gt;群岛&lt;/strong&gt; 的前端架构。群岛架构通过帮助你避免单体 JavaScript 模式并自动从页面中剥离所有非必需的 JavaScript，从而实现了更好的前端性能。开发者在使用 Astro 的同时，仍然可以继续使用他们最喜欢的 UI 组件和框架，并且从中得到受益。
&lt;img src=&quot;https://r2.asyncx.top/images/202403111240418.webp&quot; alt=&quot;&quot; /&gt;
岛屿始终独立于页面上的其他岛屿运行，且一个页面上可以存在多个岛屿。尽管岛屿在不同的组件上下文中运行，它们仍然可以共享状态并相互通信。
例如我的博客主页&lt;code&gt;index.astro&lt;/code&gt;的&lt;code&gt;&amp;lt;body&amp;gt;&lt;/code&gt;部分由两个模块组成:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;Pin /&amp;gt;
&amp;lt;h3&amp;gt;
	{t(&quot;home.recent&quot;)}
&amp;lt;/h3&amp;gt;
&amp;lt;LatestBlogPosts /&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;其中的&lt;code&gt;&amp;lt;Pin /&amp;gt;&lt;/code&gt;和&lt;code&gt;&amp;lt;LatestBlogPosts /&amp;gt;&lt;/code&gt;就是两个岛屿.&lt;/p&gt;
&lt;h3&gt;getStaticPaths()&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;export async function getStaticPaths() {
	return [&quot;zh&quot;, &quot;en&quot;].map((lang) =&amp;gt; { //lang
		return { params: { lang } };
	});
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;上面的代码实现了双语言生成. Astro 是静态站点生成器。这意味着整个网站是预构建的。如果 Astro 不知道在构建时生成什么页面，你的用户在访问你的网站时就看不到它。因此你需要&lt;code&gt;getStaticPaths()&lt;/code&gt;函数来告诉Astro你的此页面位于什么路径. 需要注意的是如果你编写的是组件, 那么这个函数是不需要包含的.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;官方文档链接: https://docs.astro.build/zh-cn/reference/api-reference/#getstaticpaths&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Some Extension&lt;/h2&gt;
&lt;h3&gt;Google My Maps&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://r2.asyncx.top/images/202403111316138.webp&quot; alt=&quot;&quot; /&gt;
看到很多朋友的主页都有在记录自己的足迹, 我也打算添加, 但发现来自大陆境内的访问无法正常加载Google. 会让about页面有很大一部分空白. 用js监听下用户加载.
&lt;img src=&quot;https://r2.asyncx.top/images/202403111322117.webp&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;双评论(Twikoo/Giscus)&lt;/h3&gt;
&lt;p&gt;灵感来源于&lt;a href=&quot;https://zhuzi.dev/&quot;&gt;竹子&lt;/a&gt;(虽然相比于Twikoo我觉得Giscus更稳一点)
&lt;img src=&quot;https://r2.asyncx.top/images/202403111329046.gif&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;Pagefind&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;a href=&quot;https://pagefind.app/&quot;&gt;Pagefind&lt;/a&gt; is a fully static search library that aims to perform well on large sites, while using as little of your users’ bandwidth as possible, and without hosting any infrastructure.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;最开始时我就搞定了Pagefind的功能, 并没有打算实现tags功能. 后来觉得blog数量多了后, 需要为读者的扩展阅读提供一些便利,才实现了tags.&lt;/p&gt;
&lt;p&gt;为了适配blog的风格我把pagefind样式全部重写了. 搜索的效果和自带的分词还是很给力的. 当然Pagefind在你build的时候会根据页面的lang属性来自动进行i18n. 这对于多语言还是很有帮助的.
&lt;img src=&quot;https://r2.asyncx.top/images/202403111335852.webp&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;双Rss&lt;/h3&gt;
&lt;p&gt;我创建了&lt;code&gt;zh.xml.js&lt;/code&gt;和&lt;code&gt;en.xml.js&lt;/code&gt;两个rss源.(嘶...似乎透明背景的代码图片更好看)
&lt;img src=&quot;https://r2.asyncx.top/images/202403111339325.webp&quot; alt=&quot;&quot; /&gt;
分别过滤来自&lt;code&gt;blog/zh&lt;/code&gt;和&lt;code&gt;blog/en&lt;/code&gt;路径下的文章.&lt;/p&gt;
&lt;h3&gt;猪脑版本的简单友链管理页&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;// 根据语言选择友情链接数组
const selectedFriendLinks = lang === &apos;zh&apos; ? friendLinksZh : friendLinksEn;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;我在页面内创建了两个数组来存储中文和英文版本的友链. 这样后期的维护会更方便一些.&lt;/p&gt;
&lt;h3&gt;Opengraph&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;Open Graph通讯协定(Protocol)本身是一种制定一套Metatags的规格，用来标注你的页面，告诉我们你的网页代表哪一类型的现实世界物件。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;img src=&quot;https://r2.asyncx.top/images/202403111347112.webp&quot; alt=&quot;&quot; /&gt;
这样在一些IM软件和一些支持og协议的网页中发布你的博客链接, 它们就会获取到你网页的信息.
&lt;img src=&quot;https://r2.asyncx.top/images/202403061714293.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;一些可能有用的链接&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/rebecamurillo/astro-blog-i18n-starter&quot;&gt;astro-blog-i18n-starter&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=rFgM2zH6h4I&quot;&gt;astro-i18n套件&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://pagefind.app/docs/api/&quot;&gt;Pagefind&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.lirantal.com/blog/2023-01-01_-how_to_add_client-side_search_to_your_astro_blog_static_website&quot;&gt;如何使用 PageFind 将客户端搜索添加到 Astro 博客静态网站&lt;/a&gt;&lt;/p&gt;
</content:encoded></item><item><title>一个碎片般的短期规划</title><link>https://blog.asyncx.top/posts/2024-03-06/</link><guid isPermaLink="true">https://blog.asyncx.top/posts/2024-03-06/</guid><description> </description><pubDate>Wed, 06 Mar 2024 17:03:00 GMT</pubDate><content:encoded>&lt;p&gt;这段时间急性肠胃炎+咽喉炎. 完全没有办法静下心来复习PTE.
给博客添加了搜索标签的功能, 添加友链页面, 又画了一个&lt;code&gt;og:images&lt;/code&gt;.
只有这些心血来潮感兴趣的东西可以让我专心.
&lt;img src=&quot;https://r2.asyncx.top/images/202403061714293.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;TODO &lt;s&gt;FLAG&lt;/s&gt;&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;月底考过PTE&lt;/li&gt;
&lt;li&gt;了解更多魁北克生活&lt;/li&gt;
&lt;li&gt;健身锻炼&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;🙌CAQ一次成功!&lt;/p&gt;
</content:encoded></item><item><title>第三期-Notion指南</title><link>https://blog.asyncx.top/posts/2024-01-28/</link><guid isPermaLink="true">https://blog.asyncx.top/posts/2024-01-28/</guid><description>                                                  </description><pubDate>Wed, 24 Jan 2024 15:01:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img src=&quot;https://r2.asyncx.top/images/202401241736313.png&quot; alt=&quot;系统.drawio.png&quot; /&gt;
前些天短期目标阶段性胜利, 现在也没钱奖励自己电子设备了. 刚好在V站上发现大家都在&lt;a href=&quot;https://namesilo.com&quot;&gt;Namesilo&lt;/a&gt;上买域名, 想了想打算再部署一个邮箱, 就购入了一个我名字的域名. 一年2.49$.&lt;/p&gt;
&lt;p&gt;这段事情实在太多, 所以对多端同步网页收藏夹有了一些需求.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://r2.asyncx.top/images/202401301350311.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;我对这个收藏夹的需求是:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;(起码)读取网页标题, 方便编辑.&lt;/li&gt;
&lt;li&gt;可以根据设置的收藏夹类别进行分类.&lt;/li&gt;
&lt;li&gt;多端(即时)同步&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;我的应用场景是存放大量使用频率低但一旦使用就极多的内容:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;撰写项目时会用到一些网页工具格式化.&lt;/li&gt;
&lt;li&gt;一些在写博客/前端会用到的素材/工具.&lt;/li&gt;
&lt;li&gt;电子书/漫画论坛或网页.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;在了解了目前主流的剪藏工具后还是决定优先使用Notion.&lt;/p&gt;
&lt;h2&gt;用Notion+Web Clipper存储网页&lt;/h2&gt;
&lt;p&gt;解决方法灵感来源于: &lt;a href=&quot;https://sspai.com/post/72090&quot;&gt;我是如何用「Notion API」管理网站「收藏夹」的？&lt;/a&gt;, 方法是好方法, 维护也省心, 但是云端数据库我还是希望在有我自己的NAS后再使用.最后我选择Notion官方发布的&lt;a href=&quot;https://www.notion.so/web-clipper&quot;&gt;Notion Web Clipper&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://r2.asyncx.top/images/202401301400657.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;只需要将其安装到你的浏览器,并选择你要将网页存储到的Database就行.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://r2.asyncx.top/images/202401301415442.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;我手动添加了一个分类栏, 将收藏的网页打上多个tag, 需要的时候直接进行搜索即可.&lt;/p&gt;
&lt;h2&gt;进行订阅管理&lt;/h2&gt;
&lt;p&gt;最近使用Notion的确很多, 不如将一些生活类的应用场景给落地一下.学习了一下大家是怎么进行订阅管理的, 我打算用Notion的&lt;code&gt;Formula&lt;/code&gt;将其自动化一下.&lt;/p&gt;
&lt;p&gt;思路是:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;输入&lt;code&gt;订阅项&lt;/code&gt;的名称,&lt;code&gt;开始时间&lt;/code&gt;,&lt;code&gt;订阅的时长(月/季/年)&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;使用正则来匹配时长参与计算, 对于没有填写&lt;code&gt;到期日期&lt;/code&gt;的订阅项则,会在&lt;code&gt;剩余时长&lt;/code&gt;一栏自动输出&lt;code&gt;♻️自动续费&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src=&quot;https://r2.asyncx.top/images/202401301433674.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;目前打算增加的新功能是根据分类和网页收藏夹链接一下, 针对非自动续费的项目可以直接跳转到网页进行续费.&lt;/p&gt;
&lt;h2&gt;用Notion同步可视化微信读书&lt;/h2&gt;
&lt;p&gt;开源项目:&lt;a href=&quot;https://github.com/malinkang/weread2notion&quot;&gt;malinkang/weread2notion&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;我的微信读书: https://weread.asyncx.top
用CF的Workers代理了一下&lt;code&gt;notion.so&lt;/code&gt;并取消了右上角的一些按钮元素.
效果如图:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://r2.asyncx.top/images/202401241743852.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
</content:encoded></item><item><title>第二期-Vitepress配制指南</title><link>https://blog.asyncx.top/posts/2024-01-09/</link><guid isPermaLink="true">https://blog.asyncx.top/posts/2024-01-09/</guid><description>                                                  </description><pubDate>Tue, 09 Jan 2024 17:01:00 GMT</pubDate><content:encoded>&lt;h2&gt;前言&lt;/h2&gt;
&lt;p&gt;前段时间用Docsify感觉侧边栏的并不舒服，不想用md渲染html，但是没想到Vitepress的速度可以这么快。&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://lib.asyncx.top&quot;&gt;Library&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;安装&lt;/h2&gt;
&lt;p&gt;我的包管理本来打算用&lt;code&gt;npm + yarn&lt;/code&gt;（npm实在一言难尽），但在部署到Cloudflare上的时候出现了冲突。因此本指南统一使用npm部署到Cloudflare进行。如果你只想获得更多有用的配制，请转到：&lt;a href=&quot;#%E9%85%8D%E5%88%B6&quot;&gt;配制&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;前置准备&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://nodejs.org/&quot;&gt;Node.js&lt;/a&gt; 18 及以上版本。&lt;/li&gt;
&lt;li&gt;通过命令行界面 (CLI) 访问 VitePress 的终端。&lt;/li&gt;
&lt;li&gt;支持 &lt;a href=&quot;https://en.wikipedia.org/wiki/Markdown&quot;&gt;Markdown&lt;/a&gt; 语法的编辑器。
&lt;ul&gt;
&lt;li&gt;推荐 &lt;a href=&quot;https://code.visualstudio.com/&quot;&gt;VSCode&lt;/a&gt; 及其&lt;a href=&quot;https://marketplace.visualstudio.com/items?itemName=Vue.volar&quot;&gt;官方 Vue 扩展&lt;/a&gt;。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code&gt;npm add -D vitepress
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;安装向导&lt;/h3&gt;
&lt;p&gt;VitePress 附带一个命令行设置向导，可以帮助你构建一个基本项目。安装后，通过运行以下命令启动向导：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;npx vitepress init
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;默认如下，注意&lt;code&gt;./docs&lt;/code&gt;和&lt;code&gt;Default Theme + Customization&lt;/code&gt;为后续的默认配制.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;┌  Welcome to VitePress!
│
◇  Where should VitePress initialize the config?
│  ./docs
│
◇  Site title:
│  My Awesome Project
│
◇  Site description:
│  A VitePress Site
│
◆  Theme:
│  ● Default Theme (Out of the box, good-looking docs)
│  ○ Default Theme + Customization
│  ○ Custom Theme
└
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;一切顺利的话运行&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;npm run docs:dev
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;即可在本地的&lt;code&gt;http://localhost:5173&lt;/code&gt;看到网页。&lt;/p&gt;
&lt;h2&gt;部署到Cloudflare&lt;/h2&gt;
&lt;p&gt;在官方的配制教程里是简单带过的：&lt;/p&gt;
&lt;p&gt;Netlify / Vercel / Cloudflare Pages / AWS Amplify / Render&lt;a href=&quot;https://vitepress.dev/zh/guide/deploy#netlify-vercel-cloudflare-pages-aws-amplify-render&quot;&gt;​&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;使用仪表板创建新项目并更改这些设置：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;构建命令：&lt;/strong&gt; &lt;code&gt;npm run docs:build&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;输出目录：&lt;/strong&gt; &lt;code&gt;docs/.vitepress/dist&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;node 版本：&lt;/strong&gt; &lt;code&gt;18&lt;/code&gt; (或更高版本)
这里详细说一下用Cloudflare的Pages部署
构建命令依旧，构建输出目录依旧，我在手动为环境变量添加&lt;code&gt;NODE_VERSION=18.0&lt;/code&gt;的时候部署失败了。因此建议在本地Vitepress项目文件夹根目录创建&lt;code&gt;.nvmrc&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code&gt;18.17.0
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;之后进行构建即可。&lt;/p&gt;
&lt;p&gt;:::danger
你需要关闭Cloudflare的网页压缩加速功能！不然会删掉部分的Vue格式导致文件加载异常！
:::&lt;/p&gt;
&lt;h2&gt;配制&lt;/h2&gt;
&lt;h3&gt;为主页标题添加彩色字&lt;/h3&gt;
&lt;p&gt;前文的创建中我的建议是自定义部分css。
编辑&lt;code&gt;.vitepress/theme/style.css&lt;/code&gt;的&lt;code&gt;line: 473/474&lt;/code&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;:root {
--vp-home-hero-name-color: transparent;
--vp-home-hero-name-background: -webkit-linear-gradient(120deg, #53ffe2, #9d25d9); 
--vp-home-hero-image-background-image: none;
--vp-home-hero-image-filter: none;
}
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;为Vitepress添加自动侧边栏&lt;/h3&gt;
&lt;p&gt;Github: &lt;a href=&quot;https://github.com/jooy2/vitepress-sidebar&quot;&gt;vitepress-sidebar&lt;/a&gt;&lt;/p&gt;
&lt;h4&gt;安装&lt;/h4&gt;
&lt;pre&gt;&lt;code&gt;npm i -D vitepress-sidebar
npm i -D vitepress-sidebar
&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;配制&lt;/h4&gt;
&lt;p&gt;修改&lt;code&gt;.vitepress/config.js&lt;/code&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sidebar: 
sidebar: generateSidebar({ //自动sidebar
	text: &apos;Guide&apos;,
	items: [
		{ text: &apos;Introduction&apos;, link: &apos;/introduction&apos; },
		{ text: &apos;Getting Started&apos;, link: &apos;/getting-started&apos; }
	]
	collapsed: true, //自动折叠
	documentRootPath: &apos;/docs&apos;, //自动读取根目录
	useTitleFromFrontmatter: true, //读取fontmatter的标题属性,如果没有使用文件名
})
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;重新运行&lt;code&gt;npm run docs:dev&lt;/code&gt;后你就会发现侧边栏已自动更新.&lt;/p&gt;
</content:encoded></item><item><title>使用MCSManager搭建泰拉瑞亚服务器</title><link>https://blog.asyncx.top/posts/2023-12-29/</link><guid isPermaLink="true">https://blog.asyncx.top/posts/2023-12-29/</guid><description>                                                  </description><pubDate>Fri, 29 Dec 2023 14:12:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;MCSManager的作用更类似于持久化部署游戏(Terraria/Minecraft)服务器, 如果你仅仅用来搭建泰拉瑞亚服务器可以考虑不使用MCSManager.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;运行环境&lt;/h2&gt;
&lt;p&gt;系统: CentOS 7.9.2009 x86_64&lt;/p&gt;
&lt;p&gt;所需程序:
1. &lt;a href=&quot;https://docs.mcsmanager.com/#/zh-cn/README&quot;&gt;MCSManager&lt;/a&gt;
2. &lt;a href=&quot;https://terraria.fandom.com/wiki/Server#Downloads&quot;&gt;Terraria服务器端&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;安装MCSManager&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;wget -qO- https://gitee.com/mcsmanager/script/raw/master/setup_cn.sh | bash
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;下面是常用的几个命令：
启动面板 systemctl start mcsm-{daemon,web}.service
停止面板 systemctl stop mcsm-{daemon,web}.service
重启面板 systemctl restart mcsm-{daemon,web}.service
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;关于面板的详情可以在MCSManager的&lt;a href=&quot;https://docs.mcsmanager.com/#/zh-cn/README&quot;&gt;文档&lt;/a&gt;中查看.&lt;/p&gt;
&lt;h2&gt;下载Terraria服务器端&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://terraria.fandom.com/wiki/Server#Downloads&quot;&gt;Terraria服务器端&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;这里我选择了最新版安装&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://r2.asyncx.top/images/202312291443894.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;下载好后进行解压. 将&lt;code&gt;Linux&lt;/code&gt;目录下的内容放到服务器中的同一目录下.&lt;/p&gt;
&lt;p&gt;进入终端运行&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;./TerrariaServer.bin.x86_64
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;如果你想在&lt;code&gt;MCSManager&lt;/code&gt;中进行所有操作, 将&lt;code&gt;Linux&lt;/code&gt;目录下的内容放到服务器中的同一目录下后在&lt;code&gt;控制面板 / 实例配置详情&lt;/code&gt;中修改实例类型为&lt;code&gt;控制台程序(通用)&lt;/code&gt;,并将命令修改成上述指令.如图&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://r2.asyncx.top/images/202312291449381.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;修改完成后返回控制台开启实例即可.&lt;/p&gt;
&lt;p&gt;后续会按照:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;创建世界-选择世界/世界大小/世界难度/世界污染/世界名称/世界种子&lt;/li&gt;
&lt;li&gt;服务器选项-选择世界/最大人数/端口号(默认7777即可)/自动转发端口(n即可)/设置密码&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;的步骤进行创建,在出现&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;listening on port xxxx
type &apos;help&apos; for a list of commands.
:server started
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;后就说明服务器正常运行了.&lt;/p&gt;
&lt;p&gt;enjoy your game!&lt;/p&gt;
</content:encoded></item><item><title>额外技能-如何穿手串</title><link>https://blog.asyncx.top/posts/2023-12-20/</link><guid isPermaLink="true">https://blog.asyncx.top/posts/2023-12-20/</guid><description>                                                  </description><pubDate>Wed, 20 Dec 2023 10:12:00 GMT</pubDate><content:encoded>&lt;p&gt;最近在忙一些其他事,忙完这一段打算集中更新一下博客.&lt;/p&gt;
&lt;p&gt;顺手开了个&lt;code&gt;Docsify&lt;/code&gt;用来归档文字性的内容:&lt;a href=&quot;https://doc.asyncx.top&quot;&gt;Homepage&lt;/a&gt;以及用&lt;code&gt;Cloudflare Page&lt;/code&gt;备份了一下&lt;a href=&quot;https://blog.asyncx.top&quot;&gt;博客&lt;/a&gt;目前测速来说还是&lt;code&gt;Githubpages&lt;/code&gt;更快.&lt;/p&gt;
&lt;p&gt;买了串小叶紫檀,又买了个单颗漆珠打算串在一起,想了想我认为这样串双线的会好一点:
&lt;img src=&quot;https://r2.asyncx.top/images/202312201056546.png&quot; alt=&quot;&quot; /&gt;
先将想串的线穿过一侧的双线内部,再将想串的珠子串过新线
&lt;img src=&quot;https://r2.asyncx.top/images/202312201057785.png&quot; alt=&quot;&quot; /&gt;
然后剪开老线,将一颗颗珠子推过去
&lt;img src=&quot;https://r2.asyncx.top/images/202312201058729.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;这样的优点是不用穿珠子孔,缺点是如果你有珠子掉出线外就没有办法很方便的继续串了.&lt;/p&gt;
&lt;p&gt;我在系结的时候发现珠子孔径小到没办法让结穿过去,于是我又打算从塑线换成丝线.但是塑线的弹性并不高,在取珠子的时候滑掉了3颗,家里也没有勾线的.&lt;/p&gt;
&lt;p&gt;上网查了一下大家如何穿线,发现勾线可以用铁丝. 灵机一动,剥了一个给吐司面包封口的铁线
&lt;img src=&quot;https://r2.asyncx.top/images/202312201102617.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;出院!
&lt;img src=&quot;https://r2.asyncx.top/images/202312201104773.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
</content:encoded></item><item><title>[更新]首考PTE的一些问题/快速入门</title><link>https://blog.asyncx.top/posts/2023-10-25/</link><guid isPermaLink="true">https://blog.asyncx.top/posts/2023-10-25/</guid><description>                                                  </description><pubDate>Wed, 29 Nov 2023 12:09:00 GMT</pubDate><content:encoded>&lt;p&gt;昨天首考了PTE,算是对自己学习的一个记录,写个博客记录一下备考期间遇到的问题.&lt;/p&gt;
&lt;h1&gt;背景和总结&lt;/h1&gt;
&lt;p&gt;雅思首考5.5,参考网上的提分对比图
&lt;img src=&quot;https://r2.asyncx.top/images/202310251559599.png&quot; alt=&quot;&quot; /&gt;
如果我想要达到6.5需要1~2月,而且口语方面是很难在短时间有一个很大的突破的.第一次考雅思的确有一些不好的回忆,我朋友考了3次雅思3次PTE才达到需要的分数.综上,在问了一下朋友和做了一些攻略的背景下我直接选择转考PTE.
PTE和IELTS相比,在我自己看来差距体现在:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;机考内容更好掌握一点&lt;/li&gt;
&lt;li&gt;题库内容固定--可以从猩际/多墨/萤火虫/羊驼等app和网站获取到题库&lt;/li&gt;
&lt;li&gt;相比雅思收益更大
为什么说收益更大,在我的认知里雅思是付出不一定会得到与之匹配的回报的.最大的因素就是口语.即使它有题库.&lt;/li&gt;
&lt;/ol&gt;
&lt;h1&gt;初期准备&lt;/h1&gt;
&lt;p&gt;上网了解各种题型,这里我也自己总结了一下
&lt;img src=&quot;https://r2.asyncx.top/images/202404150935749.webp&quot; alt=&quot;题型详情&quot; /&gt;
初期准备就完全在这一个图里,你需要重点关注的题型和目标分数需要达到的正确率,没有打水印,好自为之.&lt;/p&gt;
&lt;h1&gt;复习过程&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;2023.11.29更新&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;备考时间&lt;/h2&gt;
&lt;p&gt;从考完雅思到考PTE时间大概在1个月,有效学习时间大概是半个月,平均每天3,4h左右.&lt;/p&gt;
&lt;h2&gt;前/中/后期的时间安排&lt;/h2&gt;
&lt;p&gt;PTE是一个题库组成的考试,这代表了少新题,题库抽题,周期性换WFD的情况.我的各期安排(有不合理的地方,我会说明)&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;前期-RA/RS/WFD
中期-RA/FIB/WFD
后期-RA/DI/WFD/WE/RL
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;不合理的地方:DI和RL这些听力口语项应该从前期就开始.&lt;/p&gt;
&lt;p&gt;前期打印出WFD读,默写和标注生词,朗读RA,RS.这里建议大家自己从网上学习一下时间规划,我只提一点:无论如何每天都要坚持RS和DI.&lt;/p&gt;
&lt;p&gt;RA前期力求达到70+,后期有点疲于练习了,就在考前三天才开始读.&lt;/p&gt;
&lt;p&gt;DI和RL的模板一定要读熟!建议你在生活中看到什么景的时候就下意识的开始想如果这是DI你要怎么说,这也是可以随时开始练习的原因.&lt;/p&gt;
&lt;p&gt;我本人听力是比较好的,SST和RS没有怎么练习.&lt;/p&gt;
&lt;h1&gt;用到的工具&lt;/h1&gt;
&lt;ol&gt;
&lt;li&gt;使用萤火虫+iPad(MarginNote3)练习WFD.这是我意想不到最方便的,也是我最满意的.&lt;/li&gt;
&lt;li&gt;使用多墨练习FIB&lt;/li&gt;
&lt;li&gt;使用猩际练习RA,RS.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;如何准备WFD&lt;/h2&gt;
&lt;h3&gt;PDF获取&lt;/h3&gt;
&lt;p&gt;加萤火虫的客服微信.去朋友圈找周预测pdf,然后打印下来WFD部分(每周三打印最新版)&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;跟着整体听两边了解语速和句式.&lt;/li&gt;
&lt;li&gt;尽快开始盲写,关于盲写:
&lt;ol&gt;
&lt;li&gt;听WFD音频,用电脑/平板打首字母,然后根据印象补全&lt;/li&gt;
&lt;li&gt;最多听三遍,标注难点生词(我是4个不同的荧光笔区分难度,分层次背)&lt;/li&gt;
&lt;li&gt;每周至少2轮&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;进行记忆性标注的背诵&lt;/h3&gt;
&lt;p&gt;Marginnote3对PDF的支持很好,我用了4个颜色来区分200多条WFD.绿/黄/蓝/红.&lt;/p&gt;
&lt;p&gt;绿色-听一次能听懂,很简单不用背诵的句子&lt;/p&gt;
&lt;p&gt;黄色-听一次能听懂,有发音拗口的单词不能即时想起来的句子.&lt;/p&gt;
&lt;p&gt;蓝色-没法一次顺下来/多个单词不懂,需要背诵的句子&lt;/p&gt;
&lt;p&gt;红色-长难句,需要背诵&lt;/p&gt;
&lt;p&gt;当你熟悉了某个句子,你可以根据颜色灵活调节.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;因为萤火虫的PDF是周为单位进行更新,是否意味着每周都要重新在新的PDF中标注分类200多条WFD?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;并不是,如果你保留了你在上周自己手打默写的WFD,那么你就可以对照每周的变化表实时更新你的WFD的文档.这就是我用Marginnote的好处,PDF老了我在思维导图中按照颜色新增即可.&lt;/p&gt;
&lt;p&gt;这样每周至少2轮,如果你的备考周期是一个月,那么你就至少过了8轮WFD.&lt;/p&gt;
&lt;h1&gt;考试当日&lt;/h1&gt;
&lt;ol&gt;
&lt;li&gt;考点是苏州,实话实说设备质量堪忧.薄膜键盘有点老化,回弹很慢,输入内容到屏幕上也是有一点延迟.口语期间大家的声音很大,本来说是要发耳塞的但是不知道怎么回事没给我发,就没法像网上说的那样带耳塞再带耳机.&lt;/li&gt;
&lt;li&gt;我是吃饭前就去考场看了一下,吃饭后提前1h再去和考场人员聊了会天,直接选了网上说的没有踩雷的号(1箱1机位,号码一致).&lt;/li&gt;
&lt;li&gt;我的考试时间大概在100min,检查完就下一道(算是坏习惯,一直掌握不好时间,第一个出考场.)&lt;/li&gt;
&lt;li&gt;15:40考完17:35收到邮件
&lt;img src=&quot;https://r2.asyncx.top/images/202310251656391.png&quot; alt=&quot;&quot; /&gt;&lt;/li&gt;
&lt;/ol&gt;
</content:encoded></item><item><title>重构博客,底层换成Astro时候遇到的问题</title><link>https://blog.asyncx.top/posts/2023-11-09/</link><guid isPermaLink="true">https://blog.asyncx.top/posts/2023-11-09/</guid><description>                                                  </description><pubDate>Thu, 09 Nov 2023 11:11:00 GMT</pubDate><content:encoded>&lt;p&gt;前些天用Cloudflare加速了Hexo,瞄了一眼博客&lt;code&gt;&amp;lt;foot&amp;gt;&lt;/code&gt;下面的busuanzi计数.
每次页面刷新都会被读取并进行一次访客录入着实烦人,于是打算趁着有兴趣把博客重构了.&lt;/p&gt;
&lt;h1&gt;安装Astro&lt;/h1&gt;
&lt;h2&gt;前提&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Node.js - v18.14.1 或更高版本。&lt;/li&gt;
&lt;li&gt;包管理我使用了&lt;code&gt;Yarn&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code&gt;# 使用yarn创建astro项目(如果你打算搭建博客,请跳过此步骤)
yarn create astro
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;你可以在计算机上的任何位置运行 &lt;code&gt;create astro&lt;/code&gt;，因此在开始之前无需为你的项目创建一个新的空目录。 如果你的新项目还没有空目录，该向导会帮你自动创建一个。&lt;/p&gt;
&lt;h2&gt;配制&lt;/h2&gt;
&lt;p&gt;由于我打算使用iCloud进行同步,所以我创建了文件夹,在文件架内的根目录进行了构建.
&lt;strong&gt;如果你打算用来搭建博客,请使用下面的指令直接复制博客模板&lt;/strong&gt;,你可以在&lt;a href=&quot;https://astro.build/themes/?search=&amp;amp;types%5B%5D=blog&quot;&gt;Astro官网&lt;/a&gt;找到你想要的模板&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# 基于某个 GitHub 仓库的 main 分支创建一个新项目
yarn create astro --template &amp;lt;github-username&amp;gt;/&amp;lt;github-repo&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;h1&gt;部署Astro&lt;/h1&gt;
&lt;h2&gt;Github Pages&lt;/h2&gt;
&lt;p&gt;需要注意的是,不同于hexo需要进行以下指令&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;hexo clean #清空生成文件
hexo g #生成静态页面
hexo s #进行预览
hexo d #进行推送
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Astro会实时的根据你的修改进行刷新,因此部署方式会和hexo不同,你可以&lt;a href=&quot;https://docs.astro.build/zh-cn/guides/deploy/&quot;&gt;参照官网的部署方式&lt;/a&gt;进行部署.本文使用Github Pages进行部署,因此会提及部署中出现的问题.
根据官网所述,创建好库后使用&lt;code&gt;Actions&lt;/code&gt;进行推送,这意味着你需要为库本身开启Github Pages,如果之前你在你的&lt;code&gt;name.github.io&lt;/code&gt;库中撰写博客,你需要停用掉io库的pages.&lt;/p&gt;
&lt;h1&gt;额外配制&lt;/h1&gt;
&lt;h2&gt;添加Google Analytics&lt;/h2&gt;
&lt;h3&gt;安装Partytown&lt;/h3&gt;
&lt;p&gt;大部分的主题中都没有安装谷歌分析的包,你可以通过官网所提供的&lt;a href=&quot;https://docs.astro.build/zh-cn/guides/integrations-guide/partytown/&quot;&gt;partytown&lt;/a&gt;进行进一步安装.
打开&lt;code&gt;astro.config.js&lt;/code&gt;,添加&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;import { defineConfig } from &quot;astro/config&quot;;
import partytown from &quot;@astrojs/partytown&quot;;

export default defineConfig({
  integrations: [
    partytown({
      // 为partytown添加下面的内容即可
      config: {
        forward: [&quot;dataLayer.push&quot;],
      },
    }),
  ],
});

&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;添加到head&lt;/h3&gt;
&lt;p&gt;将 Google Analytics 跟踪代码嵌入到布局文件中。&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html lang=&quot;zh&quot;&amp;gt;
    &amp;lt;head prefix=&quot;og: https://ogp.me/ns#&quot;&amp;gt;
        &amp;lt;!-- Google tag (gtag.js) --&amp;gt;
        &amp;lt;script type=&quot;text/partytown&quot; src=&quot;https://www.googletagmanager.com/gtag/js?id=GA_MEASUREMENT_ID&quot;&amp;gt;&amp;lt;/script&amp;gt;
        &amp;lt;script type=&quot;text/partytown&quot;&amp;gt;
            window.dataLayer = window.dataLayer || [];
            function gtag() {
                dataLayer.push(arguments);
            }
            gtag(&apos;js&apos;, new Date());
            gtag(&apos;config&apos;, &apos;GA_MEASUREMENT_ID&apos;);
        &amp;lt;/script&amp;gt;
    &amp;lt;/head&amp;gt;
    &amp;lt;body&amp;gt;
        &amp;lt;slot /&amp;gt;
    &amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;记得修改成你的分析代码.&lt;/p&gt;
&lt;h2&gt;添加giscus作为评论&lt;/h2&gt;
&lt;p&gt;我本来想要使用原先的&lt;code&gt;utterances&lt;/code&gt;作为评论系统,不幸的是不知道什么原因导致的不能成功加载,就更换了&lt;a href=&quot;https://giscus.app/zh-CN&quot;&gt;giscus&lt;/a&gt;.你可以点击链接进行进一步配制.傻瓜配置.&lt;/p&gt;
</content:encoded></item><item><title>熵,生命</title><link>https://blog.asyncx.top/posts/2023-11-03/</link><guid isPermaLink="true">https://blog.asyncx.top/posts/2023-11-03/</guid><description>                                                                                                                                     </description><pubDate>Fri, 03 Nov 2023 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;万神殿的第二季的结尾我没想到可以如此跨度。这部动画改编自刘宇昆的小说《奇点移民》中的几个短篇，不过相差甚远，可以当作新故事看。动画中智能（不能称之为人工了）对人类的描述是这样的：
&lt;img src=&quot;https://r2.asyncx.top/images/202311031314446.png&quot; alt=&quot;&quot; /&gt;
&lt;code&gt;Low-entropy&lt;/code&gt;低熵,通常表示一种相对较高的信息含量或不确定性。&lt;/p&gt;
&lt;p&gt;熵是一个衡量信息的量化指标，它用来表示一个随机变量或一组数据的不确定性程度。具体来说：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;高熵：表示信息的不确定性较高，也就是说，有更多的信息或者更多的随机性。例如，一个具有高熵的随机数序列，每个数字都是随机的，没有明显的模式，因此包含了大量的信息。&lt;/li&gt;
&lt;li&gt;低熵：表示信息的不确定性较低，也就是说，有更少的信息或者更多的可预测性。例如，一个包含大量重复的模式的序列具有低熵，因为你可以根据先前的数据来预测接下来的数据。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;低熵通常与&lt;strong&gt;高度有序、可预测的情况相关&lt;/strong&gt;，而高熵通常与随机性和不可预测性相关。这些概念在信息理论、数据压缩、密码学等领域具有重要的应用。
在2016年和2017年人们和AlphaGo下棋的时候,有这样一段描述.&lt;/p&gt;
&lt;p&gt;No.1 未使用人类棋谱训练的AlphaGo.
No.2 使用人类棋谱训练的AlphaGo.
No.3 人类所能达到的围棋水平高度.&lt;/p&gt;
&lt;p&gt;GPT是这样回答的:
人类的可预测性相对较强（低熵）是因为人类行为和决策通常受到一系列模式、规则、社会文化、道德准则和经验的影响。这些因素使得人类的行为更容易预测，相对于完全随机的过程，人类行为有更低的熵。
以下是一些原因：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;社会和文化影响：人们生活在社会和文化体系中，这些体系规范了他们的行为和决策。社会习惯、价值观、法律、道德准则等都对人类行为产生影响，使得人们更倾向于遵循一定的规则和模式。&lt;/li&gt;
&lt;li&gt;学习和经验：人们通过学习和经验积累知识，从中获得对不同情境的理解。这些知识和经验使人们更有能力做出更明智的决策和更好的预测，因为他们可以基于以往的经验来解决问题。&lt;/li&gt;
&lt;li&gt;自我控制和目标导向：大多数人类行为是目标导向的，人们通常会追求某种形式的目标或利益。这种目标导向性使得人们更容易预测，因为他们会采取行动来实现他们的目标。&lt;/li&gt;
&lt;/ol&gt;
&lt;hr /&gt;
&lt;p&gt;熵与生命起源和进化之间的关系研究始于20世纪初。1910年，美国历史学家亨利·亚当斯印刷并向大学图书馆和历史学教授分发了小册子《致美国历史教师的一封信》[^1]，提出了一种基于热力学第二定律和熵原理的历史理论。&lt;/p&gt;
&lt;p&gt;1944年出版的书《生命是什么？[^2]》的作者，诺贝尔奖获得者物理学家欧文·薛定谔的研究刺激了该领域的进一步研究。薛定谔在他的书中最初指出，生命以负熵为食，有时也称为负熵，但在后来的版本中，他根据抱怨纠正了自己，并指出真正的来源是自由能。最近的工作将讨论限制在吉布斯自由能上，因为地球上的生物过程通常发生在恒定的温度和压力下，例如在大气中或在海洋底部，但对于个体生物体而言，不会在短时间内跨越这两种情况。&lt;/p&gt;
&lt;p&gt;2013年，阿苏阿-布斯托斯和维加认为，无论地球上还是宇宙其他地方可能存在的生命形式类型，所有生命形式都应该具有这样的共同属性：以牺牲从生命体中获得的自由能为代价来降低其内部熵。周围环境。由于熵可以量化系统中的无序程度，因此任何设想的生命形式都必须比其直接支持环境具有更高程度的有序性。[^3]这里我的理解是环境内迭代导致的有序性和可预测性。
关于熵和生物体之间关系的想法激发了许多背景下的假设和推测，包括心理学、信息论、生命起源和外星生命的可能性,感兴趣的读者可以自主了解。&lt;/p&gt;
&lt;p&gt;[^1]: Adams, Henry. (1910). A Letter to American Teachers of History. &lt;a href=&quot;https://books.google.com/books?id=gaLdOOzuiKAC&amp;amp;pg=PA1&amp;amp;dq=A+Letter+to+American+Teachers+of+History#PPA10,M1&quot;&gt;Google Books&lt;/a&gt;, &lt;a href=&quot;https://archive.org/details/alettertoamerica00adamuoft&quot;&gt;Scanned PDF&lt;/a&gt;. Washington.
[^2]: Erwin Schrödinger (1944), What Is Life? and Other Scientific Essays https://archive.org/details/whatislifeothers00schr
[^3]: Vega-Martínez, Cristian; Azua-Bustos, Armando (2013). &quot;The potential for detecting &apos;life as we don&apos;t know it&apos; by fractal complexity analysis&quot;. &lt;em&gt;International Journal of Astrobiology&lt;/em&gt;. &lt;strong&gt;12&lt;/strong&gt; (4): 314–320. &lt;a href=&quot;https://en.wikipedia.org/wiki/Bibcode_(identifier)&quot;&gt;Bibcode&lt;/a&gt;:&lt;a href=&quot;https://ui.adsabs.harvard.edu/abs/2013IJAsB..12..314A&quot;&gt;2013IJAsB..12..314A&lt;/a&gt;. &lt;a href=&quot;https://en.wikipedia.org/wiki/Doi_(identifier)&quot;&gt;doi&lt;/a&gt;:&lt;a href=&quot;https://doi.org/10.1017%2FS1473550413000177&quot;&gt;10.1017/S1473550413000177&lt;/a&gt;. &lt;a href=&quot;https://en.wikipedia.org/wiki/Hdl_(identifier)&quot;&gt;hdl&lt;/a&gt;:&lt;a href=&quot;https://hdl.handle.net/10533%2F131814&quot;&gt;10533/131814&lt;/a&gt;. &lt;a href=&quot;https://en.wikipedia.org/wiki/ISSN_(identifier)&quot;&gt;ISSN&lt;/a&gt; &lt;a href=&quot;https://www.worldcat.org/issn/1475-3006&quot;&gt;1475-3006&lt;/a&gt;. &lt;a href=&quot;https://en.wikipedia.org/wiki/S2CID_(identifier)&quot;&gt;S2CID&lt;/a&gt; &lt;a href=&quot;https://api.semanticscholar.org/CorpusID:122793675&quot;&gt;122793675&lt;/a&gt;.&lt;/p&gt;
</content:encoded></item><item><title>如何使用Mac玩双人成行</title><link>https://blog.asyncx.top/posts/2023-11-02/</link><guid isPermaLink="true">https://blog.asyncx.top/posts/2023-11-02/</guid><description>                                                  </description><pubDate>Thu, 02 Nov 2023 19:11:00 GMT</pubDate><content:encoded>&lt;h1&gt;运行环境&lt;/h1&gt;
&lt;ol&gt;
&lt;li&gt;采用 Macbook Pro M1 Sonoma&lt;/li&gt;
&lt;li&gt;运行最新版本的 Crossover&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://haxmac.cc/crossover-mac/&quot;&gt;外置硬盘&lt;/a&gt;上存储着 Crossover 的&quot;容器&quot;（Bottle）。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;下载和破解&lt;/h2&gt;
&lt;p&gt;首先，下载 &lt;a href=&quot;https://haxmac.cc/crossover-mac/&quot;&gt;Crossover&lt;/a&gt; 并按照额外文件夹中的教程完成破解步骤。&lt;/p&gt;
&lt;h2&gt;安装 Steam&lt;/h2&gt;
&lt;p&gt;在 Crossover 中，点击左下角的“安装”按钮，然后选择安装 Steam。安装过程如下图所示：
&lt;img src=&quot;https://r2.asyncx.top/images/202311021949146.png&quot; alt=&quot;安装Steam&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;安装双人成行&lt;/h2&gt;
&lt;p&gt;等待下载完成后，EA 客户端将自动安装在 Crossover 容器中。&lt;/p&gt;
&lt;h2&gt;安装 EA&lt;/h2&gt;
&lt;p&gt;如果在之前的步骤中安装 EA 失败，无法启动等问题，只需点击“安装”按钮，然后搜索“EA app” 进行二次安装，如下图所示：
&lt;img src=&quot;https://r2.asyncx.top/images/202311021952686.png&quot; alt=&quot;安装EA&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;(可选)将游戏存储在外置SSD中&lt;/h2&gt;
&lt;p&gt;默认情况下，Crossover Mac 和 Crossover Games Mac 会在 &quot;/Users/(用户名)/Library/Application Support/Crossover (Games)/Bottles&quot; 目录中查找容器。你可以更改 Crossover 查找容器的位置，并将其设置在新位置。要实现这一点，请按以下步骤进行：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;首先，打开 &lt;code&gt;~/Library/Application Support/CrossOver/Bottles&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;将你之前下载的 Steam 容器复制并粘贴到你的目标路径中。&lt;/li&gt;
&lt;li&gt;接下来，打开终端并输入以下命令：&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;&lt;code&gt;defaults write com.codeweavers.CrossOver BottleDir &amp;lt;path&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;code&gt;&amp;lt;path&amp;gt;&lt;/code&gt; 是你希望 Crossover 搜索的新目录位置。从 Finder 中拖拽文件夹是自动输入文件夹路径的便捷方法。
4. 重启 Crossover 后，即可使用新的容器目录。&lt;/p&gt;
&lt;h1&gt;安装中遇到的问题&lt;/h1&gt;
&lt;ol&gt;
&lt;li&gt;下载双人成行到验证资源时卡在 44.6GB/44.8GB 时降速。
请将 Steam 下载地区设置为中亚并清空下载缓存，然后重新下载。&lt;/li&gt;
&lt;li&gt;启动失败。
启动时间可能较长，最好在启动时不进行其他电脑操作。&lt;/li&gt;
&lt;li&gt;在双人游戏时，有一方的手柄无法使用。
你可以尝试在蓝牙设置中断开并忽略无法使用的手柄，然后重新连接蓝牙设备。&lt;/li&gt;
&lt;/ol&gt;
</content:encoded></item><item><title>什么在阻止我们走向主观来说更好的生活？</title><link>https://blog.asyncx.top/posts/2023-09-23/</link><guid isPermaLink="true">https://blog.asyncx.top/posts/2023-09-23/</guid><description>                                                  </description><pubDate>Sat, 23 Sep 2023 23:05:00 GMT</pubDate><content:encoded>&lt;p&gt;这个博客创建于2023年5月23日，我在哲学类的订阅中偶然看到了关于&quot;自我&quot;的主题。而今天，正值我的大学百年校庆，我和一些舍友相聚，谈论各种话题，尽管有些话题看似无关紧要，但我决定将其重新梳理并更新博客。&lt;/p&gt;
&lt;p&gt;我的室友们正在面临情感问题，类似于“如果你遇到更合适的异性，是否应该离开现有的伴侣？”我的另一位室友对我说：“我们现在是旁观者，当真正面对这种情况时，可能会感到更加困惑。” 这让我开始反思，意识到我在思考问题时将自己的观念带入其中。这也使我明白了为什么辩论赛存在，之前我一直认为辩论赛的目的是讨论某一事物的两面性。我曾坚信在结束一段感情之前开始新的感情是不道德的，这是出于生理和心理的拒绝，但我的室友们却持不同观点。我向他们提出了以下几个问题：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;你从恋爱关系中期待什么？&lt;/li&gt;
&lt;li&gt;你认为这样做是否正确？如果不正确，为什么要坚持？&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;五月底的时候，我曾认为一个人的一生长度应该是相等的，因此形成的个体观念和技能总量应该是大致相同的。然而，现在看来，我提出的问题似乎过于简单，更准确的问题应该是：是什么影响了人的观念？这个问题同样看似简单：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;个人兴趣和倾向：每个人的兴趣和倾向各不相同，这直接影响了他们选择探索的领域和知识范围。有些人对多个领域都有浓厚的兴趣，他们渴望不断探索和学习新事物。而其他人可能对某个特定领域或主题有深刻的兴趣，因此选择在该领域专注深入。&lt;/li&gt;
&lt;li&gt;时间和资源限制：人们的时间和资源是有限的。广泛涉猎需要花费大量时间和精力来学习和探索不同领域，对许多人来说可能是一项挑战。相比之下，专注于特定领域可能更容易获得深入的知识。因此，个人的时间和资源限制可能导致他们在特定领域内知识面相对狭窄。&lt;/li&gt;
&lt;li&gt;教育和环境因素：个人的教育背景和生活环境也会对知识面产生影响。在教育体系中，人们通常会接触广泛的学科和领域，这有助于他们广泛涉猎。另一方面，一些人可能在特定领域接受更深入的教育或培训，使他们在该领域具备更专业的知识。&lt;/li&gt;
&lt;li&gt;社交圈和信息过载：个人的社交圈和信息来源也会影响他们的知识范围。如果一个人的社交圈涵盖广泛的兴趣和知识，他们可能更受鼓励去涉猎不同领域。然而，在面临信息过载时，人们可能更容易专注于特定领域，以处理大量信息的涌入。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;有人曾说，在真正了解自己想要的之前，所做的一切都是对他人的拙劣模仿。我们不清楚自己对什么感兴趣。16-18岁时，在对各种学科一无所知的情况下，我们被迫选择专业；22-25岁时，在对社会运作机制毫无概念的情况下，我们被要求选择职业；25-28岁时，在对人际交往一知半解的情况下，我们被要求选择一生的伴侣。人生犯错是一个相当常见的情况。&lt;/p&gt;
&lt;p&gt;&quot;人们可能缺乏知识或被误导，而这种无知和困惑可能源自教育体系的不足、传统观念的约束或缺乏对自己和世界的深入思考。&quot;&lt;/p&gt;
</content:encoded></item><item><title>雅思首考的一些感受</title><link>https://blog.asyncx.top/posts/2023-09-11/</link><guid isPermaLink="true">https://blog.asyncx.top/posts/2023-09-11/</guid><description>                                                  </description><pubDate>Mon, 11 Sep 2023 12:09:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;背景/PTE备考可以参考这篇&lt;a href=&quot;https://blog.asyncx.top/posts/%5B%E6%9B%B4%E6%96%B0%5D%E9%A6%96%E8%80%83PTE%E7%9A%84%E4%B8%80%E4%BA%9B%E9%97%AE%E9%A2%98/%E5%BF%AB%E9%80%9F%E5%85%A5%E9%97%A8/&quot;&gt;首考PTE的一些问题/快速入门&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;本来是要在9.11中午的时候考完口语的.当时报名是9.10考听读写的,9.11中午考口语,不知道由于什么原因提前一天到9.10的中午,我还没有仔细的看准考证上面的日期,于是在昨天中午的时候考点老师打电话问我什么时候过来,是不是要弃考,从食堂跑到教学楼,上气不接下气的开始口语考试.&lt;/p&gt;
&lt;p&gt;由于首考没什么经验,加上自己粗心导致这种结果,我在下午的考试反而看开很多,这里总结一下雅思首考我个人的想法,目前只针对自己总结的缺点和薄弱项想法,整体流程会在二战或考过之后(wishing)详细总结.&lt;/p&gt;
&lt;h1&gt;听力&lt;/h1&gt;
&lt;p&gt;地图题发挥良好,part4部分有连的近的题目漏掉了两个，我个人认为是听听力时候注意力不集中.需要在考试前做抗压训练和完全仿真的机考模拟.&lt;/p&gt;
&lt;h1&gt;阅读&lt;/h1&gt;
&lt;p&gt;Part1 T/F/NG+填词很简单,没遇见什么问题.&lt;/p&gt;
&lt;p&gt;Part2 遇到了没什么印象的段落匹配题型,吃了我很大一部分时间&lt;/p&gt;
&lt;p&gt;Part3 遇见特别多选择(3道大题2道大题型都是选择)+短语匹配题&lt;/p&gt;
&lt;p&gt;犯了我上学时期的老毛病,遇见不会的题就会蒙一个空过去然后做下一题,导致我60min的阅读时间40min就做完了所有的题,然后回过头检查重新选,这样虽然能确保一些正确率但是感觉还是性价比有点低.&lt;/p&gt;
&lt;p&gt;遇见的问题是发现没完全读懂part2/3文章，&lt;/p&gt;
&lt;p&gt;今天看了b站up的视频,翻了翻题发现很多基于文章句子的选择的时候是看主语的,需要语法重构,能更快判断主语成分确定选项.&lt;/p&gt;
&lt;h1&gt;写作&lt;/h1&gt;
&lt;p&gt;机考的时候下面会给出你的字数,由于最后是写作所以注意力比较集中了,加上我打字比较快,写完之后剩10mins我返回part1并又多写了两句话.&lt;/p&gt;
&lt;p&gt;Part1 200 words: 弱数据类型的条形图,没有办法进行大量比较,因此我相互比较,遇到了词汇和句式比较简单的问题,需要背一些高级表达和句式.
Part2 300 words: 考前看了一遍观点库的目录,大概有了一个思路是对个人-&amp;gt;社会-&amp;gt;国家的作用.&lt;/p&gt;
&lt;h1&gt;口语&lt;/h1&gt;
&lt;p&gt;事发突然,很多想好的逻辑都忘的比较干净,但是还是把考官当成正常conversation一样进行沟通了,遇到了忘记怎么说的单词或者句子脱口而出来不及思考后面逻辑的时候我就会断掉,很无奈的说:sorry, I forget that word.然后继续conversation.&lt;/p&gt;
&lt;p&gt;part1后半部分卡壳一次&lt;/p&gt;
&lt;p&gt;part2 我的语速过快来不及思考导致有卡壳&lt;/p&gt;
&lt;p&gt;part3有一个问题的单词没听懂，搪塞过去。&lt;/p&gt;
&lt;p&gt;最后考官表示要超时了。打断并说祝福语，结束part3&lt;/p&gt;
</content:encoded></item><item><title>如何听更好音质的歌</title><link>https://blog.asyncx.top/posts/2023-08-24/</link><guid isPermaLink="true">https://blog.asyncx.top/posts/2023-08-24/</guid><description>                                                  </description><pubDate>Thu, 24 Aug 2023 23:08:00 GMT</pubDate><content:encoded>&lt;p&gt;几年前对音质比较有追求,当时只限于换更好的耳机来听歌.直到前一段时间去苏州看到了开了20多年的唱片店,没忍住买了草东的&amp;lt;瓦合&amp;gt;.受限于不多的经费,于是下工夫了解了一下影响音质的几个物品,于是记录一下,方便为大家扫盲和学习.&lt;/p&gt;
&lt;h1&gt;从音源到耳朵&lt;/h1&gt;
&lt;p&gt;一首歌如果你想听到HIFI(High-Fidelity高保真)音质,从物质层面来说是这样的:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;高保真的音源(DSD、WAV、AIFF、FLAC、APE、ALAC...)
前端(解码+耳放/功放)
后端(耳机/音响)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;木桶理论,任何一方面有短板都会影响到音质.上面介绍了从音源传到耳朵所经过的步骤,接下来介绍一下听HIFI音质所需的各个部分.&lt;/p&gt;
&lt;h1&gt;音源&lt;/h1&gt;
&lt;p&gt;CD音质的&lt;strong&gt;采样率&lt;/strong&gt;为44.1KHz，就表示每秒采集和处理44100个样本。采样率越高的话，声音信号的频率响应越宽，音质也就越好。当然采样率越高，会占据更多的存储空间。
&lt;strong&gt;位深&lt;/strong&gt;越高，数字音频的动态范围越大，能够更准确地显示出声音信号的细节和差异。&lt;/p&gt;
&lt;h1&gt;解码&lt;/h1&gt;
&lt;p&gt;解码器是一种将数字信号转换为模拟信号的电子设备，它是数字音频系统中的重要组成部分。解码器的性能和质量直接影响到音频信号的还原度和音质。&lt;/p&gt;
&lt;h1&gt;功率放大机(功放)&lt;/h1&gt;
&lt;p&gt;功放，是各类音响器材中最大的一个家族，其作用主要是将音源器材输入的较微弱信号进行放大后，产生足够大的电流去推动扬声器进行声音的重放。由于考虑功率、阻抗、&lt;a href=&quot;https://baike.baidu.com/item/%E5%A4%B1%E7%9C%9F?fromModule=lemma_inlink&quot;&gt;失真&lt;/a&gt;、动态以及不同的使用范围和控制调节功能，不同的功放在内部的&lt;a href=&quot;https://baike.baidu.com/item/%E4%BF%A1%E5%8F%B7%E5%A4%84%E7%90%86?fromModule=lemma_inlink&quot;&gt;信号处理&lt;/a&gt;、线路设计和生产工艺上也各不相同.按照使用元器件的不同，功放又有“胆机”（&lt;a href=&quot;https://baike.baidu.com/item/%E7%94%B5%E5%AD%90%E7%AE%A1%E5%8A%9F%E6%94%BE?fromModule=lemma_inlink&quot;&gt;电子管功放&lt;/a&gt;），“&lt;a href=&quot;https://baike.baidu.com/item/%E7%9F%B3%E6%9C%BA?fromModule=lemma_inlink&quot;&gt;石机&lt;/a&gt;”（晶体管功放），“IC功放”（&lt;a href=&quot;https://baike.baidu.com/item/%E9%9B%86%E6%88%90%E7%94%B5%E8%B7%AF?fromModule=lemma_inlink&quot;&gt;集成电路&lt;/a&gt;功放）。
&lt;img src=&quot;https://r2.asyncx.top/images/202308250021847.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;h1&gt;音响&lt;/h1&gt;
&lt;p&gt;分为有源音响和无源音响.&lt;code&gt;源&lt;/code&gt;代表着更完善和集中的前端,这里介绍音响的参数.&lt;/p&gt;
&lt;h2&gt;功率：&lt;/h2&gt;
&lt;p&gt;音箱的功率大小是选择音箱的重要指标之一，该指标决定了音箱所能发出的最大声响，可以将其简单理解为音箱所能发出的最大声音。
音箱的功率主要由功率放大器芯片的功率所决定的，此外还与电源变压器的功率有关
按照国际标准，音箱功率的标注方式有两种，额定功率又称长期功率与峰值功寓，又称最大承受功率，前者是指在额定频率范围内给扬声器，一个规定了波形的持续模拟信号，在一定间隔并反复播放了一定次数后，扬声器不发生任何损坏的最大功率，后者是指扬声器短时间所能承受的最大功率。&lt;/p&gt;
&lt;h2&gt;频响范围：&lt;/h2&gt;
&lt;p&gt;频率范围是指音箱最低有效回放频率与最高有效回放频率之间的范围单位为Hz，从理论上讲音箱的频响范围应该是越宽越好，至少应该是在18Hz-20kHz的范围内。
但是事实上并非如此，这主要受以下三个方面的影响，一是受听音环境的限制，因为重播低频信号受到了房间容积的限制。二是受扬声器尺寸和音箱体积的限制，三式音箱的频响范围越宽，对放大器的要求就越高，多媒体音箱的频率范围要求一般在70Hz-10kHz即可，要求较高的可在50Hz-16kHz。&lt;/p&gt;
&lt;h2&gt;阻抗：&lt;/h2&gt;
&lt;p&gt;阻抗是指扬声器输入信号的电压与电流的比值，低阻抗的音箱可以获得较大的输出功率，但是阻抗太低又会造成低音劣化的现象，因此选择国际标准推荐的8欧姆。&lt;/p&gt;
&lt;hr /&gt;
&lt;h1&gt;耳放&lt;/h1&gt;
&lt;p&gt;即耳机功率放大器,详情参照功放. 目前世面上的一般为解码+耳放一体机
&lt;img src=&quot;https://global-uploads.webflow.com/627128d862c9a44234848dda/64d9c81be627fe010d036677_DAWNPRO.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;h1&gt;耳机&lt;/h1&gt;
&lt;p&gt;正在了解...&lt;/p&gt;
</content:encoded></item><item><title>苏州三天行</title><link>https://blog.asyncx.top/posts/2023-07-25/</link><guid isPermaLink="true">https://blog.asyncx.top/posts/2023-07-25/</guid><description>                                                  </description><pubDate>Tue, 25 Jul 2023 16:07:00 GMT</pubDate><content:encoded>&lt;p&gt;陪女朋友面试，因此去苏州呆了几天。攻略做的不算很好，这一趟的目的也是休闲和以吃为主的，本文也用来主要记录一下这趟的线路。&lt;/p&gt;
&lt;h1&gt;简述&lt;/h1&gt;
&lt;p&gt;小红书和抖音大致确定了一下有什么好吃的（蟹面这些东西本地人都不咋吃），使用Mac的地图大致确定了一下住宿的范围在姑苏区，接着就是大致确定一下吃的东西和住宿的距离。&lt;/p&gt;
&lt;h2&gt;住宿&lt;/h2&gt;
&lt;p&gt;在20年订CJ酒店的时候，就明确一定要订&lt;strong&gt;在地铁口附近的酒店&lt;/strong&gt;，和想吃的想玩的地方不用距离很近，但是一定要离地铁近，方便你来和走的时候带东西。我是选择了十全街旁边的评价比较好的酒店。&lt;/p&gt;
&lt;h2&gt;吃喝&lt;/h2&gt;
&lt;p&gt;我们是比较休闲的，所以没有大范围的去吃，大多都是姑苏区的
&lt;img src=&quot;https://r2.asyncx.top/images/202308131026728.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;个人认为最好吃的是珍珠饭店（苏帮菜）和红小满（融合餐厅），裕兴记的面出品不是很稳定。甜品木缘新豆花，买了就走，带到宾馆和饭店吃。其他的小吃也没有踩雷，仅代表个人口味。&lt;/p&gt;
</content:encoded></item><item><title>毕业，以及短期的安排</title><link>https://blog.asyncx.top/posts/2023-06-21/</link><guid isPermaLink="true">https://blog.asyncx.top/posts/2023-06-21/</guid><description>                                                  </description><pubDate>Wed, 21 Jun 2023 16:06:00 GMT</pubDate><content:encoded>&lt;p&gt;在回家前的这段时间在学校忙一些档案的事情，在此呼吁大家离校前要操心以下东西&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;成绩单-学院教务处
（英文成绩单-教务处或要到中文pdf后自己翻译并找老师盖章）
学籍/（党员）档案
毕业证书/学士学位证书
...
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;此外，学院为了就业率也会无所不用其极的让你签下来劳动合同或三方协议。问身边同学他们对这两个东西有什么差异也是一知半解，我梳理后放在这里。&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;应届生的分类可包括当年应届毕业生和择业期的应届毕业生。当年应届毕业生即处于国家统一招生的高校学生在学最后一年，即将毕业但还没拿到毕业证的学生；择业期的应届毕业生即已经拿到毕业证，但处于择业期内的学生。而根据对人事或劳动关系的界定，参加工作的时间和工作年限往往参考劳动合同及就业登记、社会保险缴费记录等来认定。也就是说，如果想以“应届生”身份报考“公务员”，高校毕业生需要早做打算，在校最后一年及毕业后两年内不能随意签订劳动合同和缴纳社保。
三方协议是在毕业生在校期间签订的；劳动合同是拿到毕业证以后签订的。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;劳动合同是你和某一家单位双方签订的契约，需要拿到毕业证。 签了劳动合同，如果还是处于毕业的当年，就还是属于应届毕业生。国家规定，统一招生的高校毕业生离校时和在择业期内（国家规定择业期为二年，有些地方延长至三年）都按应届高校毕业生对待。对于应届毕业生的规定不是依据劳动合同的规定而是按照当事人的毕业时间作为判断标准的。即使签订了劳动合同只要依旧处于毕业的年份即为应届毕业生。&lt;/li&gt;
&lt;li&gt;三方协议书只是三方签订的就业意向，不是劳动关系的法律文件，对劳动关系没有约束力。需要说明的是，一旦毕业生到单位报到，并与单位签订了劳动合同或形成了事实劳动关系，毕业生就会和用人单位形成正式的劳动关系。所以，三方协议并非正式的劳动合同，对考生的应届生身份并不造成影响。但是假如考生签订了正式的劳动合同，就算是毕业当年，在报考选调生等公考的时候，也不算应届生身份了。但是，虽然三方协议签订的只是一个就业意向，对劳动关系没有约束力。 三方协议不是劳动关系中个人与用人单位正式的约束性文件，只有你签了三方后，学校发了报到证，在规定的时间内去那个单位报道并签订了劳动合同，之后三方协议就正式失效了。&lt;/li&gt;
&lt;/ol&gt;
&lt;hr /&gt;
&lt;p&gt;最近的安排是在8月机考第一次雅思，目前开始刷真题和联系练习口语。加油😼&lt;/p&gt;
</content:encoded></item><item><title>近日&amp;首阳</title><link>https://blog.asyncx.top/posts/2023-05-16/</link><guid isPermaLink="true">https://blog.asyncx.top/posts/2023-05-16/</guid><description>                                                  </description><pubDate>Tue, 16 May 2023 16:05:00 GMT</pubDate><content:encoded>&lt;p&gt;《约翰•威尔逊的生活指南》S01E05-8:57
&lt;img src=&quot;https://r2.asyncx.top/images/202305102055117.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;上周五进行了毕业答辩，答辩小组是30人，通过人数只有12个。剩下的所有人都要进行二辩，如果不通过就延毕。&lt;/p&gt;
&lt;hr /&gt;
&lt;h1&gt;20230515&lt;/h1&gt;
&lt;p&gt;中午的时候量体温，38度，下午的时候39度。吃了布洛芬捂汗，伴有咽干，头痛的症状。凌晨体温下降一点。&lt;/p&gt;
&lt;h1&gt;20230516&lt;/h1&gt;
&lt;p&gt;起床体温37.4度，嗓子像吞刀片一样。中午体温完全正常，吞刀片感觉加重，在吃含片，喝口服液时候感觉没那么强烈。饭都不怎么能吃得下去。&lt;/p&gt;
&lt;h1&gt;20230517&lt;/h1&gt;
&lt;p&gt;去医院开了消炎药，抽血化验，咽喉发炎为病毒性，喉咙稍有好转。药单如下&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;盐酸阿比多尔片
阿莫西林克拉维酸钾片
金莲清热颗粒
柑桔冰梅片
&lt;/code&gt;&lt;/pre&gt;
&lt;h1&gt;20230518&lt;/h1&gt;
&lt;p&gt;神经间歇疼的症状消失，刀片嗓略微缓解。嗓子开始略痒，想要咳嗽。医生叮嘱忍住不要咳，后期会咳的停不下来。&lt;/p&gt;
&lt;h1&gt;20230519&lt;/h1&gt;
&lt;p&gt;一点点嗓子疼，一点点想咳嗽。停吃消炎药，开始吃含片。&lt;/p&gt;
</content:encoded></item><item><title>第一期-Beancount使用体验</title><link>https://blog.asyncx.top/posts/2023-05-01/</link><guid isPermaLink="true">https://blog.asyncx.top/posts/2023-05-01/</guid><description>                                                  </description><pubDate>Mon, 01 May 2023 13:05:00 GMT</pubDate><content:encoded>&lt;h1&gt;前言&lt;/h1&gt;
&lt;p&gt;为了督促自己自律一点，持续更新博客，我打算将应用软件类的使用心得教程类作为一个栏目写。一是这样方便大家对工具类的博客进行索引，二也可以对大家的软件的选择起到引导性作用。
言归正传，官网是这么描述Beancount的。&lt;code&gt;Double-Entry Accounting from Text Files.&lt;/code&gt;即为从文本调用的&lt;strong&gt;复式簿记&lt;/strong&gt;。&lt;/p&gt;
&lt;h2&gt;什么是复式簿记？&lt;/h2&gt;
&lt;p&gt;复式簿记是一种把每笔交易都记录到复数个账户中的簿记方法，简单来说就是“有得必有失”。&lt;/p&gt;
&lt;p&gt;当你从你的B账户为A支付了$x$元，那么你的账户就损失了$x$元，损失的这份价钱转变为了A的&lt;strong&gt;价值&lt;/strong&gt;，而单独对于你的B账户，作为支付方损失了A的价值。但此时对你来说你所具有的财富仍然保持不变，这个例子使用Beancount的记录如下：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;2023-05-01 * &quot;买了A&quot;
  Assets:Cash                            -X CNY
  Expenses:Shopping                      +X CNY
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;这样记账的好处是什么？&lt;/h2&gt;
&lt;p&gt;由于复式簿记的前提是收支守恒，那么遇到以下例子也会很方便记账：
你和甲，乙三个人去吃饭，总共花了$3X$元，甲帮你垫付了$\frac{1}{2}$的钱，乙也帮你垫付了$\frac{1}{2}$的钱，你需要分别还给他们，这时使用Beancount的记录如下：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;2023-05-01 * &quot;和甲乙吃饭&quot;
  Assets:Cash                            -X CNY
  Liabilities:Jia                      +X/2 CNY
  Liabilities:Yi                       +X/2 CNY
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;这个例子中的收支依旧为0，区别和上面的则在于支出项为两个人（复数个），在遇到此类情况，复式簿记的优势就体现出来了。&lt;/p&gt;
&lt;h1&gt;如何使用Beancount来进行记账&lt;/h1&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://beancount.github.io/docs/&quot;&gt;Beancount Documentation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://docs.google.com/document/d/1wAMVrKIA2qtRGmoVDSUBJGmYZSygUaR0uOMW1GV3YE0/edit&quot;&gt;Beancount - Language Syntax&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;安装&lt;/h2&gt;
&lt;p&gt;Beancount可以用以下方法安装，并同时安装&lt;code&gt;fava&lt;/code&gt;-Beancount的实用性UI。&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;python -m venv BEANCOUNT
source BEANCOUNT/bin/active
pip install beancount
pip install fava
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;结构&lt;/h2&gt;
&lt;p&gt;记账作为一个持久性的项目，需要具备如下特点：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;准确性&lt;/li&gt;
&lt;li&gt;持久性
而Beancount作为记账软件可以额外提供的：&lt;/li&gt;
&lt;li&gt;永久性&lt;/li&gt;
&lt;li&gt;安全性
我从这里开始将用最快可投入使用的语言进行描述。
首先的首先，你需要创建一个main.bean来令fava进行读取操作，这个bean文件更类似于索引功能。&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code&gt;;账本信息
option &quot;title&quot; &quot;main&quot; ;账本名
option &quot;operating_currency&quot; &quot;CNY&quot; ;账本货币
2001-08-06 custom &quot;fava-option&quot; &quot;language&quot; &quot;zh&quot;
include &quot;accounts/assets.bean&quot; ;资产账户设置及初始化
include &quot;accounts/liabilities.bean&quot; ;负债账户设置及初始化
include &quot;accounts/expenses.bean&quot; ;支出账户设置
include &quot;accounts/income.bean&quot; ;收入账户设置


;交易记录
include &quot;2023/2023.bean&quot; ;2023账本
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;其次，你需要创建用于支付的项目和用于支付的账户。&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;account/assets.bean
2001-08-06 open Equity:OpenBalance ;用于账户初始化，支持任意货币
2001-08-06 open Assets:Card:9806 CNY ;尾号9806的银行卡
2001-08-06 open Assets:Card:2437 CNY ;大学银行卡
2001-08-06 open Assets:Alipay:Name CNY ;支付宝
2001-08-06 open Assets:Wechat:Name CNY ;微信
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;需要强调的地方：账户的名字必须&lt;strong&gt;大写&lt;/strong&gt;，你需要为所有的账户制定货币单位（CNY）。
此外，还需要创建付款项，这里我参考了其他记账软件的项目：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;account/expenses.bean
2001-08-06 open Expenses:Other CNY
2001-08-06 open Expenses:Dining CNY
2001-08-06 open Expenses:Shopping CNY
2001-08-06 open Expenses:Transportation CNY
2001-08-06 open Expenses:Entertainment CNY
2001-08-06 open Expenses:Electronics CNY
2001-08-06 open Expenses:Clothing CNY
2001-08-06 open Expenses:Pets CNY
2001-08-06 open Expenses:Daily CNY
2001-08-06 open Expenses:SnacksandBeverages CNY
2001-08-06 open Expenses:FruitsandVegetables CNY
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;你还需要按照以上格式创建负债账户和收入账户，前缀分别为&lt;code&gt;Liabilities:XX&lt;/code&gt;和&lt;code&gt;Income:XX&lt;/code&gt;，这些均放置于main.bean同目录的&lt;code&gt;account&lt;/code&gt;文件夹内。
&lt;img src=&quot;https://jazzy-praline-dbe3ad.netlify.app/images/202305012225163.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;最后，创建账本。我是按照年/月来进行账本的分类，每月进行汇总。你无需自己创建，我将模板放在本文最后。&lt;/p&gt;
&lt;h2&gt;使用&lt;/h2&gt;
&lt;p&gt;安装完成且正常创建后，在&lt;code&gt;main.bean&lt;/code&gt;同目录下输出&lt;code&gt;fava main.bean --port 8888&lt;/code&gt;打开服务，main.bean为账本项目，&lt;code&gt;--port 8888&lt;/code&gt;为在端口8888打开网页，指定端口防止了Mac电脑默认端口的冲突。打开&lt;code&gt;localhost:8888&lt;/code&gt;,你可以看到直观的数据。&lt;/p&gt;
&lt;p&gt;到这一步，就已经完成安装了。&lt;/p&gt;
&lt;h1&gt;工作流&lt;/h1&gt;
&lt;p&gt;&lt;a href=&quot;https://wary-pendulum-590.notion.site/8b0e1616c5024cd6bfadf288df27648c?pvs=4&quot;&gt;Notion 月账单模板&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;通过两个&lt;code&gt;select&lt;/code&gt;记录资金的出和入，每月导出一次到 beancount 进行统计。&lt;/p&gt;
&lt;p&gt;如果有可以解决通过 Notion 多对一 /多对多记账的更好方案和脚本欢迎 pr 。&lt;/p&gt;
&lt;p&gt;脚本和年度账本模板：&lt;a href=&quot;https://github.com/A5yncX/notion-to-beancount&quot;&gt;A5yncX/notion-to-beancount&lt;/a&gt;&lt;/p&gt;
</content:encoded></item><item><title>在MacOS配制Rime（鼠须管）输入法</title><link>https://blog.asyncx.top/posts/2023-04-14/</link><guid isPermaLink="true">https://blog.asyncx.top/posts/2023-04-14/</guid><description>                                                  </description><pubDate>Fri, 14 Apr 2023 20:04:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img src=&quot;https://rime.im/images/home-title.svg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;h1&gt;前言&lt;/h1&gt;
&lt;p&gt;在我折腾Rime（小狼毫、鼠须管）的这几次里，只有这次比较成功，在此记录一下。
&lt;code&gt;🛑个人原因，本文并不会提及详细的文件配制，旨在“开箱即用”。&lt;/code&gt;&lt;/p&gt;
&lt;h1&gt;安装&lt;/h1&gt;
&lt;ol&gt;
&lt;li&gt;下载 &lt;a href=&quot;https://rime.im/&quot;&gt;鼠须管&lt;/a&gt;，安装后切换到 Rime 输入法，通过组合键 &lt;code&gt;Control+｀&lt;/code&gt;  键可以切换输入方案，例如选择【朙月拼音·简化字】简体输出。&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;&lt;code&gt;注：建议 Mac 打开通知，之后部署会提示是否成功。
&lt;/code&gt;&lt;/pre&gt;
&lt;ol&gt;
&lt;li&gt;配制库：&lt;a href=&quot;https://github.com/ssnhd/rime&quot;&gt;地址&lt;/a&gt;，解压得到&lt;code&gt;配置文件&lt;/code&gt;和&lt;code&gt;花园明朝字体&lt;/code&gt;，将字体安装到字体册，原因是 Mac 缺少部分生僻字。&lt;/li&gt;
&lt;li&gt;将&lt;code&gt;配置文件&lt;/code&gt;内的所有文件移动到&lt;code&gt;Rime&lt;/code&gt;文件夹内（右上角切换输入法到鼠须管，点击&lt;code&gt;用户设定...&lt;/code&gt;即可，不要自作主张放到其他子文件夹下！）&lt;/li&gt;
&lt;li&gt;点击&lt;code&gt;重新部署&lt;/code&gt;，到此已经可以正常使用。&lt;/li&gt;
&lt;/ol&gt;
&lt;h1&gt;设置&lt;/h1&gt;
&lt;h2&gt;全局设置&lt;/h2&gt;
&lt;p&gt;全局设置文件 &lt;code&gt;default.custom.yaml&lt;/code&gt;，包含输入方案、候选词个数、中英文切换、快捷键。&lt;/p&gt;
&lt;h2&gt;快捷短语设置&lt;/h2&gt;
&lt;p&gt;用文本编辑打开 &lt;code&gt;custom_phrase.txt&lt;/code&gt;，规则：内容+编码+权重（可选），使用 Tab 键间隔。&lt;/p&gt;
&lt;h2&gt;皮肤设置&lt;/h2&gt;
&lt;p&gt;打开 &lt;code&gt;squirrel.custom.yaml&lt;/code&gt;，将皮肤代码添加进去，按照下图说明设置自己喜欢的皮肤。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;style/color_scheme: 浅色皮肤名称&lt;/li&gt;
&lt;li&gt;style/color_scheme_dark: 深色皮肤名称&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;同步至 iCloud&lt;/h2&gt;
&lt;p&gt;1、配置文件里打开 &lt;code&gt;installation.yaml&lt;/code&gt;，将 &lt;code&gt;id&lt;/code&gt; 改为 Mac（支持自定义）。&lt;br /&gt;
2、复制下面路径代码粘贴进去，将 &lt;code&gt;admin&lt;/code&gt; 替换为 Mac 管理员名称（代码里 &lt;code&gt;RimeSync&lt;/code&gt; 是同步后文件夹名称，支持自定义）。&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sync_dir: &quot;/Users/admin/Library/Mobile Documents/com~apple~CloudDocs/RimeSync&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;点击菜单栏【ㄓ】-【同步用户数据】，等待几秒提示同步成功。打开访达 iCloud 找到名为 RimeSync 的文件即是。&lt;/p&gt;
&lt;h1&gt;可能会遇到的问题&lt;/h1&gt;
&lt;pre&gt;&lt;code&gt;如何添加自己的词库？
-选用的仓库汇总了很多词库，已基本够用，可以满足绝大部分用户需求，初次使用极少部分词频不完全在首位，稍微用几日即可。我目前添加自己的词库遇到了无法正常联想的问题，目前方法就是添加快捷短语。
&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote&gt;
&lt;p&gt;https://ssnhd.com/2022/01/06/rime/
https://rime.im/&lt;/p&gt;
&lt;/blockquote&gt;
</content:encoded></item><item><title>更换主力浏览器为Arc浏览器</title><link>https://blog.asyncx.top/posts/2023-04-08/</link><guid isPermaLink="true">https://blog.asyncx.top/posts/2023-04-08/</guid><description>                                                  </description><pubDate>Sat, 08 Apr 2023 22:04:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;When we think about browsing the internet, we often ignore the browser itself. Instead, we think about all the things we do online—the articles we read, the emails we send, the shows we watch. The software that enables it all, the browser, is so ubiquitous that it’s ignored.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;img src=&quot;https://jazzy-praline-dbe3ad.netlify.app/images/202304082241872.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;今日更换了arc浏览器作为主力浏览器,谈一下使用一天的感受.首先作为一款仍使用&lt;code&gt;Chromium Engine&lt;/code&gt;的浏览器,兼容了 Chrome 的插件生态,在登录时就可以同步所有的扩展/密码/设置/浏览历史.&lt;/p&gt;
&lt;h2&gt;优点&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;使用精心设计的侧边栏布局，极大程度释放了屏幕空间（支持固定，隐藏多种设置）&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;经常访问的网址可以有多种保存方式（如 Favorite，Pin 等）&lt;/li&gt;
&lt;li&gt;多个人空间（可以按照个人习惯，将工作学习，生活娱乐完全隔离开来），而且每个空间可以定制个性化皮肤。&lt;/li&gt;
&lt;li&gt;适合多任务处理的分屏浏览（一边查资料，一边记笔记）&lt;/li&gt;
&lt;li&gt;内置小工具（如笔记，简易画板等）&lt;/li&gt;
&lt;li&gt;Library 可以通过系统授权，将文件系统交由 Arc 来管理（更加专注，不需要频繁在系统文件和浏览器之前反复横跳）&lt;/li&gt;
&lt;li&gt;针对专业人士开放的 &lt;code&gt;New Boost&lt;/code&gt; 高级自定义功能（满足更多定制化需要）&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;缺点&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;部分设计简洁到使用难受(翻译功能由于默认为任意语言-英语,你需要手动调节.)&lt;/li&gt;
&lt;li&gt;对于会修改默认页面的扩展没有正常的弹出和提示默认页的信息(iTab)&lt;/li&gt;
&lt;li&gt;占用内存过大
综上,我仍认为这是一个瑕不掩瑜的完美浏览器,我会在深度使用一段时间后更新这篇文章.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;一些问题&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;浏览器目前为邀请制,我的邀请码放在了&lt;a href=&quot;https://www.v2ex.com/t/930773#reply14&quot;&gt;V2EX&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;目前只有MacOS和IOS可以使用本浏览器&lt;/li&gt;
&lt;li&gt;在注册遇到报网络问题时,请下载&lt;code&gt;ClashX Pro&lt;/code&gt;并开启全局模式和增强模式,之后就不用了&lt;/li&gt;
&lt;/ol&gt;
</content:encoded></item><item><title>为hexo博客添加黑暗模式(使用darkmode.js)</title><link>https://blog.asyncx.top/posts/2023-03-27/</link><guid isPermaLink="true">https://blog.asyncx.top/posts/2023-03-27/</guid><description>                                                  </description><pubDate>Mon, 27 Mar 2023 21:03:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;20230408更新.更换博客主题,本文教程无变化.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;最近总在晚上写一些东西,突然想起来博客还没有黑暗模式.我的博客用的是vexo主题,去翻了一下vexo的github:https://github.com/yanm1ng/hexo-theme-vexo
&lt;img src=&quot;https://jazzy-praline-dbe3ad.netlify.app/images/202303272135621.png&quot; alt=&quot;&quot; /&gt;
......
本文主要为hexo vexo主题添加一个可以切换的黑色/夜间模式。本文介绍如何实现按钮来切换，包括如何在代码部分也切换夜间模式。&lt;/p&gt;
&lt;h1&gt;安装&lt;/h1&gt;
&lt;p&gt;跟据&lt;a href=&quot;https://github.com/sandoche/Darkmode.js&quot;&gt;darkmode.js&lt;/a&gt; 官网的描述,在网页的head引入&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;script src=&quot;https://cdn.jsdelivr.net/npm/darkmode-js@1.5.7/lib/darkmode-js.min.js&quot;&amp;gt;&amp;lt;/script&amp;gt; 
&amp;lt;script&amp;gt;
  function addDarkmodeWidget() {
    new Darkmode().showWidget();
  }
  window.addEventListener(&apos;load&apos;, addDarkmodeWidget);
&amp;lt;/script&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;ps:由于国内使用&lt;code&gt;jsdelivr&lt;/code&gt;并不稳定,我将博客的所有文件都放在了github,并通过netlify加速.&lt;/p&gt;
&lt;h2&gt;效果&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://jazzy-praline-dbe3ad.netlify.app/images/202303272148228.gif&quot; alt=&quot;&quot; /&gt;
你可能会发现到上面那步,效果和我的并不一样,字体仍然是黑色或者标签的边框和文章代码框是白色.
这时候就需要对颜色微调.&lt;/p&gt;
&lt;h1&gt;优化&lt;/h1&gt;
&lt;h2&gt;前言&lt;/h2&gt;
&lt;p&gt;在&lt;code&gt;darkmode.js&lt;/code&gt;被激活的时候，会在&lt;code&gt;body&lt;/code&gt;上添加一个&lt;code&gt;.darkmode--activated&lt;/code&gt;的类，如果我们把上面没有暗黑化的样式添加到css里[^1]，就可以实现自己需要的效果.
我使用的主题是vexo,部分文件结构如下所示&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;├── _config.styl
├── _partial
│   ├── about.styl
│   ├── archive.styl
│   ├── catalog.styl
│   ├── footer.styl
│   ├── header.styl
│   ├── markdown.styl
│   ├── pager.styl
│   ├── project.styl
│   └── tags.styl
├── layout.ejs
└── style.styl
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;我这里仅使用了通过修改css来改变前端样式,仅供参考.&lt;/p&gt;
&lt;h2&gt;修改style.styl&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://jazzy-praline-dbe3ad.netlify.app/images/202303272209239.png&quot; alt=&quot;&quot; /&gt;
这是我的优化,把tag和header的背景透明化.具体原理就是当添加暗黑的类属性后我的这些设置会覆盖原来设置的color/background等属性,就可以做到调整暗黑模式的颜色,当关闭暗黑模式时,仅这些颜色属性取消,就可以恢复正常的样子.
当然也可以有额外的设置,比如增大加粗暗黑模式的字体,修改暗黑模式的页面属性等.&lt;/p&gt;
&lt;p&gt;[^1]: &lt;a href=&quot;https://www.toimc.com/hexo-usage-1/&quot;&gt;hexo博客next主题添加夜间模式（Dark Mode）&lt;/a&gt;&lt;/p&gt;
</content:encoded></item><item><title>语言规范可以帮你更好得到答案</title><link>https://blog.asyncx.top/posts/2023-03-15/</link><guid isPermaLink="true">https://blog.asyncx.top/posts/2023-03-15/</guid><description>                                                  </description><pubDate>Wed, 15 Mar 2023 22:03:00 GMT</pubDate><content:encoded>&lt;p&gt;最近用ChatGPT的次数比较多,用于对毕业论文的文字进行整理和专业性补充.身边朋友最经常问我的就是:
你怎么让ChatGPT输出你想要的文字?
你的怎么输出这么多?
这里需要引入的一个概念就是它作为一个语言模型,你要把它当成一个听众一样去表述你的问题.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;后文称ChatGPT为它&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h1&gt;规范化&lt;/h1&gt;
&lt;p&gt;如果说它是一个万能的解答库,那语言的表述就是钥匙.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;后端:Maven,SpringBoot,MyBatis 
前端:Bootstrap, jQuery,datatables,chart, sweetalert 
系统模块: 
1.系统用户登录模块 
2.数据看板模块 
3.每日打卡模块 
4.打卡数据模块 
5.用户管理模块 
6.数据管理模块

结合以上文字,为论文写一份摘要.
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;我正在写一篇毕业设计,使用了前后端分离的方式,请为我的论文写一份摘要.
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;你会使用以上的哪种方法提问?
在我进行提问的时候,我更倾向于用已有信息去补充问题的背景来帮助它了解要如何回答这一个问题.当我需要进行连续提问的时候,则会通过&lt;code&gt;你还记得我们之前的对话吗?&lt;/code&gt;或在第一个问题时提醒&lt;code&gt;这个对话的后续问题都请你联系之前的问题进行回答&lt;/code&gt;.这样我就可以一边补充背景一边得到更精确的回答.&lt;/p&gt;
&lt;h1&gt;API&lt;/h1&gt;
&lt;p&gt;待体验完再写&lt;/p&gt;
</content:encoded></item><item><title>删掉抖音,重拾RSS</title><link>https://blog.asyncx.top/posts/2023-02-24/</link><guid isPermaLink="true">https://blog.asyncx.top/posts/2023-02-24/</guid><description>                                                  </description><pubDate>Fri, 24 Feb 2023 00:02:00 GMT</pubDate><content:encoded>&lt;p&gt;事情越来越多,越来越觉得时间不够用.
前段时间朋友圈内看到有人在分享&amp;lt;如何高效获得信息&amp;gt;的付费专栏,点进去一看价格竟然要上千.相对开放的网络环境也会有信息差,这样的信息差导致了对自己的极度自信,不容易改变.
言归正传.本文使用Mac/IOS的Reeder 5.,使用了icloud进行设备间同步.
&lt;a href=&quot;https://zhuanlan.zhihu.com/p/461024469&quot;&gt;Reeder5 详细使用教程（附翻译）&lt;/a&gt;
源方面我秉着贪多嚼不烂的原则,目前有以下(持续补充):&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;技术:
程序员的喵: https://catcoding.me/atom.xml
生活:
少数派: https://rsshub.app/sspai/index
娱乐:
pixiv周排行: https://rsshub.app/pixiv/ranking/week
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;如果有网友有前沿科技,科幻电影影评类的源麻烦分享一下.&lt;/p&gt;
</content:encoded></item><item><title>简单注册ChatGPT的方法</title><link>https://blog.asyncx.top/posts/2023-02-15/</link><guid isPermaLink="true">https://blog.asyncx.top/posts/2023-02-15/</guid><description>                                                  </description><pubDate>Wed, 15 Feb 2023 00:00:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;2023.03.31更新
由于验证严格,目前注册方法更换为使用虚拟手机号的gmail邮箱注册.
声明:
&lt;strong&gt;本人在gmail验证时使用了境外手机号,没有尝试过境内手机号能否解决登录ChatGPT限制!&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h1&gt;本文使用虚拟境外手机号接收短信解决&lt;/h1&gt;
&lt;p&gt;ChatGPT已经火了很长时间了,身边很多朋友都是用的别人的api或者一些收费的服务.这里记录一下如何解决注册账号中手机号验证的问题.
官网: https://chat.openai.com/
临时境外手机号: https://sms-activate.org/getNumber
Gmail:https://mail.google.com/&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;注册需要:
1.临时手机号
2.google账号
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;首先注册一个账号,并在注册后点击充值.&lt;/p&gt;
&lt;p&gt;根据你想要的支付方式支付.1美元约70卢布.充值1美元即可.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;2023.03.31更新 目前变为至少充值2美元&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;在登录或创建你的google账号后(这里的手机号和邮箱可以使用你自己的),进入gmail官网,它会提示你创建属于你自己的xxx@gmail.com,而你的google注册邮箱则变为备用邮箱.&lt;/p&gt;
&lt;p&gt;进入上文给的ChatGPT官网,选择Google登录,点击已登录的google账号你会发现注册邮箱从你自己的变成了xxx@gmail.com,这时选择此账户登录即可进入ChatGPT.搞定.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;登录时目前并未遇到要求验证手机号的问题.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h1&gt;可能会遇到的问题&lt;/h1&gt;
&lt;p&gt;Q:ChatGPT报手机号异常&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A:点击购买手机号右侧x即可退款,再次购买其他地区即可.如果多次无法解决请选择你拥有WhatsAPP进行验证码验证即可.
2023.03.31更新:现在不会再出现这种问题.&lt;/p&gt;
&lt;/blockquote&gt;
</content:encoded></item><item><title>2023年，一些回顾</title><link>https://blog.asyncx.top/posts/2023-02-12/</link><guid isPermaLink="true">https://blog.asyncx.top/posts/2023-02-12/</guid><description>                                                  </description><pubDate>Sun, 12 Feb 2023 01:02:00 GMT</pubDate><content:encoded>&lt;p&gt;之前有篇文章介绍了今年需要做的一些事情，年前年后也算是解决了一些。&lt;/p&gt;
&lt;h1&gt;部署基于notion的博客&lt;/h1&gt;
&lt;p&gt;之前有打算开一个博客，试着写一写英语博客，趁着年后就实现了一下
&lt;a href=&quot;https://notion.asyncx.top/&quot;&gt;Hi, I’m AsyncX. Here is my archieves.&lt;/a&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;2023.12.20更新
以后有缘还是在这里写吧XD&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;由于当时学生优惠的服务器明年就到期了，此项目也是实时抓取notion界面再渲染的node项目，所以写作重心我还是选择放在这个博客，因此把博客的很多内容打算给修改一下。&lt;/p&gt;
&lt;h1&gt;换了桌子&lt;/h1&gt;
&lt;p&gt;之前的桌子很小，不稳，尺寸是&lt;code&gt;130*60*70&lt;/code&gt;
为了放下MacBook需要拔高主显示器的高度，这样做会让屏幕挂灯在开启时有剧烈的反光。
年后和朋友们去宜家量了尺寸，购入了乌斯佩的电竞桌，尺寸是&lt;code&gt;170*80*高度可调&lt;/code&gt;&lt;/p&gt;
&lt;h2&gt;多设备切换&lt;/h2&gt;
&lt;p&gt;因为居家我只使用这一套键鼠,我用绿联的usb3.0转换器接入了键盘鼠标和一个固态,可以一键切换设备.在用win的时候只需要将悬臂拉起转过去即可,不会遮挡桌面区域.之前桌子抽屉内的物品买了一些小盒子放在购置的柜子中.&lt;/p&gt;
&lt;h2&gt;理线&lt;/h2&gt;
&lt;p&gt;这个桌子后面的网状结构下面是一个弹力线编制的布兜,线从桌面和网状结构中间穿过,在下方接入电源.因此不用怎么理线.
键盘是NIZplum84,资金不足我买的有线.鼠标是delux,同学送的,3390的传感器,60g不到.手机供电是购买了宜家的无线充电器,功率只有5W.
关于理线我也没什么好的心得,我更倾向于先把单设备的所有线给缠在一起,然后理到桌子下面,再和其他设备的线分类缠好,最后接入电源.&lt;/p&gt;
&lt;h2&gt;一些额外配置&lt;/h2&gt;
&lt;p&gt;朋友为了在家组mesh要走了华为AX3pro路由,给我了一个Glinet的AXT1800,自带OpenWrt,家里有公网,之前一直用来跑Minecraft服务器和当媒体服务器,后来不用就关了,4T机械也没了用处.AXT1800有一个usb3.0,用硬盘盒接入后SMB连接存了一些照片和电影.缺点是功率没有AX3pro大,主卧会收不到信号.&lt;/p&gt;
</content:encoded></item><item><title>让你的MacBook更顺手一点</title><link>https://blog.asyncx.top/posts/2022-08-10/</link><guid isPermaLink="true">https://blog.asyncx.top/posts/2022-08-10/</guid><description>                                                  </description><pubDate>Wed, 10 Aug 2022 17:08:00 GMT</pubDate><content:encoded>&lt;p&gt;用MacBook Pro已经半年了，也试了不少软件。基于我自己的使用习惯，分为以下几类总结一下：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;1.记录
2.工具
&lt;/code&gt;&lt;/pre&gt;
&lt;h1&gt;记录&lt;/h1&gt;
&lt;h2&gt;Obsidian&lt;/h2&gt;
&lt;p&gt;对我来说这是一个All in one的笔记软件，配合良好的社区生态实现了静态博客的自动推送。以及我目前的数据结构笔记也在里面存储。
&lt;a href=&quot;https://hi.asyncx.top/2022/05/15/%E5%A6%82%E4%BD%95%E9%85%8D%E7%BD%AE%E4%B8%80%E4%B8%AA%E9%9D%99%E6%80%81%E5%8D%9A%E5%AE%A2%E7%9A%84%E5%B7%A5%E4%BD%9C%E6%B5%81/&quot;&gt;如何配置一个静态博客工作流&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Sidenotes&lt;/h2&gt;
&lt;p&gt;这是一个mac的侧边栏记录软件，好处就是你可以随手记录随时看。&lt;/p&gt;
&lt;h2&gt;Notion&lt;/h2&gt;
&lt;p&gt;目前仅用来和朋友进行部分信息共享编辑&lt;/p&gt;
&lt;h2&gt;Goodnotes&lt;/h2&gt;
&lt;p&gt;使用iCloud和iPad同步我的笔记，学习用。&lt;/p&gt;
&lt;h2&gt;IThoughsX&lt;/h2&gt;
&lt;p&gt;我用过的最好用的思维导图，个人认为比XMind强。&lt;/p&gt;
&lt;h1&gt;工具&lt;/h1&gt;
&lt;h2&gt;Dropzone&lt;/h2&gt;
&lt;p&gt;配合脚本可以实现你想实现的任何功能
&lt;img src=&quot;https://typecho-asyncx.oss-cn-qingdao.aliyuncs.com/202208101716832.png&quot; alt=&quot;&quot; /&gt;
比如一键添加到Sidenotes&lt;/p&gt;
&lt;h2&gt;简阅&lt;/h2&gt;
&lt;p&gt;这是一款付费买断制的浏览器插件，功能多且强，在阅读图文内容时可以帮你更专注于信息本身。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;简悦 - 为你提供「如杂志般沉浸式阅读体验」的扩展&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;配合着插件我可以将网页内容直接同步到Obsidian,在整理后进行归档。&lt;/p&gt;
&lt;h2&gt;Omi录屏专家&lt;/h2&gt;
&lt;p&gt;多功能录屏，适合分享屏幕操作。&lt;/p&gt;
</content:encoded></item><item><title>第一次养猫发现的一些事</title><link>https://blog.asyncx.top/posts/2022-07-19/</link><guid isPermaLink="true">https://blog.asyncx.top/posts/2022-07-19/</guid><description>                                                  </description><pubDate>Tue, 19 Jul 2022 18:07:00 GMT</pubDate><content:encoded>&lt;p&gt;第一次养猫肯定都会焦虑，绑架毛毛已经一个月了，感觉就是除了咬人已经无所谓了。
这一个月毛毛大致是这样过渡的：&lt;/p&gt;
&lt;h1&gt;前两周&lt;/h1&gt;
&lt;p&gt;笼养，在一周后实验性的放出来，缩在阳台边，在窗帘后面躲我，哈人，只要我在就不吃东西。
第二周，只要我在就放出来，用冻干诱惑她。会哈人。&lt;/p&gt;
&lt;h1&gt;第三周&lt;/h1&gt;
&lt;p&gt;比较活泼，但是人走动还是会怕，找她会躲，会哈人，带她打了猫三联第一针。&lt;/p&gt;
&lt;h1&gt;第四周至今一月整&lt;/h1&gt;
&lt;p&gt;试探性的靠近我，玩具都会玩，据我推断快要知道自己叫毛毛了。减少了猫条诱惑她的次数，换粮，掺鸡胸肉。
已经会贴着我的屁股在椅子上睡觉了。&lt;/p&gt;
&lt;h1&gt;月度总结&lt;/h1&gt;
&lt;p&gt;毛毛状态变得不错，但是自己学会咬人了，已经咬伤我两次了。不过小猫不用打疫苗。现在的情况是打算让她知道咬人是要挨揍挨关的。&lt;/p&gt;
</content:encoded></item><item><title>绑架代替购买了一只小猫</title><link>https://blog.asyncx.top/posts/2022-06-23/</link><guid isPermaLink="true">https://blog.asyncx.top/posts/2022-06-23/</guid><description>                                                  </description><pubDate>Thu, 23 Jun 2022 22:06:00 GMT</pubDate><content:encoded>&lt;p&gt;在学校的时候，和老张在看二楼的一窝小猫的时候发现了一只长毛小白猫。跟兄弟姐妹们格格不入。
真是心动不如行动，在抓猫前辈老白的指挥下一晚上就逮到了。
给她起名叫毛毛的原因是希望她长大后还是可以毛茸茸的，希望她可以变成粘人的小胖猫吧。&lt;/p&gt;
&lt;h1&gt;6.23 感想&lt;/h1&gt;
&lt;p&gt;立个flag吧：在论文结束后重整一下生活，变得井井有条。
很多事情堆积到了一起，包括但不限于：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;协商好养猫后家里的阻挠&lt;/li&gt;
&lt;li&gt;论文的进度个人认为不尽人意&lt;/li&gt;
&lt;li&gt;回家后学习时间和学校相比变得更少&lt;/li&gt;
&lt;li&gt;精神上的内耗&lt;/li&gt;
&lt;/ol&gt;
</content:encoded></item><item><title>数字藏品？</title><link>https://blog.asyncx.top/posts/2022-06-14/</link><guid isPermaLink="true">https://blog.asyncx.top/posts/2022-06-14/</guid><description>                                                  </description><pubDate>Tue, 14 Jun 2022 21:06:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;数字藏品是指使用&lt;a href=&quot;https://baike.baidu.com/item/%E5%8C%BA%E5%9D%97%E9%93%BE%E6%8A%80%E6%9C%AF/23686191&quot;&gt;区块链技术&lt;/a&gt;，对应特定的作品、艺术品生成的唯一数字凭证，在保护其&lt;a href=&quot;https://baike.baidu.com/item/%E6%95%B0%E5%AD%97%E7%89%88%E6%9D%83/3798171&quot;&gt;数字版权&lt;/a&gt;的基础上，实现真实可信的数字化发行、购买、收藏和使用。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;最近朋友帮我弄数字藏品，小赚了一笔，我要做的只是在各个平台发售的时间去抢藏品，抢到后就可以说是必赚的。数字藏品目前的泡沫非常大，相对于国外的平台，如opensea等，国内的各个平台由于政策原因只能限制流动性，数藏没有流动性就没有价值。所以你会发现小型平台的藏品发行方往往是和平台合作，而不是本身的ip多出名。
在你进行二级市场交易时，平台会收取部分手续费；在你提现的时候，平台也会收取部分手续费。在你抢购的时候，钱给了平台和合作方。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;平台圈钱，庄家割韭菜&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;总之，抢首发卖掉套利就行了，首发抢到了一般是不会亏的，及时卖掉套现。我朋友最近在凑什么合成赋能，希望他别成为大韭菜吧🙏🏻🙏🏻🙏🏻
国内数藏想赚快钱的可以入，快进快出，别成为接盘侠；想搞价值投资就没必要入，目前看不出有长远价值，规范政策出台我认为会大幅度掉价。投资有风险，接盘需谨慎.&lt;/p&gt;
</content:encoded></item><item><title>近些天和对于科幻的一些看法</title><link>https://blog.asyncx.top/posts/2022-05-22/</link><guid isPermaLink="true">https://blog.asyncx.top/posts/2022-05-22/</guid><description>                                                  </description><pubDate>Mon, 30 May 2022 22:05:00 GMT</pubDate><content:encoded>&lt;p&gt;又开始忙了，感觉越到ddl，我越会去强迫自己放松，大脑奖励机制被强制激活的那种感觉，于是看了一大堆的美剧和电影。:P
&lt;img src=&quot;https://typecho-asyncx.oss-cn-qingdao.aliyuncs.com/202205222218049.png&quot; alt=&quot;近期横扫的电影&quot; /&gt;&lt;/p&gt;
&lt;p&gt;这么说来科幻题材的电影是我众多爱好里最难割舍的一个了。
印象里，小时候在香港看了IMAX的《创：战纪》和《阿凡达》，光轮摩托和魅影成了我那时候做梦最经常出现的东西。几乎每一部高/中评分科幻，魔幻电影我都会看。印象里从初中开始每周我都回去电影院看电影，这一爱好持续到高二，很多事情记得不是很清了，权当记录对我影响最大的作品和一些回忆。&lt;/p&gt;
&lt;h1&gt;刘慈欣和他的《三体》&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;《三体》是&lt;a href=&quot;https://baike.baidu.com/item/%E5%88%98%E6%85%88%E6%AC%A3/142084&quot;&gt;刘慈欣&lt;/a&gt;创作的系列长篇科幻小说，由《三体》《&lt;a href=&quot;https://baike.baidu.com/item/%E4%B8%89%E4%BD%932%EF%BC%9A%E9%BB%91%E6%9A%97%E6%A3%AE%E6%9E%97/5167055&quot;&gt;三体2：黑暗森林&lt;/a&gt;》《&lt;a href=&quot;https://baike.baidu.com/item/%E4%B8%89%E4%BD%933%EF%BC%9A%E6%AD%BB%E7%A5%9E%E6%B0%B8%E7%94%9F/3469895&quot;&gt;三体3：死神永生&lt;/a&gt;》组成，第一部于2006年5月起在《&lt;a href=&quot;https://baike.baidu.com/item/%E7%A7%91%E5%B9%BB%E4%B8%96%E7%95%8C/298990&quot;&gt;科幻世界&lt;/a&gt;》杂志上连载，第二部于2008年5月首次出版，第三部则于2010年11月出版。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;三体是我看的第一部长篇小说，虽然那时候的阅读理解能力和联想能力并不成熟，我依旧可以感受到文明的兴衰和压迫。我无法出于个人捧高这样一部作品，但是它“如此尽情地描绘人类终结之时的场景”，让我看到了相对于宇宙和文明，如此微不足道的生命们。
内容已经忘记大部分，考研后会后续补写感想。&lt;/p&gt;
&lt;h1&gt;《科幻世界》和《科幻世界/译文版》&lt;/h1&gt;
&lt;p&gt;依稀记得不知道初二的什么时候，去门口的书店闲逛，看到了封皮是一个小人，手中举着某部作品的道具，身上被霜之哀伤，昆古尼尔，波斯王子时之沙的匕首...之类的东西围着的《科幻世界》，一本10块钱，一周1/10的生活费，那叫心痛啊，但是没忍住。
&lt;img src=&quot;https://typecho-asyncx.oss-cn-qingdao.aliyuncs.com/202205222240960.png&quot; alt=&quot;&quot; /&gt;
在那里，我看完了在几年后大火的《头号玩家》（我更喜欢称之为玩家一号），看到了几年后的许多《Love，Death &amp;amp; Robots》的原著小说，看完了无数恢弘的长中篇和伏笔无数的短篇，真的非常感谢，与此同时，我也开始关注恩斯特·克莱恩&lt;/p&gt;
&lt;h1&gt;《安德的游戏》《无敌舰队》&lt;/h1&gt;
&lt;p&gt;在我看来这两部作品虽然很像，但是侧重点是不同的，前者更倾向于种族，后者仍用充斥着早期流行文化的语言来描写相对轻松和美好的结局。
或许他们对我并没有起到很大影响，但是我也建议读者去看一看。--当然是原著&lt;/p&gt;
&lt;h1&gt;《冰与火之歌》&lt;/h1&gt;
&lt;p&gt;这个不用我多说，但是看到后面我就只看有黑白之院的故事了。&lt;/p&gt;
&lt;h1&gt;《副本（三部曲）》《怒火重燃》《坠落天使》&lt;/h1&gt;
&lt;p&gt;武·科瓦奇系列应该是我最喜欢的小说之一了，讲述了一个集合谋杀、爱、性和背叛的精彩故事。第一人称讲述，这让我喜欢上了反乌托邦，Cyberpunk的世界。&lt;/p&gt;
&lt;h1&gt;“赛博朋克”&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;Cyberpunk，又称作“赛伯朋克”，是“&lt;a href=&quot;https://baike.baidu.com/item/%E6%8E%A7%E5%88%B6%E8%AE%BA/1139081&quot;&gt;控制论&lt;/a&gt;、神经机械学”与“朋克”的结合词。该背景大多描绘在未来，建立于“低端生活与高等科技结合”的基础上，拥有先进&lt;a href=&quot;https://baike.baidu.com/item/%E7%A7%91%E5%AD%A6%E6%8A%80%E6%9C%AF/3348043&quot;&gt;科学技术&lt;/a&gt;，再以一定程度崩坏的&lt;a href=&quot;https://baike.baidu.com/item/%E7%A4%BE%E4%BC%9A%E7%BB%93%E6%9E%84/82310&quot;&gt;社会结构&lt;/a&gt;做对比。
拥有五花八门的视觉冲击效果，比如街头的霓虹灯、街排标志性广告以及高楼建筑等，通常搭配色彩是以黑、紫、绿、蓝、红为主，但霓虹灯等只是其中标志，并不是所有霓虹灯相关的都称为赛博朋克。故事框架是以&lt;a href=&quot;https://baike.baidu.com/item/%E7%A4%BE%E4%BC%9A%E7%A7%A9%E5%BA%8F/6157440&quot;&gt;社会秩序&lt;/a&gt;受到&lt;a href=&quot;https://baike.baidu.com/item/%E6%94%BF%E5%BA%9C/1416952&quot;&gt;政府&lt;/a&gt;或&lt;a href=&quot;https://baike.baidu.com/item/%E8%B4%A2%E5%9B%A2/436908&quot;&gt;财团&lt;/a&gt;或秘密组织的高度控制，而主角利用其中的漏洞做出了某种突破。
赛博朋克的情节通常围绕黑客、人工智能及大型企业之间的矛盾而展开，背景设在不远的将来的一个&lt;a href=&quot;https://baike.baidu.com/item/%E5%8F%8D%E4%B9%8C%E6%89%98%E9%82%A6/9441528&quot;&gt;反乌托邦&lt;/a&gt;地球，而不是早期赛博朋克的外太空。它实际上标志着针对以往科幻小说不注重信息技术的具体设定的缺点的改善和进步。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;赛博朋克2077&lt;/h2&gt;
&lt;p&gt;2013年，受到《猎魔人》（游戏：巫师系列原著小说）的影响，我开始关注一些游戏公司，CD Project的一个新企划让我感到很震撼。
&lt;img src=&quot;https://typecho-asyncx.oss-cn-qingdao.aliyuncs.com/202205222256343.png&quot; alt=&quot;&quot; /&gt;
我开始主动了解所谓的“赛博朋克”，这一了解就是8年。&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;2013-Cyberpunk先导预告

2015-项目宣布取消

2018-项目宣布重启，更名为Cyberpunk2077
	基努里维斯扮演Jonny·silverhand
	
2021年，正式发布
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;新世纪福音战士&lt;/h2&gt;
&lt;p&gt;这还就是赛博朋克，围绕着老贼的和解，充斥着宗教元素。在此不过多解读，全网的解读自寻，eva对我的影响很大，但是不多。
体现在高达之后让我更喜欢机甲，浓重的宗教气息让我对各类神话体系有了了解的兴趣。&lt;/p&gt;
&lt;h2&gt;攻壳机动队&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;公元2029年，在这个时代，以光、电子和生化技术为基础的电脑、&lt;a href=&quot;https://baike.baidu.com/item/AI/25417&quot;&gt;AI&lt;/a&gt;和网络主导着每个人的生活。移动通讯向人体靠拢，从可移动通讯终端（&lt;a href=&quot;https://baike.baidu.com/item/mobile&quot;&gt;mobile&lt;/a&gt;、手机等）开始，经由可穿戴通讯终端的阶段，逐渐发展到了可移植通讯终端的阶段。技术的发展使得通讯终端直接植入人体成为可能，人类的躯体和思想从此可以直接与标准的计算机和网络互动。这些可移植的终端逐渐的替代了过时的可移动/&lt;a href=&quot;https://baike.baidu.com/item/%E5%8F%AF%E7%A9%BF%E6%88%B4%E6%8A%80%E6%9C%AF/6163612&quot;&gt;可穿戴技术&lt;/a&gt;，最终的发展形态就是Cyberbrain（电子脑）的原型。另一方面，通过机械部件来代替身体器官的&lt;a href=&quot;https://baike.baidu.com/item/%E4%B9%89%E4%BD%93&quot;&gt;义体&lt;/a&gt;技术“Cyborg Technology”飞速发展，甚至“所有器官都是人造的”这种极端的情况也可以轻松做到。改造一部分身体结构的人有之，只保留大脑而全身机械化的人有之，几乎所有人类都进行了不同程度的改造，很多人的身体都有着与网络连接的端口（在脖子后面），对他们来说，身体只是一个电脑终端而已，是一个容纳人类灵魂的容器。人类和机器融为一体，人和机器的界限也变得模糊。由于AI技术的高速发展，人和机器似乎只能通过有没有“灵魂（ghost）”来区分。 极端来说，一个全人造的义体，用程序控制就是机器AI，输入灵魂就变成了人，或者说是生化人。但是，“灵魂”究竟是什么呢？&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;和《副本》类似，对于“灵魂”和“肉体”的关系让我有了更深层的思想，欢迎讨论你的看法。&lt;/p&gt;
&lt;h2&gt;Daftpunk&lt;/h2&gt;
&lt;p&gt;《TRON：Legacy》的原创音乐全由蠢朋克操刀，感兴趣可以去搜索听一下。&lt;/p&gt;
&lt;h1&gt;thinking&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;Because we don&apos;t know when we will die,we get to think of life as an inexhaustible well.And yet everything happens only a certain number of times,and a very small number really.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;要有满满的求知欲，要对陌生事物保持好奇心，对不熟悉的东西不要轻易否定，要有时刻保持独立思考的意识，要有从海量信息中辨别提取重要信息的能力，要有超出常人的耐心、格局和抗压能力。
不说十年，希望五年后的自己，能看得起现在努力的自己。&lt;/p&gt;
</content:encoded></item></channel></rss>