普通视图

发现新文章,点击刷新页面。
昨天以前Cysime Moflu

从Disqus迁移到Waline的踩坑笔记

2025年12月3日 09:05
Featured image of post 从Disqus迁移到Waline的踩坑笔记

我的博客是2022年从Wordpress换成Hugo的,受制于Hugo这种纯静态框架的限制,必须要额外再配备评论系统。当时Waline等产品只能使用Leancloud作为数据库,所以为了省事直接用的Disqus,后者是可以直接接入Wordpress的,因此可以非常简单地转移到Hugo,并且使用DisqusJS这样的项目并配合反向代理的话体验还不错。但到了现在,即便使用了Vercel的反代,Disqus的体验也很难说好,且我还多次收到反馈说有用户根本没法加载Disqus评论区。为了能有个阳间一点的体验,是时候换个新的了。

评论系统的选择

我的Hugo主题是Stack,它内置支持了不少评论系统,所以直接在兼容列表里面选择是最方便的。

其实当前评论系统无非两类:

一是Giscus、Gitalk这类利用Github Discuss或者Issues的,很方便搭建且无需再配备数据库,使用GitHub登录也一定程度上避免了Spam,但缺点也是GitHub:它必须也只能使用GitHub(或类似平台)登录;另一类比如Twikoo、Waline就支持匿名评论,和WordPress的体验完全一致,但缺点是需要自行配备数据库存储评论。

我个人来讲还是更希望使用类似WordPress那样的匿名评论系统,无需登录,仅需留下邮箱和昵称即可直接评论;同时访客也并不一定有GitHub账号。当时使用Disqus其实也有这个原因,因为Disqus其实也是可以不用注册账号就能评论的。

基于上面的需求且比较适合国人的就只有Twikoo和Waline了。

Twikoo是个新一点的评论系统,使用MongoDB,我个人感觉相较于Waline来讲要更简约简单一点。但有一个问题:太简单了。它没有单独的后台,只能自己找一个使用了Twikoo的页面进入管理面板,且这个面板不能在新页面中打开而是就评论区里面原地启动,显而易见地这个面板的展开面积就很小了。虽然GUI可修改的各种自定义项目很多(但主题都已经适配好了,所以一般来讲是不需要动的),管理起来是真的有点麻烦。如果有个独立面板就更好了。

另一个大问题就是,我们都知道这些评论系统是通过文章URL来判断并输出对应文章的评论的,Twikoo配置的文章URL是使用的绝对路径而非相对路径,但我这个博客现在绑定了2个域名,且后续我想把cysi.me这个顶级域名也改成博客本体,如果评论对应的文章URL全是绝对路径(如https://example.com/post/1)而非相对路径(如/post/1),一旦域名更换就必然无法识别。

至于Waline,已经存在挺久了,且现在还在活跃更新,用户群也不少。早年它只能用Leancloud数据库,当时因为这个也走了点弯路去用了Disqus,但现在它还支持MongoDB等多种数据库了。我最终也选择使用Waline。

搭建和配置Waline

使用MongoDB+Vercel搭建

我使用的是Vercel+MongoDB的组合,其中Vercel的部分可以参考官方文档。需要注意的是,官方文档的“快速上手”是基于Leancloud数据库的,如果不想使用Leancloud(比如我这种使用MongoDB的)则需要修改Vercel那边对应的环境变量,具体可以查阅这里

总体来讲搭建并不算难,但MongoDB这边会有个坑,MongoDB默认给的URI是mongodb+srv://格式的,可以让客户端自动从DNS获取Seedlist服务器列表,但Waline的MongoDB实现比较老,并不支持+srv自动获取完整服务器列表(如果直接使用新版URI,Waline会出现500错误),必须获取旧版的mongodb://格式链接从而提取出服务器地址。

MongoDB

因此,我们需要在MongoDB面板中,点击Connect,并选择Compass,如上图一样选择“I have MongoDB Compass installed”,版本选择“1.11 or earlier”,你会得到类似这样的URI。

1
mongodb://<username>:<db_password>@ac-vm0ftwk-shard-00-00.9cdzdlb.mongodb.net:27017,ac-vm0ftwk-shard-00-01.9cdzdlb.mongodb.net:27017,ac-vm0ftwk-shard-00-02.9cdzdlb.mongodb.net:27017/?replicaSet=atlas-opg9fs-shard-0&ssl=true&authSource=admin

可以看到这上面有3个服务器地址,我们提取出来。然后缝合进Waline官方已经整理好的环境变量里面,并将其设置进Vercel项目内即可。Waline部署完成后,访问https://<your-site-url>/ui即可进入后台并创建用户即可。

1
2
3
4
5
6
7
8
9
// 服务器列表,记得换上上面提取出来的地址
MONGO_HOST=["cluster0-shard-00-00.p4edw.mongodb.net","cluster0-shard-00-01.p4edw.mongodb.net","cluster0-shard-00-02.p4edw.mongodb.net"]
MONGO_PORT=[27017,27017,27017,27017]
MONGO_DB=waline
MONGO_USER=admin //修改为你设置的username
MONGO_PASSWORD=xxxx
MONGO_REPLICASET=atlas-12cebf-shard-0
MONGO_AUTHSOURCE=admin
MONGO_OPT_SSL=true

评论迁移

迁移也并不困难,先去Disqus的导出数据页面导出并下载数据,再在Waline官方提供的迁移助手转换即可,记得要选对Waline的数据库格式。如果是MongoDB,导出的数据是CSV格式。

正常情况下,直接在MongoDB那边导入这个CSV数据到Comment数据表里面就行了,MongoDB官方有一个GUI管理工具Compass,可以直接导入CSV文件, 官方也同样提供了相应教程。如果不需要修改数据,导入CSV到指定数据库里面就算完成了,这时候评论系统也可以正常使用且旧评论都会正常迁移过去。

整理文章

但我这里情况比较特殊,我的博客已经跑了10多年了而且期间变过很多次永久链接格式(Permalink),而且还变过网站架构(Wordpress变成Hugo),这一系列操作下来,结果就是我的博客的链接格式是很混乱的,比如有的链接末尾带了/而有的没有。另一个问题是,我之前启用了Hugo的uglyURL功能,它会在博客内所有页面添加.html的后缀,致敬早年SEO的伪装静态文件的做法(实际上是因为我当时WordPress链接就是这样子的格式,为了保留后缀所以启用了这个功能),但这个uglyURL功能仅对Hugo设置中的baseURL对应域名才有效,且baseURL仅能设置一个——但我的博客有多个域名,也就是说,我现在只有https://blog.cysi.me这一个域名底下的URL后缀会带有.html而其他任何域名都不会有,除非我在每个Markdown文件的slug或者url字段都添加该后缀。

而Waline这些评论系统是靠文章URL来输出对应URL下的评论内容的,即便它使用的是相对路径,理论上不同域名只要URL结构一样也不会出问题,评论都可以正常在各个域名中正常共享,但基于我上面的情况,还是引发了两个坑:

  1. Waline会把同URL但末尾带或者不带/的链接认为是2个不同文章,同理,带或者不带.html后缀也是会被识别成不同的文章的。Waline实际上提供了一个解决方案,就是在客户端处增加一个path属性,但我添加了这个字段没有起作用,所以我就开始考虑直接修改数据库的内容,此举顺便也是为了整理和梳理我博客混乱的永久链接的格式,将所有文章URL的格式统一。
  2. 要完全统一URL格式,就必须关闭uglyURL功能,也就说所有的.html后缀都将会被移除,但此时访问带有.html后缀的URL都不会正常跳转并直接报错404。

好在这两个问题解决起来不难,第1个问题,上一步里面使用迁移助手转换得到的CSV文件,可以直接使用编辑器进行编辑,具体步骤就不必赘述了,毕竟现在让AI帮忙也很简单,然后再导入进MongoDB,会比直接在MongoDB上面使用数据库语句要方便点。Hugo默认情况下,文章URL末尾均带有/后缀,因此,我就要使用编辑器将CSV里面的评论URL字段,去除所有不必要的后缀(比如.html)并再在末尾都统一添加上/

接下来处理问题2,关闭了uglyURL之后,实质上我现在的URL格式已经得到统一,但还是得做一个跳转(至少是旧的文章需要做跳转),避免出现404问题。其实Vercel等平台是可以直接跳转的,只需要在vercel.json内设置跳转即可,但我碰巧使用了多个平台(不同域名使用了不同的部署平台),经过考量我决定直接在Markdown的Frontmatter元数据里面设定aliases字段(也就是别名),我们可以在别名中添加.html后缀,这样就可以自动跳转了。这种办法的好处是完全不挑平台支持跳转与否,完全通用。直接让Gemini生成了个Python脚本,这个脚本会递归扫描指定目录,处理所有 .md 文件,并按照此逻辑优先级执行:

  1. 有 aliases -> 跳过。
  2. 无 aliases 但有 url -> 新增 aliases 为 url内容.html。
  3. 无 aliases 且无 url,但有 slug -> 新增 aliases 为 slug内容.html。

运行该脚本后,我所有文章都会添加一个带有.html后缀的别名,访问后会自动跳转Hugo的标准无后缀的URL上,避免出现404错误。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
import os
import re

def process_markdown_files(root_dir):
 # 遍历目录及其子目录
 for root, dirs, files in os.walk(root_dir):
 for file in files:
 if file.endswith(".md"):
 file_path = os.path.join(root, file)
 process_single_file(file_path)

def process_single_file(file_path):
 try:
 with open(file_path, 'r', encoding='utf-8') as f:
 content = f.read()
 except Exception as e:
 print(f"❌ 读取错误: {file_path} - {e}")
 return

 # 正则表达式:匹配 Frontmatter (位于文件开头的两个 --- 之间)
 # re.DOTALL 让 . 也能匹配换行符
 fm_pattern = re.compile(r'^---\s*\n(.*?)\n---\s*\n', re.DOTALL)
 match = fm_pattern.match(content)

 if not match:
 # print(f"⚠️ 跳过 (无 Frontmatter): {file_path}")
 return

 frontmatter_content = match.group(1)

 # 1. 检查是否已经存在 aliases
 if re.search(r'^aliases:', frontmatter_content, re.MULTILINE):
 # print(f"⏭️ 跳过 (已有 aliases): {file_path}")
 return

 # 寻找 url 或 slug
 # 匹配 key: value 格式,并捕获 value 部分(去除首尾空格和引号)
 url_match = re.search(r'^url:\s*(.+)$', frontmatter_content, re.MULTILINE)
 slug_match = re.search(r'^slug:\s*(.+)$', frontmatter_content, re.MULTILINE)

 target_value = None
 source_field = ""

 # 2. 逻辑优先级:先找 url,没有再找 slug
 if url_match:
 raw_value = url_match.group(1).strip()
 # 去除可能存在的引号
 target_value = raw_value.strip('"\'')
 source_field = "url"
 elif slug_match:
 raw_value = slug_match.group(1).strip()
 target_value = raw_value.strip('"\'')
 source_field = "slug"

 if target_value:
 # 3. 构造新的 aliases 字段
 # 注意:通常 aliases 是一个数组,为了兼容性,这里写成 aliases: ["value.html"]
 # 如果你的内容里已经有.html后缀,这里会重复添加吗?
 # 根据你的要求:“内容并在其末尾添加.html”,这里不做去重检查,直接添加。

 new_alias_line = f'aliases: ["{target_value}.html"]'

 # 将新字段插入到 frontmatter 的末尾(但在第二个 --- 之前)
 new_frontmatter = frontmatter_content + "\n" + new_alias_line

 # 替换原文中的 Frontmatter 部分
 # 只替换第一个匹配项
 new_content = content.replace(frontmatter_content, new_frontmatter, 1)

 try:
 with open(file_path, 'w', encoding='utf-8') as f:
 f.write(new_content)
 print(f"✅ 已修改 ({source_field} -> aliases): {file_path}")
 except Exception as e:
 print(f"❌ 写入错误: {file_path} - {e}")
 else:
 # print(f"⚪ 跳过 (无 url 也无 slug): {file_path}")
 pass

if __name__ == "__main__":
 # --- 配置区域 ---
 # 将下面的路径改为你的文件夹路径
 # Windows 示例: r"C:\Users\Name\Documents\Notes"
 # Mac/Linux 示例: "/Users/name/notes"
 TARGET_DIR = r"./my_markdown_files"

 print(f"🚀 开始扫描目录: {TARGET_DIR}")
 if os.path.exists(TARGET_DIR):
 process_markdown_files(TARGET_DIR)
 print("🎉 处理完成!")
 else:
 print("❌ 错误: 找不到指定的目录,请检查路径配置。")

完成

至此,整理工作终于完成,文章URL得到了整理和统一,评论系统也正常工作,旧的评论也正常显示。唯一问题是所有评论者的头像(即邮箱)、网站链接都会被抹掉,但可惜的是这个无法解决,因为Disqus的原始数据里面根本就不提供这些信息,且为了隐私保护,Disqus的后台是无法看到用户的邮箱的。

其实这次折腾更多是整理博客的结构,当初迁移到Hugo的时候太匆忙,细节上没有做好,现在再擦屁股考虑的事情就多了,不过趁此机会把之前遗留问题都清理了一下,整个Hugo的结构也看起来更干净了,还是不错的。

天使吉米/Tanchjim Force双动圈耳塞个人听感报告

2025年11月26日 14:00
Featured image of post 天使吉米/Tanchjim Force双动圈耳塞个人听感报告

Force是一款比较有意思的耳机,双动圈并做了开放式架构,在当前国产耳塞里,尤其是各种动圈、动铁乃至平板、静电多单元如同叠Buff一样并大行其道的环境下,应该不算多见,我愿称之为“比较克制地单元叠加”。

在一次试听之后我觉得它还不错,且我对手上已经用了多年的耳塞,尤其是达音科DK3001Pro已经不甚满意(毕竟这已经是2019年的耳塞了,连原线都已经被磨破了的那种),换耳塞的日程便提了上来。卖掉手里的3001Pro和水月雨的Kato后,趁京东24期免息加折扣直接拿下Tanchjim Force。

外观

外观一直以来都是Tanchjim产品值得称道的一点,家族化风格较为统一的设计语言、非常克制且简约又简单的外观,相较于国内一些喜欢在单元外观上搞点花里胡哨东西的厂家显得非常…“正常”(虽然它是非常正统的二次元品牌且Force的包装封面也真印了看板娘)。

Force有一个我来说非常重要的优点,这幅耳塞不是全金属单元而使用树脂+单片铝合金盖板的组合,大幅度降低了单元重量,以至于拿在手上甚至都没有什么坠手感。

将这一点单独拿出来是因为我实在是深受全金属单元耳塞其害多年,不管是达音科DK3001Pro还是水月雨Kato,单元外壳都是金属且还是选用的铸铁和不锈钢这种非常重且导热效果极好的材料。重量让佩戴体验和佩戴时间大打折扣(尤其是3001Pro,一直以来对佩戴舒适度的问题就没停过),而导热太好的金属让冬季使用耳塞的时候必定能来一次透心凉。

基于上面的问题,我尤其想点名批评水月雨Kato(以及它的继承者Kadenz),作为一个单动圈耳塞,本应极度轻便,但使用了不锈钢单元外壳后重量竟然比一些一圈多铁的耳塞还要重,佩戴感受更是不必多提。

配件

Force总算是配上了可换插头的线材(本家的Origin是没有的),虽说我现在已经对4.4mm平衡不太在乎,但配备一个TypeC小型解码插头还是很不错且方便的。但插头非常紧,更换的时候还是有点费力。现目前的可换插头还是没见过一个比达音科的Q-Lock Plus系列更好用的,且那还是2019年就有的东西了。

Tanchjim稍微贵一点的耳塞应该都配备的是同样的耳机包,会比其他品牌的收纳包容量会更大一点,足够塞下耳机和所有的插头,并再加一个小尾巴进去,实用性会更高一点。

线材方面,我对Effect Audio联名不感冒,但材质确实比较舒服,Force的单元本体非常轻,但好在耳挂平衡了重量,佩戴上不至于出现不稳的情况。

听感

接下来是重点听感了,通常来讲耳塞是没必要跟头戴对比的,但这副耳机某些KOL吹得很High,什么声场开阔好似开放大耳,本着娱乐Hufi精神且我正好手里有封闭和开放头戴各一个,所以拜亚DT900PX和天龙D5200也纳入本次对比。

同时,除了数字媒介之外,还将使用配备了电子管(胆机)唱放的黑胶唱片机来测试,因为我也很好奇这种一暖到底的配置能出什么声音。

调音趋势

先放一个简易的频响曲线对比,选取了价格相近的、当前天使吉米的主推单动圈产品Origin(Origin和隔壁水月雨Kadenz的调音比较相似,因此这里就只放Origin了),以及水月雨家的三动圈产品Harmon,后者同样也是被称为“流行神塞”。

同样地,作为参考,也贴出Force和水月雨的VSDF Target的对比。因为这两家二次元厂都比较热衷于做科-Hi产品以至于两家的调音Target经常会很一致,甚至可能Tanchjim家的产品会更贴合VSDF Target…

Origin / Harmon / Force 频响曲线对比(来源:huihifi.com)

Force与水月雨VSDF Target频响曲线对比(来源:huihifi.com

可以从上述曲线大致看到Froce的调音趋势。作为一个双动圈耳塞来讲其低频可谓非常克制,1k以下的低频/中低频区间竟然量是比Origin还少的,高频部分也很平滑,而极高频又比较克制。

需要提的是Force甚至可以看到它除了3k、9k区间的两个峰外,整个10k区间之内跟VSDF Target曲线非常贴合,水和鸡这两家背后果然是有些不可告人的秘密的。

实听测试

接下来是实听环节,我使用的数字回放设备是:

  • 前端:Macbook Pro M2 Pro
  • 解码&耳放:Macbook Pro (3.5mm) / Tanchjim Space (3.5+4.4) / ifi Go Link Max (3.5+4.4)
  • 音频平台:Apple Music,使用工具保持Bit-perfect状态
  • 耳机配置:原线,T-APB高频增强耳套

既然是一副偏向于中低频,适合流行乐的耳塞,也正好是我主要听的类型,那么要试听的曲目必然都是欧美流行。

Charli xcx & Billie Eilish - Guess (2024)

Charli xcx在2024年带来了她现象级专辑《Brat》席卷了整个夏天,和大量优秀艺人的remix专辑也随之推出,我挑选的是与Billie Eilish的Remix版《Guess》。这是一首非常偏下盘的电子舞曲(尽管两位演唱者都是女性)。开头的首段beat的低频非常有力量感,也收得很快,人声开始切入,本曲以低音说唱为主因此可以听到人声距离也会较近,但保持了与伴奏的较好的分离度。

Ariana Grande - imagine (2019)

作为一个真的在百老汇和尼克频道摸爬滚打过的艺人,Ariana Grande拥有比很多流行艺人更好的vocal功底。这首歌是《thank you, next》的Track.01,伴奏旋律非常简单,只有不快的鼓点和少量效果器,人声(及其和声)为绝对主体,人声主体有该有的厚度,此时人声距离并不算贴耳,稍微有一点距离。Ariana Grade在这首曲子的bridge后面直接开始飙海豚音,此时高频不是“女毒”塞的那种可以把高频显得非常具有“穿透感”、明亮的感觉,但好在高频厚度是有的,总体来讲高音表现不差,虽然我会更乐意听到更有穿透感的极高音。

Chappell Roan - Pink Pony Club (2023)

来自中西部红脖子州的女同性恋歌手,2023年的首张录音室专辑《The Rise and Fall of a Midwest Princess》让她荣登年度最佳新人。她在此专辑每场的巡回演出邀请变装皇后表演。这首单曲《Pink Pony Club》放在这里异常合适,同时也是我个人比较喜欢的一首。开场只有钢琴和人声演唱,此时人声会显得靠前,钢琴在左右稍微靠后一点的位置,伴奏位置合适且由于是开放式设计,此时较为扩展的声场使钢琴声左右延展得较好。随后进入副歌,开始切入合成器效果,同时vocal会使用中高音演唱,副歌后半部分使用了更多合成器效果,人声显得比较柔和,但不算很凸显,但也没被合成器效果淹没。

听感总结

Tanchjim Force是一个很有意思的耳机,毫不意外地它是一个偏向于暖声的耳塞并偏向于中下盘,同时人声又有一定厚度但不算很贴耳,有少量音染,对于流行歌曲来讲会更耐听,尽管低频量感不错但实际上低频给的比较克制,我认为不算坏事,一耳朵听感不会觉得太糊(多年前的达音科DK3001Pro比起来就会觉得糊了,哪怕它实际上是圈铁耳机有动铁单元负责高频),在尽量不会太偏离相对中正的调音(见他跟VSDF Target的重合度)的基础上有一定的流行调音取向。它不是所谓暖糊或者氛围感很强烈的耳塞,但我认为恰到好处。同时两个动圈单元也没有发现有任何分频衔接的问题,即便是现在国内多单元系统耳塞大行其道,但不少厂商仍然不会好好调音甚至分频都做不好,只知道拿多单元像叠buff一样丢进耳塞,且大量单元丢进去之后还导致耳塞完全没法被低功率设备推动,耳塞还如果需要上高端播放器甚至台机是极度抽象和本末倒置的。

影像记录:2024年我拍的毛毛(兽装)

2025年1月15日 22:40
Featured image of post 影像记录:2024年我拍的毛毛(兽装)

23 年下半年我在广州找了个工作,再加上 24 年开始越来越多的(商业)兽聚开始将门票提到了接近 400 元,但内容不能说很丰富吧,也只能说几乎没有。除非有朋友会去,否则我更情愿宅家打电动或者出去抽象街拍。

总之,24 年一整年我只去了 2 个展子,五一期间在佛山希尔顿(下次绝不去了)的 Hi Furry;以及七月底在科学城希尔顿的兽界(纯属临时起意,主要是住的近)。

Hi Furry

Hi Furry 这几届的场地都定在佛山而不是广州,且彼时我还住在增城,从广州最东边跑到最西边属实是比较抽象和折磨。

这回也有朋友从成都远到而来,除了展子之前一起去城里逛了圈外,顺便把我 S5 祖传的 50mm 镜头给他了,省下来的钱当然是拿去买松下原厂 35mm(后来发现我并不喜欢用 35mm,就像我的人生一样,既不宽广,也不紧凑)和适马 65mm(后来证明,我真的很喜欢这个焦段)。这两颗镜头也在 Hi Furry 上第一次使用。

——可惜都被会场凌乱无规律且非常丑的灯光毁了大半。下次绝对不会去了。

总之凑合看吧:

兽界

去兽界纯属临时起意,但意外地内容很多,甚至还有独游参展,并难得交到了些新朋友。 ——和兔兔设定组织(我 Fursona 倒也能算兔子,是吧)

P.S. 下面有一些看起来白平衡飘的很厉害的,是使用 GR3 拍摄的,我很喜欢这台小机器,28mm 焦段用起来也很有意思(比 35mm 更有意思!),但自动对焦和自动白平衡非常感人,但受制于机身手动调整也比较麻烦。尤其是我还给自己定了个规矩:在 GR3 绝不拍 RAW。

逃离非洲

2023年9月3日 23:30
Featured image of post 逃离非洲

2018年8月3日,刚毕业的我还有其他几位同为应届生的同事,一同从成都辗转飞往了位于非洲南部的内陆小国马拉维。接近五年的、远在地球另一端的工作生活就此开始。

起始

第一年时我在马拉维的一个世界银行投资的援建项目工作。这是全世界最贫困的国家之一。项目所在地因海拔极低所以常年炎热,一到雨季又会被洪水蹂躏,但大多数人的家都只是土墙草顶,几片硬纸当作窗户;当然了,大多数家庭也没有通电,更没有自来水;来自中国的二手衣物在这里以极低的价格销售,但实际上当地人大多甚至连鞋都穿不起。即便是偏僻到如此程度的地方,这些几乎没有受过多少教育的当地人却非常精通侮辱中国人的动作(拉眼皮)和词汇(Ching-Chong)。

很快,我和我的其他应届生同事的新鲜感、希望对非洲发展做一点贡献的心态全都消散殆尽。再加上项目条件本来就很差——哪怕我们营地的住宿条件已然在镇上属于豪华型(彩钢瓦,水泥砖墙,空调),而早六晚六无休的超长工作时间令人没有多少时间休整,没过半年,就有2位应届生同事离职。

哦对了,我的第一笔工资是在2019年春节前才收到的,在那之前我几乎没有一点储蓄了,甚至只能找朋友暂时借1000块买东西。

就有这么大的雨 每周固定的村超

“所幸”的是,因为某些原因,马拉维的项目无法继续开展,我回国休假过后就不用再去那里了。而休假的那两个月,我才觉得自己回归了文明社会。同时,我也被调到了位于西非的加纳。

艰难的两年

加纳作为西非较为发达的国家之一,工作条件也理所当然地好了很多,且项目也位于首都,闲暇(如果有的话)之时还能去吃点好的(指肯德基、汉堡王、必胜客)或者买买东西。此外,片区领导看重了我的交流能力让我转到了采购和后勤岗位,终于不再需要下工地吃灰了…一切看起来都在朝着比较好的方向走——直到2020年初新冠病毒爆发。

加纳首都阿克拉

2020年中,新冠病毒开始在西非流行,当时加纳政府也开始要求停课停工,但受制于自身条件和统筹能力问题,这个停工政策仅保持了一个月便迫于经济和民众压力而取消。

但就算是在这要求停工的一个月里,我们也依旧被要求要正常工作。当时某个项目有数名中外员工确诊,不仅没有得到重视(要知道,这是2020年),在不久后的新冠专题会上,还被公司总部告知就算如此也必须到岗正常工作,要对感染者追责,同时还规定员工不得私自做新冠病毒检测…却哪怕是口头上的慰问也一句没有。

“如果担心感染,出门就穿防护服啊”,会上这么说。

更令人无奈的是,新冠流行期间受制于“五个一”和航班熔断政策,回国航班锐减、价格飞涨。公司自然不愿意承担过于高昂的票价,并将员工回国休假的审批流程延长到了1~2个月并层层设卡。原本的一年一休、有盼头的时日瞬间就变成无底洞,大家都在等政策松口、票价回落和公司政策正常化。

因为新冠病毒大流行,我第二次出国就不得不在非洲呆了接近2年。此时回国不仅手续繁杂,风险也非常高,尤其是没有直飞航班必须要在第三国转机的情况,如果转机途中的双检测呈阳性,就不得不面对长期滞留和高额花费的情况,而这些费用都只能自己承担,这些案例当时在小红书上比比皆是。

但同时,我的心态又随着时间的流逝逐渐崩溃——直到2021年4月,因为当地政府资金问题,项目工作不饱和,公司这时候突然希望在加纳的员工应休尽休以节约成本。在经历了极为繁琐的回国准备后,我终于在5月中旬登上了回国的航班。同期的不少同事也在此时提出离职。这时候,当年和我一起去马拉维入职的应届生还在这个公司干活的也就只剩下我了。

不过当时我还并没有想过也一起跟着离职,原因现在回想起来可能有点欠考虑:我最初的计划就是至少在非洲做五年,存上一笔钱后再回国考虑别的工作机会;更何况彼时国内就业环境并不是很理想,因为我打算暂时不离职,观望一下。总之,我在2021年确实没有考虑过离开,休假完后带着非常纠结忐忑的心又回到了非洲。

遗憾的是,这次回到非洲,因为种种原因,我的心态从一开始就没有好过。

不过好在,这段时间有朋友向我安利了《最终幻想14》,很快我就被它宏大的世界观和冒险故事吸引,即便是有着400甚至500ms的延迟也抵挡不了我的热情。那段时间只要是工作之余都会打开FF14过主线、打日随——2022年春节那短短几天假期,我几乎把所有的时间都花在了解放多玛上(FF14的4.0版本剧情)。睡眠不足怎么办?也是那个时候我买了一台Nespresso咖啡机,没有条件加奶直接每天两杯意式浓缩,一口闷。

逃离

2022年3月,事情又有了积极的一面,我认识了现在的女朋友,同时也是我决心一定要尽早回国之时。

遗憾的是,2022年也是国内限制入境政策收缩得最严格的一年,同年春节、2月和3月,回国检测一而再再而三地变更:单检变双检,间隔从24小时缩短到非常极限的12小时。这样的高压环境下回国甚至比2021年还要艰难且不可控,更不用提已经涨价到五六万还不能带行李的机票价格。

工作上,因为新冠疫情和俄乌战争带来的一连串后果也没有让我们喘口气。仅2022年,加纳的货币塞地贬值了接近200%,成为了世界上最不保值的货币之一(有卧龙必有凤雏,加纳邻国尼日利亚就是那个凤雏。),而俄乌战争导致乌克兰粮食减产,非洲多数国家粮油暴涨,一袋25kg的大米一度涨到了约600元人民币——一个普通工人一个月工资。项目需要用到的建筑材料也必然未能幸免,供应商开始一日一价。但同时,公司却多次将流程手续复杂化,缓慢且不可控的付款速度加上飞速贬值的货币,给我的工作带来了巨大的压力,高度繁琐的流程还让我经常不得不晚上11、12点还在处理工作——但和996不一样的是,我第二天7点前就需要到岗,而且没有休息日。

但在这样的环境下,我只能静静等待回国的时机。

一直到2022年末,情况才终于有了好转:国内防疫政策松口,随之而来的就是逐步开放入境,第三国转机也不再需要检测,机票也回落到了稍微正常的水平。最适合的时候就要到来了!我提前告知离职的消息、和接手的新同事交接。2023年1月10日,我踏上了逃离非洲的航班,决心不再回来了,也不用每天给自己灌两杯意式浓缩了。我家里也非常支持我离开这个所谓国企铁饭碗,去别的地方找机会发展。

同月月底,我去到了广州和女朋友一起生活。这段时间里,我终于得到了自己梦寐以求而又难得的自由时间:旅游、拍照、看想看的电影和书、逛展子,亦或是什么都不做,没有工地上漫天尘土,真的很开心。

5月的时候,我大学舍友结婚,正好趁此机会再去一趟北方旅行一趟。见到同学交谈时得知,这两年本就是夕阳行业的土木形势又雪上加霜,不少单位还出现了降薪的情况(也包括我之前所在的单位,只不过我提前跑路了而已)。巧的是,这段时间,在非洲那边接我班的同事也告诉我现在项目管理越发混乱、工作必要的流程手续还在不断复杂化、工作时间不断加长,但仍要被降薪。同时,加纳这个国家也因为经济原因几乎破产,公司在加纳全都是政府资金项目,政府破产势必会导致工程款拖欠和工资的进一步的拖欠——已经完全没有必要再回去了,这也坚定了我不再回头干土木的决心。

那接下来呢…?

不再想要继续干土木的想法固然很好,但就算是现在的2023年,国内的就业情况绝对算不上多理想,尤其是还需要考虑到要转行的决定。但好在我在加纳那段时间开始就没有正经的做自己本专业的事情,而是做的采购,这也成了我寻找新工作的切入点。

在这Gap的这半年里,我内心里其实还是有一些焦虑的——确实是因为心里没底,但又不想那么早就开始去找工作,而草草看一下招聘软件反正只能觉得自己什么都不合适,毕竟我决定转行,虽不能说前几年的工作经验全都归零,但确实很多地方仍然需要从头开始。

不过还好,真到自己决心开始找工作的时候(也就是今年7月),我只花了一周就拿到了Offer,虽然工资不能算很高但也说得过去,有双休且公积金缴纳基数很高,除了黄埔这边地方确实很偏,中午实在是没什么好吃的外卖不得不自己每天带饭之外,总体上还是比较满意的。

既然已经来广州做广漂了,工作也找到了,那接下来…就好好打工吧,以后再怎样,也不会比我在非洲,尤其是前两年那样糟糕了——至少是心态上。毕竟,哪的黄土不埋人嘛~

碰巧,我新工作入职也是八月,正好是自己第一份工作的五年后。飞往马拉维之前、在埃塞俄比亚转机时,我在机场拍了一张自己带着的伊布毛绒做纪念,并把这张照片作为了自己群的头像。五年后,我换了新工作,于是我在新家里,换了地方、换了背景里的背包、换了另一只毛绒,又拍了一张新的照片,作为自己逃离非洲后的、新的开始的纪念——当然也就是新的群头像啦!

2018年,亚的斯亚贝巴 2023年,广州

影像记录:2023年OUFC(Furry·兽展)

2023年6月21日 11:06
Featured image of post 影像记录:2023年OUFC(Furry·兽展)

去年双十一,我入手了自己人生中的第一台全画幅微单 松下S5 的双镜头套装,如果到处拍拍都不发的话实在是太浪费了!所以我决定在我的博客上发一些我自己精挑细选的照片,并专门开了相册分类作为记录。那么相册里的第一篇就由OUFC兽聚开始吧。

今年年初OUFC在广州的洲际酒店办了一场,主题为《醒狮夺魁》,可能是因为上一次的酒店合作很糟糕,这次直接办在了洲际,大概是目前国内办Only的场地里最豪华的一次?因为洲际的客房单价很高,所以很难得地,这一次展子的酒店套票反而比较划算,毕竟最低档门票就需要300多。

这只原创的埃及猫与背景的网红果糖(买的设定)及其的粉丝们形成鲜明对比 西装写实毛,非常的elegant!

今年开始身边也有一些朋友开始吐槽兽聚的门票越来越贵,但展子内容却很空洞,创作型摊位极少甚至几乎没有(是的,这些摊位绝大部分都是兽装工作室),不算这些兽聚兽展的正向发展方向,而是在变成纯纯的社交聚会。

不过转变也是有的,OUFC在4月底的这次展子开始转型成为更大众的Only展的形式,没有酒店套票且普通票定价只有90多、场地开在越秀会展、有更多种类的摊位甚至还有签售商摊,虽然还不尽完美,但有个这样的开头总归是极好的。

今年7月还会有一场绿洲展,从上一届的repo和这一届的安排来讲应该是很偏向于创作性的展子,应该可以期待一下!

尝试最清真的Android体验:Google Pixel 6A上手

2022年11月21日 19:10
Featured image of post 尝试最清真的Android体验:Google Pixel 6A上手

Pixel 6A,Pixel 6系列的廉价版机型,但今年一反往常地使用上了和普通机型一样的芯片,即Tensor G1,且价格降到了299美元,因此总体性价比还算是不错的,因为在海外市场里面这个价位连778G的机型都不一定买得到。加之最原生纯粹的Google生态体验和eSIM支持,我决定换掉中看不中用的三星S22之后,将它纳入手中。

开箱与外观

5000加纳赛地入手黑色款,折合人民币2100元,看了下包装背面,竟然还是台版的。

打开Pixel的包装盒,包装盒材质感觉很廉价,而且开盒没有什么阻尼,这一点务必注意,避免新手机开箱就摔了。虽然Google也相应环保号召不再赠送充电器,但是祖传的USB-C转USB-A OTG转接头竟然还在,用来给用户在新旧手机之间传输数据。

Pixel 6A

我本来想要一台绿色的,但可惜没有了,只有黑色款,6A的整体设计语言和普通Pixel 6保持一致,只不过背面全部换成了塑料,不过手感相当不错,而且重量比较轻,只有178g。需要一提的是,这台手机背面的黑色并不统一,摄像头模组上下的黑色灰度是不一样的,Google祖传逼死强迫症设计依旧保留。

耐用性上面,虽说Pixel 6A拥有IP67防护水平,但机身耐用性仍然需要注意:屏幕是使用康宁大猩猩3代,抗刮花性能非常一般,使用几天后我发现屏幕莫名就出现了几个浅划痕,不是钥匙划伤的…而是被另一台iPhone划伤的;另外背壳使用的是塑料后盖,虽然手感并没有因此打折,而且塑料后壳确实比较坚固,很难摔坏,但这也意味着它会非常容易被刮花——这是塑料材质不能避免的问题。使用了一周后,后盖就能看见各种细小划痕了。如果长期使用且想要保障观感的话,手机壳和贴膜一个都不能少。

值得一提的是,虽然背壳是塑料材质,但6A的中框使用的是铝合金而非塑料,且一定比iPhone的铝合金更坚固。

硬件与性能

Pixel 6A的硬件参数如下:

  • Body: 152.2 x 71.8 x 8.9 mm, 178g; Glass front (Gorilla Glass 3), plastic dual-tone back with horizontal camera bar, aluminum frame; IP67 water and dust resistant.
  • Display: 6.1" OLED, 60Hz, HDR, 1080x2400px resolution, 20:9 aspect ratio, 429 ppi.
  • Chipset: Google Tensor (5 nm): Octa-core (2x2.80 GHz Cortex-X1 & 2x2.25 GHz Cortex-A76 & 4x1.80 GHz Cortex-A55); Mali-G78 MP20.
  • Memory: 128GB 6GB RAM; UFS 3.1.
  • OS/Software: Android 12.
  • Rear camera: Wide (main): 12.2 MP, f/1.7, 27mm, (wide), 1/2.55", 1.4µm, dual pixel PDAF, OIS; Ultra wide angle: 12 MP, f/2.2, 17mm, 114˚ (ultrawide), 1.25µm .
  • Front camera: 8 MP, f/2.0, 24mm (wide), 1.12µm.
  • Video capture: Rear camera: 4K@30/60fps, 1080p@30/60/120/240fps; gyro-EIS, OIS; Front camera: 1080p@30fps.
  • Battery: 4410mAh; Fast charging 18W, 24 hour battery life (advertised), USB Power Delivery 3.0.
  • Misc: Fingerprint reader (under display, optical); NFC; stereo speakers; nanoSIM + eSIM;

6A和普通款Pixel 6系列使用的是相同的SoC:Google Tensor G1,或者说是换皮了的双大核心猎户座。理论性能不必赘述,就是标准的X1大核心性能,但是多核心性能却只和778G差不多,Google的旗舰机芯片就这个能力实在是有点令人唏嘘。而且更重要的是,Tensor G1的能耗比也非常糟糕,根据极客湾的测试,拜三星工艺和双X1大核心所赐,Tensor G1的能耗比甚至不如被万人踩的骁龙8Gen1.

虽然理论性能和能耗比非常糟糕,但实际体验下来并不算很差,待机续航还是比三星S22好一些的,但需要注意的是,它的续航能力绝对不能算“良好”,而是只能算“及格”。同时,它的温控做的非常保守,加之我也不玩游戏,暂时没有发现严重的发热问题。如果6A能使用骁龙778G而非Tensor,没准体验还能上升几个档次(再次强调,Tensor的多核心性能和778G相差无几,但能耗比却差得相当大)。

另外需要注意的就是60Hz屏幕和18w充电。是的,Pixel 6A使用的是一块60Hz屏幕,没有高刷。虽然我个不是很在乎(这就是一台备用机,Tensor能耗比本来就不行,使用60Hz至少能真正的省点电),而且必须承认的是原生Android的手势和动画算是比较跟手和流畅的,但没有高刷的话总还是会有不少人在乎的。同时,Tensor G1芯片能耗比糟糕,Pixel的续航并不亮眼,且和一种国外品牌一样,Google同样不会配置高瓦数快充,因此这台4300毫安时电池的手机充满电需要接近2个小时,没错,2个小时——虽然我续航糟糕,但是我充电也很慢呀!

唯一亮点:清真Android

要说Pixel唯一值得买的亮点,那当然就是最原生的Google和Android体验了,作为亲儿子,除了Pixel独占功能之外,Android大版更新也必须是第一个能享受到的,这也是我入手Pixel的唯一理由——毕竟从硬件角度来讲,尤其是在国内市场卷得不能再卷的情况下,Pixel不仅配置不好,价格也不便宜,那么就只能靠软件扳回一局了。

Android 13相较于12并无太多外观上的区别,不过Material You设计是真的非常好看,尤其是这种低饱和度配色,使用起来非常养眼。可惜绝大部分应用都没有去适配。

Google并没有对解锁Bootloader做出任何限制,只需将系统更新到最新版本后,在开发者选项中开启OEM解锁权限,最后使用fastboot命令解锁即可,玩Android的话肯定少不了Magisk和LSPosed框架了,这也是解锁后第一时间要刷上的东西。

值得一提的是,因为我之前考虑到Tensor芯片不可靠的能耗比,所以第一时间就下载刷入了yc调度模块(因为以前使用过MIUI,刷了yc调度后不论发热还是续航提升都不错),因为其Github页面也说明支持Tensor G1芯片。虽然刷入yc调度后发热有所改善,但实际耗电却不减反增,一晚上待机耗电量高达15%,续航大打折扣且Launcher的帧率会被限制到30帧。删掉模块后一切正常,我在酷安里面看了一圈发现也是相同的问题,其他使用者也建议不要使用第三方调度模块。因此对于Pixel设备来讲,还是不使用其他的模块修改调度为妙,毕竟它又不是连778G都能发烫的小米。

拍照

——虽说这种机器最多也就扫扫码。

Pixel 6A采用了从2代就开始在使用的祖传传感器,这套索尼传感器可以在其2、3、4、5代所有机型以及这款6A上面见到,苹果祖传1200万相机看了都直呼内行,用高情商的话来讲就是:采用了久经考验的成熟方案,带来最理想的拍照体验。

虽说传感器没变,但Pixel 6A的拍照效果还算是在同价位的情况下可圈可点的,毕竟GCam的算法有多优秀不必多说,而且这个价位的国产手机摄像头,无不例外地都是很强烈的涂抹感。Pixel相机的出片观感上还是稍好。

总结

总体来说,299美元的Pixel 6A在国外的环境下还算是有竞争力的手机:性能不差、配置中规中矩,还能享受Google无廉价款手机歧视的服务,即三流的硬件,一流的(在国外的)软件体验,总体而言还算可以。但在国内,这些优点都没有太多说服力,且必须要有一定的能力精力去折腾才能“正常地”使用这台手机。这个配置和价格在国内并不亮眼,尤其是目前代购多数都要2600甚至3000元人民币,非常不值,对于广大普通用户来说,都是没有任何必要的。如果说非常喜欢且想要体验Google的生态而且有闲钱、能在2200元左右买到,那么Pixel 6A还是可以考虑的,否则的话就等它变成新一代洋垃圾吧,反正Pixel系列洋垃圾都不会少的,看看现在的3和3XL就知道了。

可能是最具性价比的Apple产品 - Mac Mini M1使用体验

2022年10月14日 05:10
Featured image of post 可能是最具性价比的Apple产品 - Mac Mini M1使用体验

作为西非比较富裕的国家,在加纳淘货比较方便,加之最近发现了一个叫做Jiji的类似于闲鱼的平台,许多当地人都会在里面刊登各种广告,不过这个网站不可以直接交易,只能留一个电话或者WhatsApp以供联系。一个偶然的机会,我在这个平台上发现,终于有人在加纳卖M1芯片的Mac Mini了,(因为绝大部分售卖的是2014年甚至2012年的老款洋垃圾,多数只要不到1000元人民币即可入手。)且开价非常便宜:3800加纳塞地(约合人民币2508元),虽然是官翻货且使用了几周,但价格依旧非常实惠。

于是我试着联系了这位卖家,首先要查验它是否真的是M1芯片款式,好在这个可以靠机器背面接口部分轻松辨识,对方也很配合地发来了照片,并附上了序列号照片。查验无误后我即刻买下,三小时后,闪送骑手把它安稳地送到了我的手中,到货验收付款,整个流程非常顺滑。 时隔两年,我又有Mac用啦!

开箱

由于是官翻机型,所以包装盒与普通零售版本不一样。拿到手后,除了机身底部有一些小磕碰之外就没任何问题了,一切正常,这次淘货非常成功!

我从来没有用过Mac Mini,这也是我第一次见Mini实物,包装里只有孤零零一台主机和一根电源线,没有其他任何配件,精简如淘宝工控机。到手后才发现它比我想象中的大一些,因为我总会把他和大号Apple TV联想到一起,但实物明显比Apple TV大多了。外观依旧是Mac Mini祖传设计:规规整整的20厘米长宽的圆角铝合金方盒子,体积虽小但背后IO接口还算丰富,除了电源外提供了2个USBC和2个USBA口以及1个HDMI、1个RJ45网口和一个3.5mm音频口。

立刻接电源开机使用,熟悉的Duang一下的开机声音差点没把我吓死——因为我是真没想到Mac Mini其实是有扬声器的。(虽然非常烂,可能还不如iPhone,以至于我认为这个扬声器就是专门拿来播放开机声音的)虽然有扬声器,但它是没有配置麦克风的,需要自行解决。

Mac Mini需要自备显示器和键鼠,键盘就直接使用我的罗技MX Keys即可,三设备一键切换非常好用,另外又花了1200赛地(约792元人民币)买了个Magic Trackpad,macOS日常使用的话还是触控板舒服啊!

Mac Mini桌面

使用

ARM与iOS App

因为M1芯片加持,除了macOS应用程序外,这台Mac也理所当然地支持iOS应用,乍一想还是很不错的,但实际上自己很少能用到,不然iPad早就化身真正的生产力工具了。而且现在已无法直接侧加载(Sideloading)IPA文件,想要通过正规渠道安装iOS应用必须依赖App Store且是否能在Mac上安装的选择权掌握在开发者而非使用者手里,例如完全阉割了网页端的闲鱼就有意阻止了在Mac上安装,除非利用PlayCover等工具加网上分享的处理过的IPA。而未签名的IPA(比如各种开源免费且未上架的应用)也无法直接安装,只能通过Sideloady等工具侧加载且若无苹果开发者账户,就必须每7天重新安装一次,非常麻烦。另外,如果电脑关闭了SIP,则从App Store安装的iOS应用都无法运行。

实际使用下来发现,其实安装iOS应用只能算作“还算可以用的附加产物”,因为没有正式上架Mac App Store的应用(即标注为iPhone/iPad应用的软件)几乎都不会对macOS有任何优化,以我常用的微信读书为例,由于PPI问题,且大概是模拟的iPad竖屏的样式,应用程序的字号都会比较小,既不美观也不方便使用。但回头一想,对于我们这些一般用户而言,除了一些手机游戏,其余iOS App在macOS上使用也没有多大用处和必要,不然iPad就真的成为生产力工具了。

bugOS现状

我的上一台Mac电脑是MacBook Pro 2018 13英寸,这台机器不论硬件还是软件都非常噩梦:蝶形键盘使用一年多后开始卡键、双击;唤醒后触控板键盘随机无响应;使用一年电池寿命降到低于80%;原彩显示调整导致偶尔花屏;网络不好时电脑直接卡死……

总之,它留给我最后的印象就是稀烂的硬件和阿三级软件轮流折磨用户体验。而隔壁Windows真的好久都没有碰到什么bug了。

不过还好,因为Mac Mini要使用的其他Apple硬件仅仅只有显示器外加触控板,所以大概是不会出现多少软硬结合的bug的,现在使用的macOS Monterey感觉还行,暂时没有出现什么恶性bug,就是iCloud祖传的龟速同步依旧发挥稳定。

好用的新功能…?

macOS Monterey新增了Universal Control功能,用人话就是iPad可以直接使用macOS的鼠标键盘了,只需要在显示器设置里面设定好位置,就可以像操作多显示器一样使用,上手很简单且体验良好,感觉是Sidecar(随航)之后的又一个可圈可点的功能。

其余的嘛…好像就没有了…下一个版本Ventura引入的Stage Manger感觉很鸡肋,在iPad上使用体验一般,本来就有多虚拟桌面和窗口化环境了,加入这些花里胡哨我认为没什么用且更浪费空间。

接下来要做的

这台Mac Mini我是打算把它作为HTPC使用的(毕竟我总不可能把他真当作生产力工具不是,我又不是剪辑强国人士),M1处理器功耗很低性能也说得过去,非常适合当作HTPC。而且我在Apple TV上面买的Infuse播放器也可以直接在macOS上面使用,体验良好,而且对于HTPC来讲比起需要一定移动空间且对桌子表面有一定需求的鼠标,即拿即用的触控板更加合适方便。加之qBittorrent已经原生支持ARM了,而流媒体内容更不必担心,因此不论是下载还是播放都非常合适,买一块西部数据的大容量桌面移动硬盘接入Mac即可。

总结

Mac Mini一定算是苹果产品里最具性价比的一个,尤其是现在二手闲鱼可能只需3000元人民币即可入手,我也只用了不到3000淘到了一台官翻,这个价格还是非常能打的,不论是自己日常娱乐还是做HTPC都非常合适,如果还顺带做做视频剪辑,画画图,写写代码那就更值了,3000块钱给这样一个体验真的超值,真的很超值啊!

使用Railway和Miniflux零成本搭建RSS服务

2022年5月24日 20:17
Featured image of post 使用Railway和Miniflux零成本搭建RSS服务

RSS(聚合内容),一种“古老”的消息来源格式,古老到连著名的RSS聚合器兼阅读器Google Reader都快停止服务十年了。但近几年随着开源项目RSSHub发布极大程度上丰富了可订阅内容,加之RSS本身无算法、纯用户主导(须用户主动订阅)的特性和对各互联网公司的算法推荐的唾弃,让RSS这一古老协议焕发了第二春。我也是从那时候开始重新依赖RSS获取信息。

想要使用RSS作为自己的信息获取工具,就一定需要一个RSS聚合工具,将你所感兴趣的信息源全部集中到一处,通常可以使用下面的几种方案:

  • 本地应用程序(如Reeder),但这种方案无法原生多设备同步,订阅源和阅读状况只在单台设备内存储,必须配合商业网络服务或自建服务来跨设备同步内容。
  • 商业订阅服务(如Feedly、Feedbin),但大多数需要每月支付一定的订阅费用。
  • 自建服务(如FreshRSS、tt-RSS、Miniflux),需要花一定的心思自行搭建,大多需要自行准备服务器,同样需要一定的物质(金钱)成本。

RSS聚合软件对比

今天我们要讨论的是第三种方案,目前常用的自建RSS聚合器框架主要有:

  • FreshRSS,功能强大、易于使用,基于PHP和SQL数据库
  • Tiny Tiny RSS(tt-RSS),功能非常强大、扩展性极强,基于PHP和SQL数据库
  • Miniflux,极度简约但应有的功能一个不缺,基于Go语言

可以看出,前两个框架虽然功能上更强大且搭建起来比较简单(可以使用Docker,或者直接使用PHP虚拟主机搭建)但受限于PHP+SQL的组合,整个框架都显得比较“重”或者慢,且无法做到真正的0成本。因此我们将目光转向到了使用Go语言便携的简约框架Miniflux。

事实上Miniflux官方就给出了使用Heroku搭建的教程,但Heroku免费版会定时休眠且经过测试发现无法使用ping工具保持真唤醒状态(为什么说“真唤醒”?因为此时在Heroku控制面板中该服务并没有显示在休眠,但实际上它已经处于待机状态了),严重影响首次访问速度,体验较差。

Railway:不休眠的PaaS平台

虽然本文的目的是0成本搭建,但也并不意味着我们就要因此妥协使用体验。这时候我们可以把目光转向另一个PaaS平台:Railway(该链接含Referral Code)

Railway.app网站主界面

这是一个2020年成立的PaaS平台,无需信用卡的免费版可以提供5美元的额度,如果绑定信用卡则每个月可以使用10美元的额度,用户仅需支付超过该额度的使用费,对于普通个人用户而言,5美元的额度早就足够。

——更重要的是,它支持数据库和Docker,所以比起Vercel或Netlify,它更像是Heroku的替代品,更优质的替代品。这就为我们达成0成本搭建RSS聚合器且不损失使用体验带来了可能。

动手搭建

说了这么多,现在让我们开始动手搭建基于Miniflux+Railway的专属于自己的RSS聚合器。

需要注意的是,为了让更多人能够自行搭建服务,因此本文中所有的操作都尽量使用有图形化的程序并使操作尽可能简单。

准备工作

正式开始之前,我们需要准备:

  • GitHub账号
  • Railway账号
  • GitHub Desktop客户端(可选,图形化管理更加简单,或者你可以直接使用Git)
  • 一台电脑

首先我们需要去Miniflux v2的GitHub页面并Fork该项目到自己的账户中。完成后打开并登录GitHub Desktop客户端, 点击顶部菜单栏的“File - Clone a repository”,找到自己刚刚Fork的项目,选择好下载目录位置并点击Clone按钮,将该项目下载到本地。

创建稳定版分支

由于Miniflux的默认分支(master)本身其实是不稳定的开发版,直接部署使用开发版多多少少会遇到各种问题,为了保证服务的稳定性和可用性,故我们还需要单独创建一个稳定版分支。

找到最新的稳定版版本号

让我们回到Miniflux的GitHub页面,注意上图标黄的“Release”部分,可以看到当前稳定版版本号为2.0.36,这也是该Release对应的tag,记住这个版本号,在GitHub Desktop打开下载到本地的项目,点击左栏的“History”,找到带有对应版本号的一栏,右键点击“Create a branch from commit”,在弹出的窗口中输入新的分支名stable并Create branch,完成后,顶部的第三个大按钮会变成“Publish branch”,点击它使之同步到GitHub仓库中。至此,稳定版分支创建完成。

创建新的稳定版分支 提交分支到云端

更新稳定版分支

如果要更新你的稳定版分支,做法也很简单,首先确定Miniflux已经发布了新的稳定版,打开GitHub Desktop,点击客户端窗口上的“Current branch”,先从本地删掉stable分支,再重复上一节里面的创建稳定版分支的操作即可。

使用Supabase数据库

Miniflux需要用到PostgresSQL作为数据库,虽然Railway本身可以直接创建数据库,但为了避免账单爆炸,还是建议使用Supabase这类数据库服务。

注册完成后,创建一个Project,数据库位置建议选择美东或者美西,设定并记住数据库密码,等待创建完成。

数据库创建好后,进入该Project,在左侧菜单里面选择Settings - Database,找到页面的Connection string,获取你的数据库URL,形如postgresql://postgres:[YOUR-PASSWORD]@db.xxxxxx.supabase.co:5432/postgres,记得把URL中间的[YOUR-PASSWORD]改成自己先前设定的数据库密码,并复制备用。

部署到Railway

现在我们可以将稳定版分支部署到PaaS平台,比如我们接下来会用到的Railway。

进入Railway控制面板,新建项目(New Project)- Deploy from GitHub repo - 绑定GitHub账号并选择我们在上一节做好稳定版分支的项目,这时系统会自动开始部署,因为我们还没有设置数据库和环境变量,所以这次部署一定会失败,暂时不需要理会。

接着,回到刚刚连接的GitHub Repo模块,点击它,在右侧的弹出的窗口,导航到“Settings”选项卡,将“Deployment Trigger”下面的选项从master改为stable,即切换为我们在上一节里面增加的稳定版分支。同时,你还可以在“Service Domains”里面自定义该服务的域名(免费提供up.railway.app子域名),或绑定自己的域名。

完成后切换到“Variables”选项卡,点击右侧的“RAW Editor”,将下面的变量按需修改并去掉注释后复制粘贴到文本框内,点击Update即可。

1
2
3
4
5
6
7
DATABASE_URL=上一节复制留存的PostgreSQL链接
PROXY_IMAGES=all
RUN_MIGRATIONS=1
BASE_URL=https://域名,如果你无法自备域名则可以直接填写免费提供的子域名
ADMIN_PASSWORD=管理账户密码
ADMIN_USERNAME=管理账户用户名
CREATE_ADMIN=1

提交了环境变量后Railway会自动重新部署,可以在“Deployments”选项卡里面查看进度。完成后即可登录使用。Miniflux原生支持Fever和Google Reader API,可以在Miniflux的设置中启用,这样即可配合相应的RSS阅读客户端使用(iOS推荐Reeder,Android推荐FeedMe)。

2022年7月27日更新 如果部署后无法使用,log中提示app not found,目前推测原因是Railway新使用的Nixpacks Builder的问题,在Railway里面,点击你的Miniflux模块的Settings,找到Builder,换成Heroku,等待重新部署即可。

至此,一个简约但不简单的0成本RSS聚合器就搭建完成了!快去订阅自己喜欢的源享受干净可控的阅读环境吧!

扩展阅读:RSSHub

有了自己的RSS聚合器后,剩余的工作就是寻找并订阅自己喜欢的内容(源)了,这里推荐使用RSSHub,让各种原本无法使用RSS的平台支持RSS,可以极大幅度丰富订阅内容。RSSHub官方虽然有在免费提供服务,但由于访问量太大,较多网站会对之启用反爬措施,但好在零成本搭建一个RSSHub服务非常简单,可以阅读这篇文章了解如何使用Vercel免费搭建一个自己的RSSHub。

委托与赠图

2022年5月16日 06:47

冰伊布形象

即《精灵宝可梦》中全国图鉴编号为471的冰伊布的闪光种(外观稀有种,相较于普通冰伊布,主体颜色从浅蓝变为白色,头部、耳朵及附属的蓝色深度变得更浅)。

赠图 @Kazuki樱 赠图 @狸九方 赠图 @Dora猫砂罐头

委托(曾作为本站Banner) @纱伊

兽人形象 (Fursona)

即Furry设定,受《精灵宝可梦》中全国图鉴编号为471的冰伊布启发的Furry化设定(兽设)。设定名称为“雪明” (Yukiakari) ,是一只蓝发并留有两束长辫、菱形大耳、手脚均为蓝色的白身狐狸。设定本身由我的朋友猎君绘制。

委托 @亿厘 最早的Furry化委托 @猎君 为兽装委托而诞生的双视图 @猎君

委托 @黒疫 名片委托 @猎君

小马形象

受美国动画剧集《小马宝莉:友谊是魔法》(My Little Pony: Friendship is Magic) 由我的朋友猎君设计和绘制。设定为一只蓝发白色戴有眼镜和三角巾的独角兽,可爱标志 (Cutie Mark) 为镜像后的不等号。

赠图 @猎君

年轻人的第一副开放式监听大耳 - 拜亚动力DT 900 Pro X使用体验

2022年5月5日 05:04
Featured image of post 年轻人的第一副开放式监听大耳 - 拜亚动力DT 900 Pro X使用体验

为了方便听音乐和避免吃灰,我把自己当初首发购买的便携播放器山灵M6挂闲鱼卖掉了,转战便携解码耳放+手机(平板)的组合。得益于耳放相较于便携播放器更强的推力,我自己也在琢磨要不要整一副低阻大耳。

然而现实是“低阻大耳”做得好的并不多,所以这事情也就一直只能在“想”的范畴——直到后来有一天我注意到了拜亚动力(拜雅)的新品:DT900 Pro X。

拜亚动力DT900PROX开箱 拜亚动力900PROX开箱

开箱

今年一月我在京东购买,直接转运到加纳,只花了3天时间到货,不得不佩服这些物流转运公司的时效,而且运费不算很贵,128人民币/公斤,偶尔从国内进一批东西还是不错的。(比如去年我就发运了一块2T的固态硬盘)

盒子里的内容比较紧凑,空间绝大部分都被耳机本体所占据,头梁背面的盒子里有附赠的便携束口软袋和一长一短两条耳机线(长的有3m)和2个3.5mm转6.35mm接头。

外观

900ProX的外观给人一种简单流畅的现代感,做工不错,感觉比隔壁地摊森海、北美大妈手工制作的歌德好不少。值得一提的是由于这副大耳的头梁垫圈、耳罩都比较厚,虽然作为监听耳机给的耳压比较大但并不会给予听者太多的不适感,佩戴体验不错,而且就算是佩戴眼镜也没有任何问题,这一点非常值得加分。

这副耳机使用的是MiniXLR接口,虽说是可换线的设计(且附送了一长一短两根耳机线),不过由于接口和接线的限制,它是不可以直接上平衡的,但作为监听定位干活用耳机,这个问题不大。

虽然这是一副开放式耳机,但实际上应该算半开放,开口不算很多,当然作为这种结构的耳机就不要指望隔音效果和漏音,肯定不会好的。

主观听感

我现在使用的设备是iFi Hip-Dac便携解码耳放,在电脑使用MusicBee的ASIO输出。

48欧的阻抗十分好推,乐彼W2(43198)小尾巴开高增益推出来的声音也不错。

作为专业监听耳机,“准确”是重要的一环,必然地,它带来的声音首先是“中正”的,没有太多修饰,但是相较于老派监听又偏一点点暖声,配合本身就比较适合流行带一些暖的Hip-Dac听流行有一种不错的味道。看得出来拜亚对这个系列的定位是“多用途”,即除开录音室的监听工作之外,兼用于日常音乐欣赏。开放式耳机的结构让它有一种空间通透感,但是整个耳机所给的声场并不算很大。解析力很不错,各种乐器的分离都处理的很好。

低频下潜不深(毕竟是开放式监听耳机),但是回弹紧实,个人觉得是一种久听不会腻的程度;中频给人一种典型的“监听”味道,没有什么音染,不过也没有齿音,人声稍微靠前突出但不算非常近,稍微有一定的距离,总体感觉是中正但是也很舒服;高频人声则一般,没有太多的延展性,人声不是很突出稍微会有一点融入到背景音乐中。

总结

简单来讲就是高频延展性一般,没有特别突出;声场不算大,但是后者可以靠开放式结构有所弥补,因为开放式所给的通透感让声音界限不算很明显。除开上述一些问题之外,我认为DT 900 Pro X是一副很不错的带有些许暖声的很不错的杂食监听耳机,再加之其低阻高敏的特性,对前端的要求不高,加之优秀的佩戴,作为年轻人的第一幅低阻开放大耳相当不错,2200左右的价格还算可以,据说卖的相当可以以至于至今时不时会缺货。

冰布子的简易Wordpress建站指南

2022年5月3日 21:06
Featured image of post 冰布子的简易Wordpress建站指南

对于零基础的朋友,如果想要建站的话目前为止门槛最低的方案依旧是Wordpress:老牌开源PHP+SQL博客框架,虽然不可避免地被诟病臃肿,但仍然不能忽视的是其插件系统、主题系统和社区生态都已相当成熟,且开箱即用,自带的模块化“古腾堡”编辑器也很方便,对于新手入门而言绝对算是最方便的。

准备

自己独立建站相对于托管(Lofter、新浪博客等)是有一定门槛且必须付出相对更多的时间和金钱成本的,请务必做好准备,因为耐心和坚持是最重要的。

物质方面,你可能需要每年投入150~500元(包含域名、服务器和其他开销,价格主要取决于你使用哪种服务器和域名后缀),冰布子建议持有一张非银联信用卡用于购买域名,理由会在域名一章中提到。

如果你不想买服务器,想只出一个域名钱,建立一个静态网站,可以阅读 这份指南,会引导你使用Gridea建站。,或者考虑使用Hugo或Hexo建站(当前本站是由Hugo驱动)。

为什么要搭建独立博客

虽然严格来讲,独立博客依旧离不开托管平台,但相较于Lofter等服务,其自由度更高,限制更少,且不能为你的网站打差评;完全掌控文章和评论;只要不违反当地法律和服务商条款,内容不会被莫名删除;不能随意被举报;即便被某些群体盯上受到和AO3一样的遭遇但数据不会有半点损失,能随时带着数据库跑路并一瞬搬家重启并不是说使用独立博客就完全能免受网络暴力的侵害,不管在哪个平台,做好隐私保护都同样重要。

需要说明的是,独立博客和微博没有冲突,完全可以通过微博或类似服务一起使用增强社交属性。


域名

提到域名后缀,很多人肯定会想到 com/net/org ,但事实上现在光是可购买的就有800多种,除了某些后缀(tk/ga/cf 这类可以免费使用的)可能会受到搜索引擎歧视之外,不管用哪种都是一样的,这就有非常大的可个性化空间了。因此在选择域名之前,在这里冰布子先简单提一下域名种类。

目前可以购买的顶级域名后缀主要分为 gTLD(通用顶级域) 和 ccTLD(国家或地区顶级域),前者多数可以自由购买,如 com net org info name 和新增的后缀 moe gay lgbt red cat dog 等,几乎所有的域名服务商都可以购买,门槛很低;后者部分可以直接购买,如 us me 等,部分可能需要签证或当地居住证明,如 tn 等,此类域名后缀购买门槛通常较高。

关于个性化域名的提示,这里举个3个例子,伊布英文名Eevee,后缀 .ee 是真实存在的,那么 eev.ee 就是一个非常棒的域名;外卖平台饿了么,域名就是 ele.me ,巧妙运用公司名称的拼音和真实存在的后缀 .me;GameFreak简称GF,而 .sb 后缀是真实存在的,那么我们就可以使用 gf.sb 作为域名抒发情感。也就是说,你可以发挥你的想象力,只要后缀真实存在且开放购买,那你就能得到一个极其个性的域名。

域名通常以年为单位售卖,注册后需要按年续费。请务必仔细想好想要的域名,中途修改域名、频繁修改域名是非常不可取的事情。同时,域名也应该尽可能地短,尽可能地展现个性或可以让人过目不忘。

备案问题

如果你只打算使用非中国大陆的服务器搭建网站,则根本不需要考虑备案问题。

如果你想使用中国大陆的服务器搭建网站,则你的域名必须进行备案。你必须在你购买服务器的服务商处进行备案,如果你要更换服务器提供商,则必须转移备案,且备案域名必须保证其裸域和 www 记录解析在国内的服务器中,否则会丢失备案。由于政策原因,只有一部分gTLD域名和 .cn 后缀域名才能备案, .org 目前不可以备案,因此如果你要使用中国大陆的服务器,必须要提前考虑好此类问题。至于备案流程,各大服务器提供商均有专门的页面和专业客服提供指导(尤其是阿里云,服务得非常详尽,甚至可以电话指导)。

选择域名注册商

通常情况下域名的新购价格和续费价格是不一样的,且一般来讲续费价格高于新购价格(甚至可能远高于新购价格),因此如果你的预算不多,选择后缀的时候必须查看续费(Renew)价格而非新购(Registration)价格,不然你会被狠狠地坑一笔!举例说明:info 后缀通常新购价格可以压到很低,低到1美元以下,但续费至少需要13美元。

除了续费价格之外,部分域名注册商为了赚更多钱,经常默认捆绑一些没用的产品,稍不注意就一起买了,而且此类服务商常常把续费价格表藏得很深,这里点名批评GoDaddy。

鉴于上述的门槛限制和潜在的坑钱机制,冰布子整理了一些自己用过的域名服务商,请根据自身情况选择。

如果你想购买 com net org moe gay lgbt red cat dog 等gTLD,或常见的ccTLD如 us me,且有国际信用卡,推荐选择 Porkbun ,因为它的价格很低且透明,并直接不会有各种杂七杂八坑的新人的推销陷阱(点名批评GoDaddy);如果你没有国际信用卡,则推荐选择 NameSilo ,价格也比较低且消费透明,支持支付宝,使用专属优惠码 GLACEON 可以在NameSilo购买时优惠1美元。

如果你想买类似于 pm de nl lu ie lv eu es pt cm 等不太常见的ccTLD,且有国际信用卡、能给客服提供你不在欧洲的英文证明(发票等),推荐选择 OVH爱尔兰站,价格实惠、消费透明且后缀很多;如果只有支付宝或银联卡,则可以考虑 InternetBS(此网站注册账户时,国家填写中国才可以用支付宝),不过可购买的后缀就远远没有OVH那么丰富了。

冰布子上面提到的注册商都是海外的,国内注册商推荐去 阿里云、腾讯云 购买,但后缀不多,价格一般且需要实名(域名实名和账户实名是分开的)。

域名购买

由于域名注册商比较多,冰布子不可能一一给出所有域名商的注册教程,但实际上这些服务商的购买流程和上网买东西没有太大差别,这里只提一些需要注意的几点。

避免无关消费

NameSilo的捆绑套餐

绝大多数域名注册商不会只卖域名,因此要小心他们在购买的时候提供的捆绑套餐。如上图为Namesilo点击结算后出现的套餐推销页面,实际上上面的所有套餐都没有购买的必要,这时候找到页面的 SKIP 跳过即可。

总结出来就是,记住售卖页面提到的价格,对比你结账时的最终价格,任何附加费用都不要有(ICANN手续费除外,通常金额很小)。因为你要在这里买的仅仅只是域名本身,其他的什么都不需要。

注册信息

域名注册需要的信息分为两类,互相无关联:账号信息和域名WHOIS信息。总结下来就是大体不必填写自己的真实信息,但电子邮箱必须保证真实

账号信息就是注册域名商账号时填写的账号信息,除了OVH,不必填写真实信息,但也不能太假(跨国、地址太离谱),如果你要用 1.1 中提到的 InternetBS 且需要用支付宝,还必须把账户注册国写中国。

WHOIS信息就是注册(购买)域名的时候要求你填写的信息(持有人姓名、地址、电话等),除了邮箱外不要填写太真实的信息,因为如果域名商不提供WHOIS保护(Whois Privacy),这些信息都可以直接被查到。当然,你也不需要过于紧张,上述的域名商所售卖的gTLD基本都会提供免费的WHOIS保护,但ccTLD多数是没有相关保护服务的。

选择DNS服务商

如果你在阿里云、腾讯云购买的域名,则可以直接使用他们自己提供的免费DNS,跳过本章节其余部分。

DNS简单来说就是将域名解析为IP的“指路”服务,通过DNS将域名解析为IP地址,从而找到对应的服务器。通常而言,域名服务商会赠送DNS服务,但为了优化速度,我们不使用他们的DNS(阿里云、腾讯云除外)。下面推荐几个DNS服务商供参考。

如果你对实名要求不太敏感,冰布子更推荐直接使用阿里云或腾讯云的服务一是方便,有淘宝或支付宝(腾讯云对应QQ微信)账户就能直接用,二是因为最后我们会提到使用对象存储加速网站,所以到头来还是需要使用阿里云或腾讯云的服务,三是确实对新手更加友好。

  1. 阿里云(免费 需要实名)

    国内第一大云服务商,国内解析速度快,海外解析速度一般,免费套餐完全够用。

  2. 腾讯云(免费 需要实名)

    国内第二大云服务商,国内解析速度快,海外解析速度一般,免费套餐完全够用。

  3. Cloudflare(免费 海外服务商)

    Cloudflare其实是CDN提供商,但也免费提供DNS服务,国内解析速度一般且可能会受到污染,国外速度不错

  4. 微软Azure(付费 海外服务商 需要信用卡)

    冰布子目前使用的是Azure的DNS服务,虽然是付费的,但价格很低,单个域名托管仅需0.5美元/月,请求费用对于个人网站而言很难超过0.1美元/月。国内外解析速度都不错。

  5. 亚马逊Route53(付费 海外服务商 需要信用卡)

    著名的亚马逊旗下AWS的DNS服务。国内解析速度一般,国外速度不错。

  6. Netlify(免费 基于NSOne)

    Netlify其实并不是DNS服务商,但其提供免费的基于NSOne的DNS解析服务,NSOne的速度在国内外都还可以。

下面针对阿里云和腾讯云的DNS进行讲解。如果需要使用Cloudflare或Azure或其他服务商,请自行摸索或上网搜索教程。

阿里云DNS

阿里云DNS

要使用阿里云的DNS服务,登陆阿里云并确认账户实名后,鼠标悬停在控制台右上角,选择“产品与服务”,在弹出的菜单中找到“域名与网站(万网)”板块,选择“云解析DNS”(建议加一个星标,这样就会置顶,阿里云业务比较多,老是这样找很麻烦)

在网页跳转后,点击蓝色按钮“添加域名”,弹出窗口中输入你注册的域名,添加完成后,你可以看到“DNS服务器状态”一栏是“未使用阿里云解析”。

阿里云DNS设置

鼠标悬停在这串文字上,会弹出一个提示,要求你去域名注册商处修改DNS服务器,把提示中的服务器网址复制下来备用(请参考阿里云实际给你的地址,不要以我的截图为准),在 1.2.3.3 小节会写修改方法。

腾讯云DNSPod

腾讯云DNS

要使用腾讯云的DNS服务,先登陆腾讯云,确保账户实名后,点击最上面的“云产品”,找到“域名和网站”板块,选择“DNS解析”,在跳转后的页面中,点击“添加解析”,在弹出的窗口中输入自己注册好的域名,点击确定

腾讯云DNS设置

完成后,列表会出现你刚刚添加好的域名,“解析状态”一栏会显示“域名DNS未修改”,点击域名进入管理界面,你会看到页面上部分的蓝色框,内容如下:

腾讯云DNS设置

这时候你只需要回到 域名注册商,把域名DNS服务器地址修改为画红线部分的地址(也就是DNS服务器地址)即可(请不要按照我的截图修改,以自己得到的地址为准)。

修改DNS服务器

选择好DNS服务商后,先注册好对应DNS提供商的账户,然后把你注册好的域名添加进去。完成后,系统会给你一串网址(这些网址就是DNS服务器地址),提示你需要在域名注册商的后台修改DNS服务器(DNS Server/Name Server)。

对于 NameSilo,可以参考 这篇文章 中“域名解析 / 设置DNS服务器”的“方法二”(需要代理访问);对于Porkbun,登录账户后,在“DOMAIN MANAGEMENT”下,点击对应域名右边的 Details,在“AUTHORITATIVE NAMESERVERS”这一栏中,点击EDIT,输入DNS服务商提供的DNS服务器地址即可。

修改DNS服务器的操作一般需要2~72小时才能生效;关于DNS记录,会在后续讲解。

至此,域名部分讲解完毕。

申请域名邮箱

所谓域名邮箱(部分服务商称之为企业邮箱),就是用自己的域名后缀创建邮箱。因为这类邮箱完完全全是你自己使用,因此不会存在前缀被占用的问题,你可以做出个性化十足的邮箱使用!举例说明,如果你的域名是 glaceon.best ,那么你可以使用类似于 i@glaceon.best 的邮箱。

此类域名邮箱,冰布子推荐使用 腾讯企业邮(基础版免费) 或 Yandex(免费) 或 Zoho(建议使用付费套餐 1美元/月)。如果预算充足可以考虑购买 GSuite(付费 5美元/月)或 Microsoft365(付费)。

域名邮箱的注册方法请参考上面给出的链接,使用域名邮箱会涉及到DNS,使用DNS可以参考本文第三章 3.1 DNS解析 。此外,提供商也会提供详尽的设置方法帮助你设置。


服务器

有了域名,接下来就要选择合适的服务器(或网页空间托管)了。冰布子相信大部分人不会愿意去搞“ICP备案”的,因此位于大陆的一切服务器全部跳过。

个人建站一般会选择实用虚拟主机(网站空间)或VPS,下表简单地描述了两者之间的特点。

类型 特性
虚拟主机(网站空间) 只能搭建网站,且大部分都只能使用PHP/HTML+数据库(MySQL/PgSQL),有图形化面板,操作简单,几乎0门槛,价格相对便宜。
VPS 相当于一台完整的但是配置不高的服务器,通常使用Linux系统且无图形界面,只要条件允许可以做任何服务器能做的事情,如果需要面板则要自行搭建,需要用户掌握基本的Linux操作方法,更加自由但是门槛稍高,价格比虚拟主机贵。

但是不管用什么,有一点必须要清楚:不要去淘宝买。

由于VPS涉及到用户必须具备一定的Linux知识,考虑到本文的受众群体,故此指南不提供VPS建站教程。

服务器地理位置的误区

很多人都会认为离国内近的国家或地区的服务器就一定快,这是完全错误的,物理距离不能决定延迟,且延迟不能决定速度。因此不可以想当然地认为美国服务器一定比香港服务器慢。

举例说明,中国上海到美国西海岸的延迟可以低到130ms,但是香港LeaseWeb机房或者SoftLayer机房的服务器到大陆联通或电信机房的延迟可以达到200甚至300ms——因为他们的路由都绕美国了。而有的海外虚拟主机提供商却恰恰最爱用这两个香港机房,甚至号称“中国大陆优化”。

如果你参考了下面的推荐,直接用冰布子筛选过的服务商,则问题不大;如果你打算自己找提供商,那最好找到该提供商的测试IP,使用Besttrace进行路由追踪就可以看其是否有去程绕路了。

虚拟主机(网站空间)

对于虚拟主机,一般人来讲有1GB为好,也不需要更大空间,因为后续教程会讲解把静态资源(图片、附件、视频等)转移到对象存储中。

虚拟主机市场鱼龙混杂,推荐反而不太好做,而且各家使用的面板也不一样。目前我自己看到的能拿出来的有下面这几个。

好的虚拟主机其实能比VPS还贵,虽说看起来性价比不高,但现实是大部分人并没有时间或精力自己维护服务器,而且对于内容为主的平台,如果要花太多心思在不熟悉的维护上确实会影响产出。但问题在于,当前国内此类市场并不太好,国内大部分做这类产品的服务商用的还是Easypanel面板(漏洞巨多),而国外常见虚拟主机提供商大多贵且国内速度极慢(部分有香港机房,但是就如同我在 2.1 中说过的,地理位置不能决定速度,更何况他们用的大都是LeaseWeb或者SoftLayer机房,大陆方向会绕美国一圈)。综合价格和其他因素,个人觉得可以拿出手的几家是:

  1. 微基主机(70元/年)

    冰布子目前正在使用的虚拟主机(而且是110元3年的传家宝款),使用Plesk面板,便宜,还算稳定,速度也不错。上面的链接是返利链接,如果你注册购买我会得到一定数额的佣金,无佣金的通道可以使用 这个链接

  2. 主机壳(199元/年)

    曾经在他们那里买过moe域名,自带CDN和Memcached,有的社团和汉化组就架设在他们家。上面的链接是返利链接,如果你注册购买你会得到一张5元代金券,我会得到一定数额的佣金,无佣金的通道可以使用 这个链接

  3. 老薛主机(110元/年)

    开了很多年的服务商了,8年前独立博客还比较流行的那会儿我有几个友链在用这家。使用专属优惠码 GLACEON 可享受终身85折优惠。上面的链接是返利链接,如果你注册购买你会得到一张5元代金券,我会得到一定数额的佣金,无佣金的通道可以使用 这个链接

  4. 阿里云(298元/年 此价格包含独立IP)

    国内第一大厂,配置高一点,空间多一点且包含独立IP,这个价格已经算很实惠了。

另外,如果你有日本当地发行的信用卡的话,去 Sakura Internet 或者其他用IIJ或KDDI机房的本土服务商,搞一台524日元/月的虚拟主机也不错,IIJ/KDDI机房建站到大陆还是可以的。

虚拟主机买好后就可以直接绑定域名,上传网站程序使用了,其难度可能就比用QQ空间难一点。

VPS(虚拟服务器)

考虑到本指南的主要受众群体,且使用VPS的门槛较高,故仅做介绍,如果你想使用VPS,请自行上网检索相关教程

虚拟主机只能用来建站且大多不提供独立IP,但VPS就可以看做是一台配置不太高的长期联网在线的电脑(服务器)。

如果你面向的群体主要是在国内,冰布子更推荐购买 阿里云腾讯云 的香港轻量应用服务器(都是24元/月,两人合租可以考虑买第二档34元/月),虽然线路和性能都一般般,但绝对对得起价格,而且大厂出品稳定性可以保证。当前,冰布子更推荐使用腾讯云的香港轻量服务器。

如果你有信用卡(包括银联),且想照顾一下海外人士,可以注册 亚马逊AWS ,买LightSail日本区,建议购买5美元/月的那一档。按照后续的教程分离静态资源后国内速度也不会太差。(任天堂也在用亚马逊AWS)由于名称太长,下称AWSL。

如果你想搞国际化,且有信用卡,可以考虑买一台位于圣佛朗西斯科的 DigitalOcean (一定要圣佛朗西斯科的,不要觉得新加坡近就快),价格为5美元/月,性能不错,就是国内路由实在是一般,一定要按照后续的教程分离静态资源后拯救国内速度。下称DO。

建站用VPS只推荐使用大厂或知名提供商的产品,相较于(到国内的)线路质量,更应该看重稳定性。不建议购买Vultr的VPS,即便它确实算大厂且网上很多人都推荐(因为推荐可以拿佣金),很多国人用他们的服务器做代理用途,导致其很多IP(尤其是美国西海岸和日本机房的)被墙,抽一个可选IP就跟抽卡一样爽。

VPS的建站环境可以考虑使用 Oneinstack一键包(无GUI)或 宝塔面板(网页可视化面板管理)。


搭建Wordpress

本章将以Wordpress为例。

为什么要使用Wordpress呢?首先用的人多,鼎盛时期Wordpress驱动了整个互联网50%以上的网站,即便是现在,根据其官网的说明,仍然有35%的网站在使用Wordpress。大量的用户意味着遇到问题方便解决且有大量的插件、主题对自己的网站进行个性化。而且最重要的是,相较于其他博客程序(Hexo等纯静态博客或使用NodeJS的Ghost),Wordpress对新手友好且简单易用,搭建好后几乎和用QQ空间一样方便。

搭建之前,我们要先想好自己要怎么用自己的域名、做DNS解析,最后再上传源码安装。

首先,你需要想好自己要怎么使用域名。

例如,你申请的域名是 glaceon.best ,如果你仅仅只想安装一个Wordpress,那么你可以直接把 glaceon.bestwww.glaceon.best 直接作为Wordpress的地址;如果你不仅想安装一个Wordpress,还想有一个静态(或动态)的,不是Wordpress做的个人主页,那这时候你应该考虑把裸域 glaceon.bestwww.glaceon.best 指向个人主页,子域名 blog.glaceon.best (或其他你喜欢的子域名)指向你的Wordpress博客。

DNS解析

我们在第一章介绍了DNS,但并没有开始正式使用,现在是让它发挥作用的时候了。但是在这之前,我们需要了解一点点域名的概念和DNS记录的知识。

####3.1.1 域名相关基本常识

为了方便理解,现举例说明:

1
news.sina.com.cn

第一章中提到的“后缀”,即TLD,为顶级域名,对应上述举例的 .cn;

二级域名为就是最靠近顶级域名左侧的字段,对应上述举例的 com 部分,剩余的部分以此类推 (不过部分人也会认为 sina.com.cn 中 sina 算作二级域名);

为了避免混淆,且大部分人最多只会用到三级域名(如 xiaozhan.is.sb),故后面将会把三级域名称作“子域名”。

需要注意的是, www ,如 www.google.com ,也是一个三级域名。不带 www 的,如 google.com 可以称之为“裸域”,DNS服务商通常用 @ 表示裸域。这两条记录是相互独立的,故必须分两次填写记录。

DNS解析

开始使用DNS解析之前,首先我们要了解DNS的“记录”。常用到的DNS记录有 A(IPV4),CNAME(别名)、MX(邮件相关)TXT(存储文本,多用于验证)4种。

通常情况下,搭建网站时需要添加的DNS记录主要是 A 或者 CNAME,取决于你的提供商。如果提供商给你的服务器地址是IP地址,对应 A 记录;如果是一串网址,则对应 CNAME 记录。

登陆到你的DNS提供商管理页面后,找到添加DNS记录(记录集)的相关按钮,这时候网页会弹出一个表单让你填写。

表单项目 填写内容
类型 参考3.1.2中的DNS记录类型或服务商给的解释
名称 子域名名称 如 blog.example.com 就填写 blog;裸域则留空或填写 @
目标 服务器商提供的IP地址(A记录)或网址(CNAME记录)
TTL 保持默认,或者通常选择1小时

需要注意的是,CNAME记录无法在裸域上使用,如果你一定要这么做,则应先使用 IP查询工具 ,输入提供商提供的服务器网址,获取其IP,并在DNS服务商处添加裸域的A记录。

添加好DNS记录后,可能需要15分钟至2小时生效。

添加网站并添加SSL证书(以Plesk面板为例)

为了方便讲解,本节使用的示例网址为 glaceon.best 及其子域名。本节暂时不会包含宝塔面板的创建方法。

遗憾的是,当前虚拟主机提供商使用的面板可能各不相同,冰布子不可能全部讲解,本节将会使用Plesk面板举例,其他面板操作方法或逻辑大致相同。

现在都是2020年了,大家创建网站一定要开启并默认开启HTTPS。

你已经添加了DNS记录,现在,你可以在虚拟主机提供商的面板中添加网站了。你在购买虚拟主机的时候,主机商会询问你的域名,虚拟主机开通后,你的域名的裸域和 www 子域名会自动创建,并指向同一个目录(public_html目录)。如果你想让你的Wordpress博客直接放置在裸域上,那么请直接跳过本节;如果你想将Wordpress运行在一个子域名下,如 blog.glaceon.best ,则需要按照本节下面的步骤创建一个子域名。

Plesk面板添加域名

在Plesk面板“网站与域名”页面,点击“添加子域名”,在跳转的页面中,“子域名”一栏填写你所想要的子域名名称,如 blog.glaceon.best 则在左边的框中填写 blog ,在右侧的框中选择 glaceon.best ;文档根目录会在填写好后自动生成,可以保持默认,最后点击确定即可。注意,你的子域名必须保证在DNS服务商那边添加过,否则无法解析。

点击确定后,Plesk面板会自动跳转到SSL证书页面,询问你是否添加SSL证书。滑动到页面底部,有一个“Entry-level protection”,是Let’s Encrypt提供的免费证书,点击它底下的“免费获取”以申请免费的SSL证书。(你必须要拥有有效的、可被浏览器信任的证书才能正常地启用HTTPS),只要你保证DNS记录已经成功添加,系统就可以自动为你申请、绑定SSL证书。申请完成后,不要忘记开启“自动跳转HTTPS(从HTTP重定向到HTTPS)”,让浏览器访问你的网站时默认就使用HTTPS。

现在你可能有点疑惑:什么是HTTPS,什么又是SSL证书?简单地说HTTPS是HTTP协议的加密版,使用SSL/TLS加密数据包,是保护交换数据的隐私与完整性的技术。你也许会认为这对于个人网站来讲没什么大的用处,但是,现在网站如果不支持HTTPS的话主流浏览器会直接标记“不安全”,非常难看;且更重要的是,还能抵御部分来自电信运营商的DNS污染。现在都是2020年了,网站没有HTTPS都不好意思出来混的(摊手)。

上文的例子都是针对的Plesk面板,对于cPanel虚拟主机,你应该去面板主页“安全”一栏中的“SSL Status”,具体操作可以直接询问主机提供商客服,问他们如何申请免费SSL证书

上传Wordpress程序框架

本文中所有截图示例都是在Plesk面板下完成,部分提供商可能不使用本面板,但基本都是一样的。

使用服务商提供的一键安装功能

如果你使用的是虚拟主机,绝大部分服务商都会提供“一键安装Wordpress”功能(使用Plesk、cPanel面板的服务商一定会有此功能),那么此步骤会变得更加简单。

直接在Plesk一键安装Wordpress

你只需要登陆虚拟主机控制面板,找到“Wordpress”相关选项,点击“安装”按钮,选择好默认协议(这都2020年了,请务必使用HTTPS且不带www)、安装路径(该Wordpress实例运使用哪个域名)、标题(你的网站名称,可以随时修改)、语言(有简体中文)、管理员账户密码(请不要用admin作为用户名,且请务必使用强密码)、电子邮箱(务必真实有效,否则你无法收到评论通知、更新通知等),其余的可以保持默认,然后点击安装,等待完成。

当程序告诉你安装好后,你可以直接访问你安装的网址,一个全新的Wordpress网站就诞生了!

手动安装Wordpress

有的服务商可能不自带一键安装功能,但是问题不大,本身Wordpress的安装流程就不复杂。

创建数据库

创建数据库

首先你需要创建一个MySQL(MariaDB)数据库:在虚拟主机面板找到MySQL数据库(或就叫数据库)的选项,点击“添加数据库”,在跳转后的页面(如上图),填写数据库名(为本数据库起名,名称随意)、数据库服务器类型(MySQL/MariaDB,因为Wordpress只能用此类数据库)、相关网站(Wordpress要使用的域名)、数据库用户名及密码(数据库的登录名和密码,请务必使用高强度密码且不要和Wordpress登录名密码一样),其余可以保持默认。最后点击确定,等待服务器为你创建数据库。

上传并安装Wordpress框架

现在,我们要把Wordpress的程序框架上传到服务器上。由于Wordpress官网被墙,这一步你需要使用代理(你也可以直接使用SSH登陆进去,wget 框架到服务器上,但老实说使用SSH本身对新手太不友好了)。

点击这里 访问Wordpress官网,下载框架到你的电脑。哦对了,如果你喜欢,还可以到Google Play或者APP Store下载官方手机APP,在网站创建后可以直接使用手机码字、管理评论等等。

下载好后,访问虚拟主机提供商的面板,找到文件管理相关页面,进入你准备安装Wordpress的文件夹(如果你要在裸域上安装,则通常这个文件夹就叫public_html;如果你要在子域名上安装,则通常这个文件夹名称就是子域名名称),点击“上传”来上传你刚刚下载好的Wordpress压缩包,再选择此文件,点击面板上的“解压文件”,进行解压。如果解压后只有一个 wordpress 文件夹,请不要忘记把这个文件夹的所有内容全部移动出来。

上传文件

你的网站目录应该类似于这个样子。完成后,你可以直接使用浏览器访问你的网站网址了。浏览器会自动跳转到Wordpress安装页面。

Wordpress安装

上图一整页要求你填写的都是数据库信息,这些信息基本上只会在这里使用一次,以后很少会用到。

数据库名填写 3.1.4.2.1 中你自定义的数据库名称,用户名和密码对应的是你创建的数据库用户名和密码,数据库主机保持默认,表前缀建议不使用默认,改成其他字符(但不要忘记最后需要有一个下划线,如 gLa_),完成后提交。如果信息正确,系统会告诉你可以安装了。

Wordpress安装界面

接下来,Wordpress会让你填写网站基本信息,本页的所有信息都是你的Wordpress网站信息

站点标题即网站名称,用户名请务必不要使用 adminroot ,密码请务必使用高强度随机密码,电子邮件请务必填写真实且你自己常用的邮箱。而“对搜索引擎的可见性”一项,如果你不想公开你的Wordpress网站(因为你的网站是可以被Google等搜索引擎索引到的),则请勾选;否则请务必保持默认(建议不勾选,部分文章不想所有人可见可以设置密码,而非把整个网站变成非公开)。

填写完成确保正确无误后,点击安装Wordpress,大功告成~!

简易设置与优化

首先,恭喜你创建好了属于你自己的Wordpress站点!不过在正式开写之前,你需要设置和优化一下你的网站。

创建个人头像

老实说,这不算站点设置,但同样重要!

Wordpress(和其他非常非常多的程序)使用 Gravatar (需要使用代理访问)读取头像,用户只需在网站上留下电子邮箱即可自动读取该邮箱在 Gravatar 中的头像。因此,请务必点击上面给的链接注册一个账户,将你在 3.1.4 节中安装Wordpress时留下的邮箱添加进去并设置好头像,完成后,你的Wordpress会自动获取并展示。

当你在别的网站中评论时,使用带有头像的邮箱,即可在别人的网站评论中显示你的头像;如果你没有头像,在别人的网站去评论的话可能更容易会被当做为垃圾评论。

Wordpress基本设置

从本节开始,你应该登陆进Wordpress仪表盘(后台)进行操作。地址为 https://你的网站链接/wp-admin

本节主要讲的是可能会被忽略的设置,其余设置可以自行摸索,也鼓励自行摸索。

完善个人资料

在Wordpress仪表盘——用户——我的个人资料中,根据个人喜好编辑自己的资料(尤其是昵称),同时可以完善一下“个人说明”,部分主题会展示这个个人说明。如果你想修改密码和邮箱,也需要在本页面操作。

设置固定链接

所谓“固定链接”,指某一篇文章的唯一的链接(URL)。在Wordpress仪表盘——设置——固定链接中,你可以根据个人喜好设置固定链接。

对于新手,冰布子建议使用“数字型”,因为这样最省心,否则你必须为每篇文章指定英文的URL名称。(如果不指定,Wordpress会直接将文章的中文标题放到URL上,非常难看且对搜索引擎极其不友好。指定的方法是,在文章编辑页,点击文章标题,在会出现一个“永久链接”,点击编辑更改即可。)

注意,修改好后请不要频繁地变更链接样式,过干脆以后都不要修改,否则会严重影响网站被搜索引擎索引的效率。

此情况通常不会出现,但是不能完全排除可能性 如果在这个设置页面中,发现系统给出的固定链接示例URL带有 index.php ,例如 https://glaceon.best/index.php/2020/07/sample-post ,则说明你网站没有做“伪静态”。鉴于几乎所有的虚拟主机都用的Apache或LiteSpeed,只需要加一个.htaccess文件即可搞定:使用记事本编辑一个名为 .htaccess 的文件,上传到Wordpress的安装目录即可。文件内容如下。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
# BEGIN WordPress

RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

# END WordPress

安装插件

Wordpress的扩展性非常强,使用插件可以方便地扩展其功能。

在 Wordpress仪表盘——插件——安装插件,即可直接搜索或上传插件安装。

缓存

利用缓存插件,可以极大地加快网站加载速度。同时这些插件往往还有优化功能(尤其是懒加载Lazy Load,即页面加载完成后才开始加载图片,有效减少空白页面时间)。

在安装缓存插件之前,你需要了解自己的主机使用的是什么HTTP服务器软件(通常要么是Apache要么是LiteSpeed),因为这会决定我们最终使用哪款缓存插件。如果你不知道,请访问 这个网站 ,输入你的Wordpress网址,在返回值中,找到 Server 字段,内容就是你的主机HTTP服务器软件名称。

你只需要安装一种缓存插件,不要重复安装。

LiteSpeed Cache

如果你的主机使用LiteSpeed,那么恭喜你,这是最适合Wordpress的HTTP服务器软件,配合专属缓存插件可以显著提升网站速度。你可以直接在安装插件页面搜索 LiteSpeed Cache 并直接安装、启用。下面开始配置。

启用后,你的仪表盘左侧菜单就会多出一个“LiteSpeed”选项,选择 LiteSpeed Cache——缓存规则,里面有8个选项卡供设置。这里我们大部分可以保持默认,不过可以考虑进入 [5]ESI 开启ESI,[7]浏览器 开启浏览器缓存,如果你的主机商告诉你提供Memcached或Redis,则还可以进入 [6]对象 开启对应的(Redis或Memcached)对象缓存,这是内存缓存,如果服务商提供的话效果还是非常可观的(一般来讲不会提供)。

虽然已经考虑到了主题兼容性,但是下面几段的选项仍然可能会导致主题出现问题,请根据你的主题兼容性,开或关部分选项。

依旧是在LiteSpeed Cache这个大类中,选择左侧菜单的“页面优化”,这个页面有7个选项卡供设置。

首先在 [1]CSS设置中,开启CSS最小化、CSS合并、CSS HTTP/2推送和异步加载CSS;

接着在 [2]JS设置中,开启JS HTTP/2推送和延迟加载JS;

在[3]优化设定中,开启HTTP最小化、DNS Prefetch Control、移除注释、异步加载Google Fonts、移除WordPress表情包;

在[4]多媒体设定中开启延迟加载图片(非常重要)、响应式占位符、延迟加载Iframe、Inline Lazy Load Images Library

在[6]Discussion Settings中,开启Gravatar 缓存、Gravatar 缓存 Cron

最后不要忘记保存修改。

其他缓存

如果你的主机商不是用的LiteSpeed,则只能选择其他的通用插件。在这里推荐使用 Autoptimize 和 WP-Optimize 一起使用(直接在后台插件页面搜索)。

启用这两个插件后,在 WP-Optimize——缓存页面设置:在「页面缓存」选项卡,启用:启用页面缓存、为移动设备生成单独的文件、为登录用户提供缓存页面;「预加载选项卡」中,勾选激活预定的缓存预加载;最后记得保存更改。

虽然已经考虑到了主题兼容性,但是下面一段的选项仍然可能会导致主题出现问题,请根据你的主题兼容性,开或关部分选项。

再到左侧菜单,选择设置——Autoptimize,在「JS CSS HTML」选项卡,勾选:启用 JavaScript 优化、启用 CSS 优化、生成小图片为Base64 数据、优化 HTML 代码,保存更改;「图像选项卡」,勾选“延迟加载”图像,保存更改;「额外」选项卡中,勾选移除 emojis,保存更改。

对象存储

网站最占用空间的是图片,加载最耗时的也是图片,现在我们可以将图片等附件分离出主机,存储到专业的“对象存储”内,不仅图片文件更安全,而且还能得到更快的速度。对象存储是一项付费服务,但价格便宜:对于个人网站,月消费通常会低于1元。

在这里,冰布子推荐使用阿里云OSS作为对象存储提供商,主要是国内访问速度快、价格低廉(且提供一定的免费额度)、插件完善且对新手友好。如过你不想使用阿里云的存储,可以考虑使用微软的Azure Storage或亚马逊AWS的S3。但本文只会讲解如何使用阿里云OSS。

创建Bucket

在阿里云控制台,在产品中心中找到对象存储OSS,**在非中国大陆区(推荐香港或新加坡)**新建一个bucket,存储类型选择标准存储、不需要开通版本控制和备份、无须加密、不需要开通日志。关于读写权限,如果你不想绑定自己的域名,想直接使用阿里云OSS外链或使用第三方CDN加速,则权限应该选择“公共读”;如果你想直接使用阿里云的CDN加速(价格也很便宜,且能全球加速),则权限建议选择“私有”。

创建AccessKey

创建好了对象存储Bucket后,还需要创建AccessKey,让Wordpress插件登录并上传文件到OSS中。

在阿里云控制台,鼠标悬停在右上角头像处,在弹出的菜单中点击“AccessKey管理”,确认继续使用AccessKey后,点击“创建AccessKey”,这时候请务必记下并妥善保管AccessKey和Secret,它们和你的账户密码一样重要。

开启CDN加速(可选)

冰布子不推荐直接绑定域名使用,故本节将会直接讲解如何开启CDN加速并绑定域名。因为阿里云OSS不会帮你自动申请SSL证书,你必须手动上传证书开启HTTPS(但使用CDN,则会直接用阿里云分配的SSL证书)。如果你不想绑定域名或使用CDN加速,可以直接跳过本节。

CDN也是付费服务,但是对于个人网站而言,价格实惠,一般网站月开销可能不足1元。

在阿里云控制台产品中,找到CDN,开通按量付费后,在“域名管理”内点击“添加域名”。

在跳转后的页面中,“加速域名”填写你想绑定的域名(一个子域名,名称自由发挥,例如你的网站是 glaceon.best,那么加速域名可以写 static.glaceon.best 或者 image.glaceon.best),业务类型选择“图片小文件”,源站信息选择“OSS域名”并在域名一栏中选择你刚刚创建的那一个Bucket,端口选择443,加速区域选择“全球(不含中国内地)”。最后确认、等待审核。

审核完成后会在“域名管理”处的“CNAME”一项显示一个网址,你需要将此CNAME记录添加到DNS提供商中:名称为你的加速域名,类型CNAME,记录值为阿里云CDN提供给你的这个CNAME。

添加完成后,等待解析生效,点击加速域名进入CDN管理页面,在“HTTPS配置”中,开启HTTPS安全加速,证书类型选择免费证书(如果不开启,你的网站会被警告有Mixed Content错误)。仍然在本页,你可以开启HTTP/2、强制跳转HTTPS、关闭TLS1.0支持和开启HSTS。

设置Wordpress插件

创建好了AccessKey后,回到Wordpress仪表盘。现在你可以安装Wordpress的OSS插件并使用了。本插件没有登录到Wordpress自带的插件目录,所以需要在安装插件页面自行上传。

插件作者提供了非常详细的安装说明,请 参阅插件文档 使用。需要特殊说明的是,如果你根据 4.2.2.2.3 的步骤启用了CDN,那么本插件的“Bucket 域名”一项应该填写你的CDN的加速域名,这样才能有加速效果。同时,请务必阅读插件文档中“图片服务”一节的讲解,冰布子强烈建议配置图片服务。

反垃圾插件Akismet

由于网站大都是公开的,任何人都可以访问,因此垃圾评论自然少不了,我们必须配置一些反垃圾评论插件。

Wordpress安装后自带了一个反垃圾插件,默认为禁用状态。启用后,插件会叫你去申请一个API密钥,按照插件提示申请,选择免费版本,最后把密钥填入插件中并保存设置即可。

网站发信插件WP Mail SMTP

Wordpress会通过发邮件的形式提醒你一些事情(如评论待审、自动更新等),同时有的主题提供了评论回复邮件提醒功能。这些都涉及到“发邮件”的操作。然而Wordpress默认使用的发信方式是PHP的 mail() 函数,很大概率(或者说,几乎100%的概率)会被丢进垃圾邮件甚至直接被退信。因此,我们必须配置SMTP,让Wordpress使用真实的邮件服务器发信。

在开始之前,你必须拥有一个可靠的电子邮件地址(推荐使用GMail,当然如果你可以申请一个企业邮箱或域名邮箱就更好了),并开启SMTP功能,具体操作请上网搜索“[你的邮箱提供商] 开启SMTP”。关于申请、使用免费域名邮箱的指引,可以考虑申请 腾讯企业邮 或 Yandex域名邮箱,冰布子自己使用的是Office365的付费服务。

在Wordpress插件安装页面,搜索WP Mail SMTP并安装。

如果你要使用GMail,需要使用API,请参考 插件官方文档(英语) 进行配置。该文档非常详细。

如果你要使用其他邮件提供商,且知道其SMTP配置,可以在插件配置中选择Other SMTP,根据邮件服务提供商提供的信息填写。举例说明,Office365的SMTP主机为 smtp.office365.com ,加密类型为 STARTTLS,端口为587,用户名和密码即完整邮箱地址和邮箱密码。

设置完成后,保存更改,在“发送电子邮件测试”选项卡中给自己发送一封测试邮件,如果能收到,就说明没有问题可以正常使用了。

友情链接Link Manager

友情链接姑且算一种古老的“社交方式”了,可以算作博客时代的“朋友圈”,在自己网站的某个地方挂着其他人的网站链接。当你的朋友有了自己的网站后,不要忘记去交换友情链接噢。友情链接对SEO(搜索引擎优化)也有一定的帮助

链接管理器本来是自带的,但后来Wordpress把它分离出来成了插件,如果要使用友情链接功能,需要去插件搜索 Link Manager 安装并启用。安装后会在仪表盘左侧菜单多出一个“链接”设置。只需点击链接——添加,即可添加友情链接。关于如何展示友情链接,会在后续讲到。

其它实用插件

冰布子实用Wordpress已经有10年了,现在总结一些自己使用的插件供各位参考。

Auto Ping Booster 和 Google XML Sitemap Generator

想让自己的网站尽快被搜索引擎收录吗?除了多更新文章之外,使用Ping服务(新文章发布后会主动通知搜索引擎)、创建Sitemap(为搜索引擎准备的网站地图,方便爬虫爬取)是简单而有效的方式。

Google Font Fix

由于某些原因,Google Font在国内使用起来总有点问题,但绝大多数主题都会引用Google Font的字体。使用本插件可以加速Google Font的体验,同时还支持加速Gravatar头像,强烈推荐使用。

Really Simple SSL

你的网站多多少少都可能会出现Mixed Content(在HTTPS页面中,出现了非HTTPS的元素)的问题,这时候使用此插件就可以一键解决。简单、无脑、效果好。

WP Statistics

想知道你的博客人气的真实的数据吗?使用此插件可以直接为你分析你的搜索引擎索引量、访问量、访客数据(从哪里找到链接访问的、访问地区、访问了什么文章、使用了什么浏览器等等),然你对你的网站数据有一个详尽的了解,知道自己的网站访客的兴趣,并优化自己的内容。部分主体的“本文被阅读过XX次”的功能就需要此插件

使用CDN加速其它静态文件(可选)

4.2.2.2 对象存储 一节,冰布子讲到了使用CDN加速对象存储以起到加速网站的图片的作用。除此之外,我们还可以配合Wordpress插件,使用CDN加速CSS、JS等静态文件,减少对源站的请求以达到加速的效果。

在开始之前,你需要先参考 4.2.2.2.3 开启CDN加速(可选) 一节,添加一个CDN域名,加速域名依旧是自己定义,如 cdn.glaceon.best ,源站选择“源站域名”,源站域名填写你的Wordpress网址,端口为443。冰布子的静态文件加速使用的是Azure CDN,创建方法和阿里云差不多,只需带入过去即可。

创建好CDN节点后,回到Wordpress仪表盘。

如果你使用的是LiteSpeed Cache,直接在LiteSpeed Cache——CDN页面中:开启“使用CDN映射”、CDN URL填写你的CDN加速域名(需要包含 https:// )且进选择“包含CSS”和“包含JS”,原始URI填写 //[你的Wordpress网址],包括目录填写wp-content wp-includes /min/,一行一个。最后保存修改即可。

如果你使用的不是LiteSpeed Cache,请确保你已经安装了Autoptimize。在设置——Autoptimize中,第一个选项卡(JS CSS & HTML)找到“CDN选项”,在“CDN基本URL”中填写 //[你的CDN加速域名],最后保存修改即可。

从Lofter迁移到Wordpress

注意,由于Lofter、微博都有防盗链机制,因此你文章中的图片必须要自行上传并自行重新插入到文章中!

请参考 Lofter2Hexo项目 ,或作者的 知乎专栏 ,其中知乎专栏的最下面有作者提供的视频教程。但是需要注意的是,我们此处虽然需要下载图片,但不需要按照作者所说上传到Github图床,因为Wordpress本身自带图片上传功能且通过前文你应该已经配置好了对象存储,因此你应该直接把图片上传到Wordpress。作者这样做是为了照顾Hexo或Hugo用户。


个性化

现在你已经初步设置好并简单地优化了你的Wordpress站点,在写作之前,挑一个你喜欢的主题,做好个性化配置再开始吧。

主题

Wordpress拥有相当庞大的主题库,你可以充分利用主题来个性化网站。

在Wordpress仪表盘内置有主题市场(仪表盘——外观——主题——添加主题),可以在里面选择你喜欢的主题选用。但需要注意的是,外国人制作的主题通常不会考虑中文博客体验,因此建议选用主题时优先考虑国人制作的主题。

除了Wordpress内置的主题市场,你还可以去 Github搜索Github话题 等网站寻找优秀的主题。在这里,冰布子推荐 Sakurairomdxargon-themetony 和Wordpress官方出品的 Twenty Seventeen 等主题。

由于各主题的个性化配置都互不相同,且很多主题还有其特定的功能,因此具体使用方式请参照主题说明。但仍有很多通用的配置需要注意。

自定义功能

选择主题时,点击“即时预览”可以预览主题(但不保证是最终效果),在预览的同时可以对你的网站的站点身份和图标可以进行自定义。点击“站点身份”可以修改你的图标(即LOGO,如果没有,主题会自动换成文字。点击选择图标后网站会提示你建议尺寸)、站点标题和副标题、站点图片(网站图标,见下图,建议512*512以上的正方形)

Favicon

除此之外,即时预览功能还能修改和自定义其他很多选项,具体取决于你使用什么主题。每一项都有中文引导,其难度比装修淘宝店或修改QQ空间还简单,相信对各位来讲不是问题。

修改好后,点击“发布”,即可使用主题。

另外,有的主题功能非常强大,还自带自己的设置页面可以供用户调整,具体请参照实际和文档自行配置。

菜单和小工具

不同主题菜单的样式和位置都不一样,有的主题允许用户使用多个菜单(具体请参考主题本身的文档或即时预览中“菜单”选项中的说明),你可以利用其特点充分使用它们。

小工具(Widget)类似于一种“挂件”,可以在侧边栏或者网站底部展示特定内容,但部分主题没有侧边栏(单栏主题),因此请根据主题自身情况使用。

调整这些选项都不会触发缓存插件清理缓存,因此你修改后必须清除缓存(查看你仪表盘顶部,有删除缓存的菜单)后才能生效。


撰写内容

终于,现在你可以准备动笔开写了!但是在写文章的同时还有一些问题必须要了解。同时冰布子将会给出一些建议,让你的文章更好看。

Wordpress有两种文章类型:文章、页面。“文章”即普通文章,会出现在博客时间线中;“页面”则被看作一个独立网页,默认隐藏,你必须在菜单中添加此页面才会显示该页面的链接(因此,“页面”通常用来写“关于”页或留言板页)。

使用Wordpress编辑器

Wordpress编辑器

不管是页面还是文章,使用的编辑器都是一样的。Wordpress的编辑器是最近比较流行的“模块化编辑器”,有的人一开始会不习惯,但实际上用一段时间后会发现比其他的那些所见即所得编辑器好用很多倍。插入图片也支持拖拽图片到窗口内,调整位置也非常简单。但现在冰布子主要想讲的是右侧菜单中的选项。

  • 永久链接:本文章的URL,如果你的永久链接不是选择的“数字型”,那么为了美观和SEO,务必修改此处,将里面的中文改成英文字母、横杠和数字的组合(拼音也行)
  • 特色图像:文章封面图,为了美观,最好每篇文章都设置一个。
  • 摘要:(建议每篇文章都要写)为文章写一个摘要(将会出现在首页的文章列表),如果懒得写,直接把你文章的第一段丢进去也行。
  • 标签:你熟悉的标签,但是标签广场这种功能是不存在的,但是为了SEO,一定也不要忘记打TAG。

首页显示摘要

如果你的主题不支持首页截取摘要,且你没有给文章写“摘要”,那么你的博客页面会变得非常————————长!因为没有写摘要且主题不支持截取的话,系统会在文章页中直接输出文章全文。这样会严重拖慢加载速度,非常不好。

如果你的主题支持首页截取摘要(通常来讲,国人主题大部分支持,外国人的主题大部分都不支持),则你不需要插件,直接去主题的设置中寻找是否有类似选项,开启即可。能不用插件的时候就尽量不要使用插件。

那如何让不支持首页截取摘要的主题支持此功能呢?你需要一个插件:Advanced Excerpt,在插件页搜索并启用它后,在设置——Excerpt中进行调整:Excerpt Length建议选择250至300词(Character);勾选“Read More Link”,自定义文本为“继续阅读”或其他你喜欢的文字,其余的根据自己喜好调整,最后保存即可。

Wordpress相关讲解到此结束。有了一个属于自己的环境后,冰布子希望你能坚持写作,不要途中放弃。

RSS订阅

微博可以关注博主,Lofter也可以关注博主,那么独立博客能不能?当然可以,用一种古老的办法:RSS。

Wordpress、Typecho(使用PHP的博客平台)、Hexo(静态博客平台,需要插件)、Hugo(静态博客平台,需要插件)、Ghost(使用NodeJS的博客平台)等等等等都支持输出RSS,你只需要下载一个RSS阅读器(网上搜索即可),获取订阅链接(通常而言,就是博客链接后面加 feedrss ,如 https://glaceon.best/feed )在阅读器中订阅即可。

除了博客,很多媒体网站都支持RSS,不支持的也可以使用 RSSHub 之类的工具让其支持。使用RSS,没有“猜你喜欢”,也没有广告(除非文章作者在文中插入广告),只有最原始的信息流。

从Wordpress迁移到Hugo简要记录

2022年5月3日 05:40
Featured image of post 从Wordpress迁移到Hugo简要记录

这个小博客是2010年年底建成的,那时候的我还是个连网站DNS都弄不明白的小白初中生。结合当时的流行度、易用性以及出现问题寻找答案的方便程度,Wordpress无疑是建站最优解,而这一用就是12年。

当前我的Wordpress博客是托管在维基主机的香港虚拟主机里的,综合性能都很不错,且价格极为便宜(90元/3年),但由于虚拟主机共享IP的特性,这台位于香港的虚机时不时会因为受到攻击而离线,稳定性一般。除此之外就是Wordpress作为老牌PHP+MySql框架的最大局限性:臃肿、缓慢,即便我的虚拟主机提供商使用LiteSpeed作为Http服务器,可以结合LiteSpeed Cache这种高性能缓存插件提速,且我也使用了对象存储和CDN加速图片加载,但实际的网页加载速度仍不尽人意。

诚然,时至今日Wordpress依旧是是一个优秀的建站工具:入门门槛低、扩展性强、主题多(不然我也不会用这么久),但兴许是年纪越大越只喜欢纯粹的原因,迁移为静态博客的想法越来越占主导——直到今天我正式决定迁移并将新的Hugo站点上线。

先前的失败尝试

Ghost

实际上这不是我第一次打算迁移为其他博客框架的尝试,数年前Ghost流行时我就跟风尝试过,但是它并不是如Hexo、Hugo等框架一样的静态网站生成器(Static Site Generator, SSG),而是和Wordpress差不多的动态博客框架,只不过它是基于Node.JS和SQL的,而且确实比Wordpress轻快。但是这就有了一个更大的问题:如果博客使用NodeJS环境的话,我还必须额外使用一台VPS作为服务端,完全不如Wordpress方便,加之我对NodeJS完全不熟悉,所以就没有使用下去,甚至都没有动过迁移数据的念头。

好在我先前的决定是正确的,Ghost的操作至今被不少使用者所诟病,如至今都没有搜索功能、原有插件系统下线、主题开发体验糟糕……等等,可以看这篇文章:Why I don’t like the Ghost blogging platform anymore (nehalist.io)了解详细。

Hexo

Hexo至今都非常流行,使用Next主题的使用github.io二级域名的博客随处可见。我一度曾很想迁移到Hexo,但是要从Wordpress这种PHP博客框架迁移到Hexo这样的静态网站生成器并非易事——尤其是习惯上,受限于当时对Markdown语法的熟悉程度和水平、时间限制,迁移的想法一直没能实现,或者说因为嫌每次写文章都要自己创建.md格式文件的纯手动操作太麻烦而放弃。

下定决心

语法简单的Markdown非常适合用于写博客,键盘长时间不离手确实有助于思绪的连贯性,而非强烈依赖鼠标修改版式打算思考,用起来非常顺手。我也因此购买了正版的Typora,但若使用Wordpress配合该软件写博客的话就显得十分麻烦,不如直接使用Wordpress网页后台的古腾堡编辑器。

其二,Hugo、Hexo这类框架可以直接使用Git托管到Github仓库内,再使用Vercel或Netlify等服务发布,对于个人博客而言就算是免费且速度相当不错。

最重要的是,Wordpress的速度,特别是网页后台的速度一直在挑战我的耐性。直到今天我终于决定要迁移成纯静态博客了。

准备迁移

整理已有文件

第一步是整理已有的文章,因为Wordpress是有自己的后台的,(批量)管理分类和标签都比较方便,因此在其后台完成这些工作比迁移后续修改方便一些,顺便还能看看哪些文章可以直接删除掉。先前就提到过,我的这个博客是初中的时候就建起来的,这12年来的流水账并不少,有很多文章我现在回头整理翻看的时候简直头皮发麻,尴尬得都能挖个地道回国了——而且这么多年来我还一直任由那些内容公开在互联网上——总之,虚拟主机这边做好了全站备份后直接在Wordpress后台里面把看着尴尬的内容全删了,200多篇博客直接降到了不足50篇,也算是变相减轻迁移工作量吧。(乐。

使用迁移工具并整理

文章初步整理好后可以进行第二步,使用迁移工具进行导出。安装并使用wordpress-to-hugo-exporter这个插件,可以将自己的Wordpress网站内容(博客文章和页面文章)导出为带有Front Matter元数据的Markdown文档。

但是这个导出工具并不是非常好用,即便是导出好后,部分文章仍然残留有大量的HTML标签,不能直接交给Hugo使用。这时候就要进行第三步,检查并更正导出好的Markdown文件。

我在清理、替换HTML标签的时候直接使用的是Visual Studio Code内置的跨文件正则表达式查找替换工具。使用VSCode打开导出得到的文件夹,使用快捷键CTRL + SHIFT + H并打开正则表达式开关进行查找替换。这时候你可能需要复习一下正则表达式语法,根据自己的情况删除替换HTML标签。

比如我在这次迁移过程中最常用的莫过于将<img>标签转换为Markdown,可以查询<img.*?src="($1)".*?>($2)</img>并替代为![$2]($1),同理最常见的<a>标签也可以用类似办法清除,除此之外还有代码高亮使用到的部分<pre>标签,也要根据情况替换为代码块```或引用代码格式``

由于每个人的博文都不尽相同,加之我自己的正则表达式语法水平极其有限,建议迁移时自行依照实际情况并参考语法慢慢替换,而且最后还是需要一篇一篇地检查是否有遗漏。检查时可以考虑使用Markdown工具的所见即所得模式查看排版后的效果,可以直观地看到语法是否还有问题。

整理的过程确实比较痛苦,但为了迁移到静态网站,这一切还是值得的。

安装和配置

一切都准备得差不多后可以先在本地电脑里安装Hugo框架了,直接参考官方文档更实在:Quick Start | Hugo (gohugo.io)

接着再把导出好的文章放到指定位置:文章放进content/post里、页面文章放进content/page里,并根据自己安装的主题的文档进行相关配置、完善网站的config文件。

部署

Hugo这类静态网站生成器的一大优势就是可以近乎一键部署。把整个博客作为一个私有仓库上传到Github进行托管,然后使用Netlify或Vercel之类的服务直接进行部署即可。

需要注意的是,Vercel部署Hugo时默认给的版本很低,可能会在部署时出错,可以在部署页面添加一个环境变量HUGO_VERSION,值填写当前最新版的版本号,如0.91.2

部署完成后,崭新版本的古董博客终于上线了!

——哦对了…这时候我们还没有配置评论,因为这种生成器是不可能自带评论系统的,需要借助其他的评论框架。

评论迁移和使用

我的Wordpress在删除文章之前有2000多条评论,即便是现在删除得只剩下不到50篇时也有500多条,如果直接舍弃了还是非常可惜的。考虑到通用性,直接使用Disqus无疑是最优解。

Disqus本身就是支持Wordpress的,在Wordpress上安装插件,直接在后台将所有评论导入进Disqus即可完成评论的迁移,接下来只需要在Hugo处启用Disqus评论即可,非常方便。

需要提醒的是,Disqus无法直接在中国大陆使用,应该考虑用SukkaW/DisqusJS这个项目替代,且对Disqus的API进行反向代理(通常各种国人写的主题都会考虑到这些,并直接集成该项目)。

收工上线🎉

经过一天的努力,终于算是把所有的工作都做完可以上线了,在本地和线上都测试通过后,修改DNS配置指向新的CNAME等待解析,新的基于Hugo的博客终于重新上线啦!

果然纯静态就是快呢~

使用NoneBot2和go-cqhttp打造自己的FF14 QQ机器人

2022年4月18日 20:40
Featured image of post 使用NoneBot2和go-cqhttp打造自己的FF14 QQ机器人

两年多之前,CoolQ还没死掉的时候,我就注册了小号开了个基于CoolQ的机器人。当时CoolQ本身要使用Windows,即便有基于Wine的各种Docker容器可供使用,但对于性能较差的小鸡来讲还是负担不小,凑巧当时我还有精力拿Windows Server做Seedbox刷PT,就让自己的Hetzner独立服务器兼职做了QQ机器人。但不巧的是几个月后CoolQ就被腾讯干掉了,我群里的QQ机器人就此停摆。

最近几个月我一直沉迷《最终幻想14》,也是这段时间才后知后觉发现其实很多群里都已经有自己的QQ机器人,且现在常用的机器人框架如NoneBot、QQ支持库如go-cqhttp对性能的要求已经比先前低了很多,看起来在小鸡上运行不会有什么问题。于是我就给我所在的部队,利用闲置的甲骨文免费机器(相信各位应该都知道甲骨文给的x86架构的免费机器的性能大概是什么样的),重新做一下QQ机器人。

大致思路

前面已经说了,我想恢复QQ机器人的主要目的就是把它作为一个集成了FF14相关工具和其他一些娱乐功能的Bot,前者有一个比较成熟的框架叫做獭獭Bot(OtterBot),有现成的”獭窝“可以直接使用go-cqhttp接入;后者则需要使用NoneBot配合对应的插件自行搭建、缝合。

而将上述的机器人”大脑“连接起来并登录QQ进行发信的工具则是go-cqhttp,类似于当初CoolQ本体,而其他功能则类比CoolQ的插件。

本文中我们将先使用go-cqhttp接入QQ和獭獭Bot,完成后再使用NoneBot给自己的QQ机器人加一些娱乐功能。

使用go-cqhttp登录QQ并接入獭獭Bot

当前最适合低配置VPS的QQ运行库非go-cqhttp莫属,且安装简单,在其Github Release页面中下载对应的发行版和架构的安装包安装即可。我的VPS运行的是Ubuntu 20.04 x64,故下载AMD64的deb包,使用 dpkg -i 命令安装即可。

接入獭獭Bot

由于一些人恶意对獭窝DDoS攻击,故最近无法领养和使用獭窝。

因为我做这个QQ机器人主要原因就是使用FF14相关工具,所以我会接入獭獭Bot,直接按照 教程 进行领养即可,由于该教程使用的是Windows,所以在”正式领养“的Step2后,客户端选择go-cqhttp下载对应的配置文件,并在自己的电脑上根据自己的实际情况修改该文件。由于我们除了獭獭Bot之外还要接入自己的NoneBot,所以我们还要在该文件的最后面添加:

1
2
3
4
5
6
7
8
 - ws-reverse:
 disabled: false
 universal: ws://127.0.0.1:8080/onebot/v11/ws/
 api: ws://127.0.0.1:8080/onebot/v11/api/
 event: wa://127.0.0.1:8080/onebot/v11/event
 reconnect-interval: 3000
 middlewares:
 *default # 引用默认中间件

完成后,在该文件夹内使用命令 go-cqhttp 运行一下看是否能成功登录QQ(此时会出现 ws://127.0.0.1:8080 无法连接的报错,这是因为我们现在还没有部署自己的NoneBot机器人,所以可以忽视)。

检查是否有风控问题

腾讯有一些奇奇怪怪的风控机制,被风控的账号无法在群里发消息(私聊不会有问题),这时我们把机器人放到群里,使用任意命令看其是否能回应,如果不能,则有可能是被风控(此时终端内的log也会提示),如果有该问题,可以考虑编辑go-cqhttp运行目录下刚刚生成的 device.json ,并修改内容(使用一些Android手机信息生成器生成手机IEMI等信息,让它看起来更真实),同时删除 session.token 并重新启动go-cqhttp。如果还不行建议在go-cqhttp的 Github Issues 里面寻找答案。

如果没有问题的话,这时候我们可以暂时退出go-cqhttp,写一个简单的systemd守护进程,再开始部署NoneBot缝合想要的娱乐功能。

守护进程(Systemd)

编辑service文件 /lib/systemd/system/go-cqhttp.service

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
[Unit]
Description=GO-CQHTTP
Wants=network-online.target
After=network-online.target
[Service]
Type=simple
User=root
WorkingDirectory= GO-CQHTTP的运行目录
ExecStart= nohup go-cqhttp
KillMode=process

[Install]
WantedBy=multi-user.target

如果你不知道怎么使用systemd的话,可以参考下列命令:

1
2
3
4
5
systemctl status go-cqhttp #查看状态
systemctl enable go-cqhttp #启用开机自启
systemctl restart go-cqhttp #重启进程
systemctl stop go-cqhttp #停止进程
systemctl start go-cqhttp #开始进程

使用NoneBot搭建并部署机器人

我的VPS环境是Ubuntu 20.04,apt安装的Python为3.8,NoneBot要求至少使用Python 3.7.3 以上版本

NoneBot是基于Python的可兼容多个聊天工具平台的机器人框架,而且使用非常简单,在有Python3的环境下使用pip安装即可,详细安装过程直接参考 官方文档 即可。需要一提的是,在Bot的目录内使用脚手架(即nb-cli)安装插件时,程序可以自动编辑Bot配置文件把插件加载到其中,无需手动修改配置文件,故为了方便,第三方插件可以等到创建好Bot后再安装。

配置

由于我们在这里只将Bot作为QQ机器人使用,所以只需要安装OneBot这一个适配器即可,安装命令为 nb adapter install nonebot-adapter-onebot

安装好后找好准备存放Bot文件的目录(脚手架会帮你创建Bot文件夹),可以使用 nb create 开始创建Bot,具体流程可以查看 官方文档 ,在这里就不再赘述。因为我们是作为QQ机器人使用所以要在”适配器(Adapters)“的选择中选择OneBot。

创建完成后不要忘记编辑 .env.env.* (默认是 .env.dev)以配置机器人框架,查看 以进行配置。

安装插件

到这里一个NoneBot的机器人框架就搭建好了,接下来可以按照自己的喜好安装插件,可以直接访问 官方商店 查看插件目录,挑选好自己喜欢的插件,直接点击”复制安装命令“,复制到终端内安装即可,非常方便(务必不要忘记查看对应插件的说明,获取详细配置信息)。

我自己的NoneBot机器人使用了以下几个插件,可以直接在NoneBot商店找到,直接使用脚手架安装,且配置都非常简单(大部分都不需要配置,开箱即用)。

1
2
3
4
5
6
7
ELF_RSS2 - 订阅RSS并发送到群里(配合RSSHub效果拔群,用来推送FF14新闻)
nonebot_plugin_epicfree - Epic白嫖喜加一,可选定期推送
nonebot_plugin_analysis_bilibili - 自动解析Bilibili小程序并转换为普通链接
nonebot_plugin_setu_now - 随机色图(使用Lolicon API)
nonebot_plugin_word_bank2 - 无数据库的问答插件
nonebot_plugin_what2eat - 今天吃什么
splatoon2_tools - Splatoon2相关查询(涂地、打工、排位查询)

此外,由于我是因为FF14兴起才打算恢复QQ机器人的,所以必然少不了FF14相关的插件,我目前给自己的Bot加了2个FF14相关组件:FF14占卜插件(onebot_Astrologian_FFXIV)和獭獭Bot,后者为独立的机器人框架且可以直接接入”獭窝“直接使用。

FF14占卜插件是没有加入NoneBot插件商店的,所以需要把该插件的源码下载到自己Bot目录下的 /[Bot名称或src]/plugins/ 目录内,因为Bot默认会加载该目录下的插件所以无需再改配置文件,最后安装依赖 pip install pydantic 即可使用。

运行

插件配好后可以开始试运行了,在Bot目录下使用命令 nb run 即可,同时别忘了运行go-cqhttp(使用systemd或者新开一个终端窗口运行),运行没问题后记得试用自己插件的命令,查看是否有问题,如果有报错,则根据报错内容到对应插件的Github仓库寻找答案。

至此,NoneBot机器人就缝合好了,同样也写一个简单的Systemd守护进程方便后台运行。

编辑service文件 /lib/systemd/system/nonebot.service

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
[Unit]
Description=NONEBOT SERVICE
Wants=network-online.target
After=network-online.target

[Service]
Type=simple
User=root
WorkingDirectory= NONEBOT的运行目录
ExecStart= nohup nb run
KillMode=process

[Install]
WantedBy=multi-user.target

如果你不知道怎么使用systemd的话,可以参考下列命令:

1
2
3
4
5
systemctl status nonebot #查看状态
systemctl enable nonebot #启用开机自启
systemctl restart nonebot #重启进程
systemctl stop nonebot #停止进程
systemctl start nonebot #开始进程

总结

至此,我们的基于獭獭Bot、NoneBot并使用go-cqhttp整合的QQ机器人就算是完工了,我把它放进了自己的亲友群和FF14的部队群里,尤其是色图推送和占卜插件,群友们用了都说好(乐。

顺便贴一张我和我女朋友在海都的合照(((

兽装半装委托备注 – 雪明

2021年8月30日 14:51
Featured image of post 兽装半装委托备注 – 雪明

设定信息

设定图

设主QQ:541647229

设定名称:雪明(Yukiakari)

委托类型:半装

参考种族:狐狸 / 伊布 / 冰伊布

设定备注

这是经过最初的讨论后的结论

  • “双马尾”是头发,但请做成类似于垂耳兔的做法的布条,起始部分隐藏在头发里
  • 需要加长的爪子,务必长过花纹最远处,即半截袖的类型
  • 头部4片小菱形形状物为冰锥,使用毛做即可

Epic Games俄区国区共存新方式:Legendary启动器

2021年3月15日 23:28
Featured image of post Epic Games俄区国区共存新方式:Legendary启动器

因为垂涎俄罗斯区的低价,所以早些时候我注册了Epic Gmaes的俄罗斯小号,但一直以来白嫖用的(当然也趁着打折买了一些3A游戏)国区大号库里面有不少会玩的游戏,但Epic目前不像Steam允许家庭共享且客户端一次性仅能登录一个账户,所以只能两个来来回回登录、注销,感觉很麻烦。

前两个月偶然发现Github有一个第三方Epic Games启动器:Legendary ,当时我还没俄区小号就没在意;现在不仅有了还在买了吴克3,所以想想为了方便还是用上吧,这样就可以实现官方客户端用国区账户、第三方启动器Legendary用俄区小号且不需要频繁切换账户的操作了。

安装

Legendary是用Python写的,所以首先需要去 Windows Terminal (Windows默认环境下的PowerShell有多辣眼睛你们知道的)。

然后在PowerShell中使用pip安装Legendary:pip install legendary-gl 完成后就可以使用了。

开始使用

接下来运行登陆命令来登录Epic Games:legendary auth

运行此命令会自动弹出网页登陆,登陆成功后会显示一串json返回值代码,复制sid里面的值到PowerShell里面回车即可。

这里需要提一句的是,如果你有在使用Clash(或者其他类似的代理工具),那么这一步你大概率是会出错的,所以这时候你要么直接从Clash里面运行Windows Terminal(点击Clash主界面上的终端图标),要么就自己提前设置好PowerShell环境变量。

为了方便我直接给自己的PowerShell Profile设置了环境变量。首先找到下面路径的文件(如果没有可以自行创建一个)

1
2
3
4
C:\Users\用户名\Documents\WindowsPowerShell\profile.ps1
编辑并添加下述环境变量(7890为Clash for Windows默认端口,可按照自身情况更改):
$Env:http_proxy="http://127.0.0.1:7890";
$Env:https_proxy="http://127.0.0.1:7890"

这样一来一旦启动PowerShell就会自动应用代理,但缺点是你不能关闭Clash客户端了(不过Clash的配置文件配好了压根就没有关掉它的理由,所以问题不大)完成后就可以继续使用Legendary。

安装和运行游戏

Legendary使用方法很简单,首先命令程序列出你账户的游戏:legendary list-games

返回结果大概是这样子: 然后就可以参照你自己的库,使用install命令安装你自己已有的游戏了。注意安装时,游戏名称需要填写App Name而非游戏本身的标题。例如我要安装HITMAN3, 输入命令时应该输入对应的App Name:Eider。

1
2
legendary install "HITMAN 3" #错误用法
legendary install Eider #正确用法

如果游戏内含DLC,安装后程序还会提示你是否一并安装DLC,安装完成后可以使用launch命令运行。

1
legendary launch Eider #运行杀手3

另外,如果你之前已经下载安装过游戏了,可以使用命令导入到Legendary:

1
legendary import-game Anemone /mnt/games/Epic/WorldOfGoo

如果需要Legendary的详细文档,或任何本文为讲述到的该软件的功能,请移步该项目的 Github页面(英语)。

结语

虽然没有GUI,但是Legendary这个启动器本身就比较简单所以有没有都无所谓了,曲线救国实现了小号大号共存且免切换账户才是最重要的,终于可以安心玩在小号买的吴克3啦。

不过话说回来,吴克3里面重庆怎么叫Chongquing…??狗头人作祟吗??(IOI自己在YouTube发的视频写的Chongqing倒是对的)

在非洲玩游戏的日子(冰布子的非洲日常2)

2020年12月29日 21:58
Featured image of post 在非洲玩游戏的日子(冰布子的非洲日常2)

以前总觉得任天堂在网络方面做得很烂,丝毫没有作为“现代游戏机”的“感觉”;但当XBOX和PlayStation上各种3A游戏首日更新动辄几十GB、实体盘游戏也需要安装占用大量机身硬盘空间的时候,突然又很感激这家京都老字号:因为任天堂平台的游戏绝大部分仍能插卡即玩。而这种“原始”的方便已经在其他平台上越来越难找了。

先阐明:非洲绝对不是适合玩电子游戏的地方。

如果你要在非洲玩游戏

马拉维和乌干达都是能在“全球最不发达国家”中能排上前十的地方,那么电子游戏这种“比较现代的娱乐方式”代价必然及其昂贵:一台PS4 Slim至少需要2500元人民币,而游戏的价格就更加离谱,折算人民币后至少需要550甚至600多元一张,而且几乎所有的游戏价格都一样(哪怕有的游戏本身官方指导价要便宜一点),因此就有比较奇怪的现象:Swtich的《古惑狼赛车重置版》和《塞尔达传说荒野之息》价格完全一样,要知道前者的指导价应该是39.99美元,且还没有考虑前者在各国家市场几乎是不可能以原价销售的情况(原价谁买)。

虽然流通的游戏大部分是欧版,但实际上那是中东版,有欧版PEGI标是因为大部分游戏公司的中东地区是规划到欧洲分部的,且游戏塑封大多都有伊斯兰文。我一度认为这离谱的价格就是中东货源导致的。 就算是在非洲发展比较好的国家加纳,到电子游戏方面也不太乐观。不管是游戏还是游戏机硬件都一样贵,唯一好处是这里能更快买到新产品。Xbox Series X发售还没两周,我竟然就在首都阿克拉电子产品店里看到了XSX现货售卖,但是要价6000人民币,十分感人。

至于电脑就更不要提了,因为在非洲这些国家售卖的整机或笔记本的配置在我们都非常“畸形”:落后23代的轻薄超级本低压处理器、清一色HDD硬盘、1366*768的分辨率且价格并不便宜。攒机?华硕的GTX1060显卡价格是3696元人民币,国内炒RTX3080的奸商看了都直呼内行。——因此,在加纳你能买到的性价比最高的电脑其实是MacBook Pro,因为这里的价格比国内更低。 离谱的显卡价格 顺便一提,在发展较好的加纳,首都阿克拉的普通工人每个月工资大约只有600800塞地(约700~950元人民币)。也就是说当地普通人是一辈子都不可能碰到这些东西的。

有了游戏和游戏机,在开玩时免不了联网(尤其是现在的那些“现代游戏机”),然而遗憾的是不论是宽带还是移动蜂窝网络,花费都不低。更可气又可笑的是,有的地方宽带还不如4G靠谱:时不时直接断掉,但4G一点问题都没有。

不难看出,能在非洲玩上电子游戏的家里条件都不会差,不过条件不好的也可以去游戏店按小时计费玩PS4,而玩的最多的必然是FIFA,像极了以前国内的PS2游戏店。 说实话 村之间踢球能兴奋成这样 FIFA卖的不好才有问题 ——事实上在二手交易网站上挂着的PSV或者PS4基本都带有FIFA,看来黑叔叔们对体育游戏情有独钟。

在非洲玩游戏的日子

因为工作性质,我是在项目上住的,在马拉维的时候,项目本身就身处偏远地区,4G信号时有时无,必须要把手机放到特定的位置才有稍微稳定一点的4G开热点。就算能解决信号问题,网络费用是完全躲不了的:马拉维的运营商TNM手机流量最低价格都是10元/GB,如果要下载点什么东西的话,只能包价格浮动制的最低7元/4GB限2小时的套餐。得亏我当时只带了台2DS(和后来找人捎来的3DS),系统或游戏更新都不算问题,但那些想玩PS4或XBOX的恐怕流量费都能买好几张正价游戏了。

马拉维的项目条件很艰苦,不过还好下班后基本都不会有什么事情,除了规划好流量看一两集动画外就是拿着3DS玩了,有时候工地事情不多就把3DS带上,中午的时候玩玩,逆转裁判和大逆转裁判都是我在摸鱼的时候通的。 布兰太尔的一家电子城 月末时,我们会去大城市布兰太尔逛逛。那里的电子城其貌不扬但东西还不少,除了贵了小一千的PS4之外,居然还有卖new 3DSXL而且1350元价格还算可以(看来他们不怎么玩3DS)。

调到乌干达后情况就好一点了,项目营地信号好,流量价格便宜了一半(5元/GB)有的同事甚至晚上会顶着200ms的延迟玩欧服英雄联盟。因为4G用户少(大部分当地人都只有个传音按键机),因此就算是蜂窝移动网络的NAT类型都可以直接玩P2P游戏,晚上下班时我就会经常玩Splatoon2而且匹配超快。不过毕竟只是4G网络,掉线少不了,我排位的段位也一直停在了A/A+(当然也有我的水平问题)。顺带一说,在乌干达,交话费的时候还需要缴纳聊天税,这绝对是我见过最离谱最奇葩的税收项目。

在乌干达我也难得的见到了一些专门卖游戏的店(其余的都是电子产品店,从来没见过只卖电玩的,虽然价格都一样贵),那里竟然还有全新的欧版宝可梦黑白限定DSi卖,不过1500的价格还是劝退了。 900多块钱的XBOX手柄(马拉维) 到了2019年末,2020年初,我又调到了加纳,这里条件是目前我常驻非洲的这三个国家里面条件最好的,也终于,项目上都买了4G公共WiFi,虽然还是需要节约点使用但终于不像以前那样拮据了(毕竟那会儿我看个动画都得省着盘算),而且信号也多多少少得到了点保证还省了个开热点的设备。

以前总觉得任天堂在网络方面做得很烂,丝毫没有作为“现代游戏机”的“感觉”;但当XBOX和PlayStation上各种3A游戏首日更新动辄几十GB、实体盘游戏也需要安装占用大量机身硬盘空间的时候,突然又很感激这家京都老字号:因为任天堂平台的游戏绝大部分仍能插卡即玩。而这种“原始”的方便已经在其他平台上越来越难找了。——这就是我这两年来对任天堂主机的最直观的感受,而且NS还把便携主机带到了新的层次,这很好。

虽说Switch可以直接使用自带的屏幕玩、不需要显示器,很适合我这种工作情况,但有个大点的显示器终归还是更好。好在加纳这里还是能创造点条件用大屏幕。今年(2020)年初的时候,项目只有我一个人,于是我直接把食堂的电视搬到了寝室,还顺便买了个瑜伽垫,晚上还能跳一下《舞力全开》活动活动,垃圾宝可梦剑盾也是在这里通关的。

后来我到了其他项目,碰巧有闲置的显示器。虽说是16:10的比例,画面必定会被拉伸且只有DVI、VGA接口,但总比没有好。于是擦干净显示器上的灰尘后我跑了很多家电子城问有没有HDMI转DVI线,落空后偶然去了躺名创优品(没错,加纳有名创优品,而且还有两家)竟然还真给我找着了,于是配合我买的JBL蓝牙音箱和AUX线,我在非洲的Switch体验增强套件总算齐活了。虽说有公家的显示器借来用,但我还是考虑以后买台便携显示器带走。毕竟之后能不能用都说不准,但这事只能等回国后再说了。

今年工作上的事情多且杂,心态越来越糟糕,所以玩游戏的时间(或者说想玩游戏的时间)不算太多,通关的没多少。

年初的时候,我没管住自己的手买了宝可梦剑,和网上说的一样烂于是通关后就再也没碰,DLC买了至今都没玩,直接丢下去玩《马里奥疯兔:王国之战》了。说实话Switch上的这作疯兔真的是非常优秀但就是不火(因为我在鼓楼150块钱买的),其实质量相当优秀好玩:看起来不太正经但实际上需要动点脑子才能玩好,过场卖疯卖傻做的非常有趣有意思,虽说游戏类型都不一样,但真的比宝可梦高到不知道哪里去了。

另一个让我失望的游戏是《集合啦动物森友会》,一方面是本身我自己就很期待,另一方面作为一个从DS开始玩动森系列的玩家来讲,NS版这一代只能算一个阉割版:前作开箱就有的功能缺失(南岛、二手店等)、没有联机小游戏(本身动物之森系列联机就占较大比重,结果现在联机小游戏没了,去朋友的岛就只能到处转,非常无聊)、强推根本就不方便的DIY系统,以及前作的各种问题和希望改进的地方新作一个都没改(如整理背包),少了以前那种真正悠闲游戏的感觉,反倒是觉得多了手游的意味,虽然现在很火,但我直接默默地买了NGC版的动森e+。

最近因为想尝试点新游戏所以买了《任天堂明星大乱斗》和《妖怪手表4++》,前者虽然我不是格斗游戏玩家,但也能觉得非常上瘾(只要不上线玩);后者则就是最纯粹的无聊了:整个妖表4充满了毫无必要或者说想办法折腾人级别的跑腿,剧情逻辑也很糟糕,战斗系统乱七八糟,让我这个玩过妖表1还乐在其中的人都有点受不了了。 今年圣诞和元旦假期整整有十天,我想我应该大部分时间都玩大乱斗去了。

其实我还是希望哪一天我可以不用再在非洲玩游戏了,尤其是在发生如今年疫情的各种事情之后。包括但不限于:工人、中方员工确诊却不停工,丝毫不关心确诊人员,国内管理层只顾着推责,等等等等。

披着开放外皮的传统脸游 – 《原神》简评

2020年9月30日 22:27
Featured image of post 披着开放外皮的传统脸游 – 《原神》简评

在整一个月微博、Bilibili甚至YouTube和Twitter广告的轰炸之下,国内颇具争议性的“全平台联网单机抽卡手游”,《原神》在前几天终于迎来了公测。趁着这几天事情不多,把《马里奥疯兔:王国之战》玩通关后,我决定下个原神来看看有多烂——毕竟GameFreak那90美金的付费翔我都买了,米忽悠这东西下载至少是不要钱的…

玩了过后,米哈游果然没有让我失望:因为这个游戏本来就是抄袭都不认真,单纯裹一个开放世界外皮的传统脸游,塞尔达这么好的游戏去抄也没抄出个精髓,脸游那堆糟粕倒是一个没丢,再加上碰瓷营销着实恶心人,建议米哈游趁此机会赶紧倒闭。

糟糕的优化

我本来打算用自己的iPad(2018廉价款,A10处理器)来玩,结果预下载的时候告诉我“设备不兼容”,官方微博中则提到“必须使用A11/A10X以上或骁龙845或麒麟810以上的芯片的设备”,得,我是头一次见到一个破手机游戏要求这么苛刻的,Apple Arcade那堆游戏也没听过谁说A10的iPad玩不了。

更可笑的是,米哈游官方说支持iPhone 8 Plus却不支持小号的iPhone 8,你以为他们在限制屏幕尺寸,结果iPhone SE2又支持,隐约就能感到这游戏绝对不一般。得亏我还有一台荣耀9X(麒麟810),不然我连水这篇博客的资格都没有。

总之,我在荣耀9X上下载好了原神,准备看看这“连A10都带不动的史诗级画质”。

真进游戏后第一感觉是:“就这?”,是的,除了人物建模在手机游戏中还算不错之外,画面也就那样,反正我个人觉得肯定不属于A10都带不动的级别。

就这? 更不用谈一些场景贴图了,非常不走心,这里我拿之前从网上看到的图就能说明,隔壁MHXX直呼内行。

“原神的水果摊,还不如我们贪玩蓝月的” 然而,就这水平的画面,在这样的硬件要求下仍然发热问题严重、转视角不流畅只能用动态模糊摸过去、就算开极高画质也逃不开万恶的“动态分辨率”:NPC不贴脸都不太看得清脸——哦,我怎么能说是游戏的问题呢,没有个A14/骁龙865敢玩这游戏?

然而这还只是噩梦的开始,进入城镇后的过场动画直接卡死,但部分即时演算过场又没问题,这到底是硬件问题还是优化问题就不用我说了吧…然而官方依然声明是手机硬件配置问题,反正玩着有问题就是钱没加够就是了。(然而荣耀9X的SoC是麒麟810,正好是他们所推荐的配置)

噩梦般的操作手感

既然是动作类手游,用触摸摇杆的话,手感肯定不会有多好。而且原神并不支持使用手柄(至少在EMUI上不行),游戏内也没有任何关于手柄的设置,玩起来手感必然是灾难级的。

游戏最开始火属性弓箭手安柏就会加入队伍,使用弓箭时就更加暴露的操作的糟糕:瞄准时,灵敏度过高,如果想改用陀螺仪瞄准则灵敏度又过低,非常难受。

使用弓箭简直要命 至于触摸摇杆就更不用提了,不管哪个游戏,只要有触摸摇杆设计,手感都不会有多好。

标准的脸游系统

原神(号称)的定位是“次世代开放世界RPG”,但受限于F2P的模式,其脸游根源是不可能丢的,可能是考虑到买断不会真的有太多人买账且F2P的内购回报过于丰厚(毕竟一单648都比次世代3A都贵了,而且这还是个无底洞),值得一提的是他们的五星爆率仅有0.7%,其他各手游厂及对岸日本厂都直呼专业。

那么现在就来说说系统吧,扒开所谓开放世界的皮,其实原神内核,至少我认为,依旧是标准脸游的那套。虽然这游戏在很多程度上“借鉴”了一下塞尔达传说荒野之息,但米哈游在对于怎么靠内购赚更多钱的问题上做了更多优化:首先,人物是抽卡内容之一,因此你会持有多个人物(当然了,必须会有星级的)且每个人物的元素属性和可以使用的武器不同;第二,武器也是抽卡内容之一,当然也有星级;第三,有增强属性或数值的“符文”(游戏内称之为“圣遗物”)且有符文组合;第四,人物和武器需要养成,除了升级当然还有突破。总结起来就是,和其他脸游一样,人物武器需要抽卡且把养成做得非常繁琐,且养成或突破所需素材极其多且杂,这样就更能逼着玩家内购——毕竟就算是前期,打个史莱姆都得半天,你需要做什么不必我说了吧。

靠正经游戏积累经验升级是不可能的,姑且算脸游共识 除了继承脸游中万恶的人物等级(和人物阶段突破)之外,原神还有一个“冒险”等级,这个等级会强制性限制你的主线发展,所以它的“开放世界”就是纯粹的伪命题,逼着你在体验极差的游戏中多探索积累(强制增加游戏时间)。

但是你游戏操作手感太差了我根本就不想探索 这种强制性限制活动范围的事情真的非常屑。甚至应该开除开放世界籍(摊手)。

跟着游戏引导,加入了“冒险公会”,根据这个冒险手册,很明显就能发现这不就是脸游传统:每日任务嘛…说实话这些脸游糟粕在你这“次世代开放世界RPG”上,有点不对劲。什么都要按照手册说啥做啥,那这个开放世界有何意义?

总结起来就是,这个游戏我甚至在怀疑为什么非要做成这样的F2P?简直就是为了强行增加付费点而设计成这样子,是将脸游传统完完全全生搬硬套到这个所谓开放世界的躯壳下完成的缝合怪。注意我说的是将“手游糟粕”和“开放模式”的糟糕缝合,而不是缝合经典游戏。

糟糕的游戏引导

和其他脸游一样,原神的游戏引导依旧是弱智级。其他脸游各种系统有意做得繁琐,所以搞保姆级引导让玩家熟悉流程也算正常,但是这些用东西在“次世代开放世界RPG”里面怎么都觉得不太对劲——哪怕把引导改成暗示或者其他尽量不要打断玩家游戏的方式都行。

就是这里

这一点,之前微博有人吐槽过:开场引导时,强制你走规定路线,自己抄个近道会被强制遣返。

另外游戏中时不时出现根本不会消失的浮动提示,必须要你点击查看阅读所有页面后才消失,且大部分提示根本就没必要,让玩家自己摸索尝试一下不好吗?提示到这种份上把乐趣都搞没了!

最让我想骂人的就是下面的这类提示,一些很明显的事情,甚至还弹窗提示,甚至告诉你要怎么怎么做,总共就那么一个常驻技能,让玩家自己尝试或最多给个暗示不就完了,为什么非要详尽到用谁的什么技能,怎么做呢?那你还搞什么解迷?答案都给你了。

还有一个元素滤镜也挺弱智的,说实话你把元素类机关做得“有特色点”不就行了,干嘛做这种不实用也不好看的功能…

老掉牙的脸游剧情

最近脸游都喜欢整一些看起来特别玄乎的剧情,上来给你丢一大堆有的没的你也记不住但是也没啥用的设定,整体想给人一种自己剧情很有深度的感觉。但实际上这样很没意思,我个人也不喜欢,且非常反感一开头就劈头盖脸一堆老掉牙设定丢给玩家的做法 ,大家好好地慢慢地讲个故事不行吗?

还有,你这主角的资料介绍,是不是有点太…中二了……“因为你将登上「神」之座”,再看看你的实际游戏体验,这落差,妈耶…

其他的奇奇怪怪扯淡的剧情我甚至不想扯,因为目前看起来和背景想打造的故事完全沾不上边(或者说,好像很多脸游都这样…),当然了,在这种游戏上想看点故事好像也不太现实就是。

总结:这不是也不该是手游的未来

从上面我的评论总结的话,可以说原神或许只是一个赶工、碰瓷、抄袭且将传统脸游那些糟粕生搬硬套到一个所谓的开放世界的壳的畸形游戏。手机游戏搞买断或许真的不好赚钱,但是米哈游这么做未免吃相过于难看了点,换句话说,老老实实做点普通脸游得了,整些这种乱七八糟、抄袭也不抄点好的畸形出来,有什么意思呢?还敢号称“次世代手游”,虽然现在手机游戏几乎可以等同于粗制滥造,但是你原神并没有好哪去。

冰布子的攒机笔记

2020年8月27日 22:30
Featured image of post 冰布子的攒机笔记

现在是2020年8月月底,我家里的旧PC已经服役整整十年了。实际上,这个老家伙在当时也只是中低端配置(i3-530/ATI HD5770/MSI P55),也就是玩个守望先锋用 1440*900 的分辨率都得调低画质的那种。而我自己的笔电是MacBook Pro,为了轻薄性能当然不行。一直以来没有升级的原因一是自己在家的时间不长,二是我自己其实是个主机玩家(XBOX+Switch)。

不过最近还是想玩一些FPS或其他联机游戏,所以升级PC的计划就提上了日程。由于我不急着装机,因此这次的攒机时间会相————当————地长,配件并不会一次性买齐,而是蹲守好价后逐个击破。

2021年2月更新: 压根就买不到显卡,不买了,买了ROG幻15 3070版笔记本电脑。

配置单

这次买PC预算还算充足,CPU中端GPU终端偏高姑且还算可以接受。

那么这样也很好选择了,CPU直接等Zen3架构的 AMD Ryzen 7 4700,芯片组用X570,GPU等RTX 3070由于CPU和GPU现在都还没有发售,估计得等到10月或11月了。而X570芯片组的主板可以考虑MSI Tomahawk,如果预算不太足则考虑等MSI出B550的迫击炮ATX版(目前B550迫击炮只有M-ATX)。CPU散热器直接上百元级比较出名的那几个中的利民AS120即可。

内存则选择性价比极高的英睿达铂胜普通马甲条的3600版,这种内存条使用的是C9BKV颗粒,据说轻松超上4000,价格只需要549/16G(两条8G),可以说性价比极高。

存储的话,我家里有一台群晖NAS,所以不需要考虑给这台PC配海量存储,但现在游戏体积也越做越大了,所以我考虑买2条NVME SSD,一条500GB的西部数据黑盘SN750作为系统盘,一条1TB的铠侠(东芝)RC10作为数据盘,1.5TB的容量怎么着也算够了。这样存储也全部直接插在主板上,也省了SATA线和供电线穿来穿去的杂乱感(哪怕我根本就不要侧透机箱)。

电源由于最近Nvidia要更换12Pin电源口,且有可能GPU功率会增加不少,所以暂时还不能确定选用的功率。不过目前我看上的主要就是Be Quiet全模金牌电源,价格非常实惠,价格和酷冷至尊非模金牌差不多。

键盘鼠标要求不高,我自己也不是机械键盘死忠,甚至觉得用蝶形键盘都挺爽的。不过近期京东自营罗技G商品活动降价幅度非常不错,G304仅需167元还送罗技G鼠标垫(我看上的是无线);G612 Cherry红轴版仅需368(一众国产品牌也差不多这个价格,但最重要的是,这玩意儿有背光,而且不是RGB)。

显示器则考虑买华硕 TUF VG27AQE,俗称“小金刚”。另外一个考虑对象是LG的nanoIPS,型号27GL850-B,参考了RTINGS 的详细评测,考虑华硕,因为nanoIPS的对比度实在是太感人了,而且还贵800块钱。

最后是机箱,我一贯是拒绝任何形式的光污染,所以上面所有的配件都是没有RGB的,有也得给我关了。那么必然机箱必须是无侧透,最好外观上就是一个大铁箱子就行。那么首要考虑的就是先马黑洞标准版:空间够大、自带SD读卡器,价格也不错。

总的配置单如下,预估需要12609元:

配置清单

攒机第一部分

25号的时候,京东自营的罗技G系列价格非常不错,所以就先买了鼠标和键盘,G304无线鼠标到手167;G612键盘到手368,性价比不错。

接着,我从朋友那边拿到了拼多多黑卡,用480元的价格买入西部数据SN750 500G,要知道这个价格在京东都买不到蓝盘NVME的。根据上车的朋友反馈说,拼多多买到的黑盘是正品国行,5年质保,拼多多真香。

而1TB的NVME则是从淘宝一家有铠侠授权的非天猫店购入,价格为755,也算实惠。

而铂胜的3600内存就没有那么好买了,26号京东放出来了一点,很快售罄,也没有补货(RGB版是有,但是价格灯贵350?爬爬爬)。不过好在依旧是那位朋友正好抢到一单,他没要就转给我了。549的价格还是很不错的。

剩余的就主要是显示器和CPU、GPU了,显示器如果nanoIPS没有什么进步、fastIPS没降价的话还是继续坚守华硕小金刚即可;CPU、GPU当然是等新产品了。由于主板+CPU买套装会便宜不少,所以主板也得跟着等了。

旧PC的去路

说实话,有点不好办,大概率直接吃灰,当HTPC都不合适,因为i3-530的TDP足足有73W,但性能还不如我200块钱买的锐角云,而且这玩意儿还用的是ATX大板,体积大功耗大性能还差,太屑了。

——那就吃灰吧。

❌
❌