分类目录归档:生活

red padlock on black computer keyboard

从 1Password 到 Bitwarden

近日,1Password 从原生开发变为了 Electron 开发,而我购买 1Password 家庭版也两年有余。虽然成本不高,但考虑到希望节省开支,便在考虑将一部分支出精简。可以自行托管的 Bitwarden 就成为了 1Password 的替代品。

借着国庆假期,将密码管理软件从 1Password 转换到了自建的 Bitwarden 上。

备份 1Password 的数据

既然要迁移,自然要先备份现有的数据,比如 1Password 中的数据。

在迁移方面,Bitwarden 官方提供了教程,你可以直接参考。

Import Data from 1Password | Bitwarden Help & Support

部署 Bitwarden

Bitwarden 官方的开源版本使用的是 C# 编写的,对于资源的消耗较大。而我是希望在 NAS 中运行,因此,就选择了一个对于资源消耗更少的版本 —— VaultWarden(之前的 bitwarden_rs 项目),一个基于 Rust 编写的 Bitwarden 服务端。

部署的过程也不复杂,使用 Docker 将镜像拉到本地,并复制官方的执行命令,稍做修改即可部署。

# <meta charset="utf-8">/vw-data/ 修改为你自己服务器上的数据存储位置。
docker run -d --name vaultwarden -v /vw-data/:/data/ -p 80:80 vaultwarden/server:latest
Code language: HTML, XML (xml)

不过,我并没有使用 Docker 部署,而是使用 Docker 的替代品 Podman 进行部署(主要是想试试新技术)。

整个的使用过程也很简单

# 拉取镜像
podman pull docker.io/vaultwarden/server
# 启动容器
podman run -d --name vaultwarden -v /vw-data/:/data/:Z -e ROCKET_PORT=8080 -p 8080:8080 vaultwarden/server:latest
# 进入 systemd 目录
cd /etc/systemd/system/
# 生成 service 文件
podman generate systemd --name vaultwarden --files
# 设置自启动,并启动服务
systemctl enable /etc/systemd/system/container-vaultwarden.service
systemctl start container-vaultwarden.service
Code language: PHP (php)

通过几行代码,就完成了 Bitwarden 的部署。

使用 Nginx 对Vaultwarden 进行反向代理(非必需)

默认情况下,你配置的 Bitwarden 服务器会运行在 8080 端口下,如果你希望将其使用 Https 保护起来,或使用HTTP的 80/443 端口,一个比较简单易行的方式就是使用 Nginx 来进行反向代理。

fmphu

Vaultwarden 官方提供了 Nginx 的配置文件可供参考,其他的代理服务器也可以找到类似的说明,具体的配置你可以自行访问前面的连接进行查看。

注册账号,并导入数据

配置完成后,访问你的Vaultwarden 地址,并注册一个新的账号,就可以在 Bitwarden Web 端的“工具”页面,进行数据导入了。

vc40l
导入界面

需要注意的是,如果你选择的是文件上传导入,则会使用 WebSocket 进行导入。这里如果你没有配置 WebSocket ,就无法通过文件进行导入,需要使用文本编辑器打开备份文件,复制到下方的输入框中进行恢复。

安装各个平台客户端

在完成了各项配置后,最后就是安装各平台的客户端,并配置服务器、账号密码等,登陆客户端,并同步账号密码了。

s4u5v
配置说明

总结

其实 Bitwarden 的部署不算复杂,不过,Bitwarden 的使用体验目前还是不够好的,在一些网页上,1Password 可以完成自动填充,但 Bitwarden 就需要自行复制粘贴,在用户体验方面还有待提升。

person holding space gray iPhone 7

手机丢了以后,都可以做什么来挽救?

这个周末,我来南京游玩,在即将登机的时候,我发现我的手机遗失了。以下是我做的事情的记录,希望给你后续一些帮助。

在深圳机场做的

1. 沿路寻找

我大致记得最后使用手机的位置,便沿着路重新回头去寻找我的手机。

2. 联系机场的失物招领处

因为我还怀着一丝希望有人可能捡到手机送到失物招领处。所以我马上跑到失物招领处去登记我的手机遗失信息。

3. 借手机给我自己的手机打电话

借用别人的手机给自己的手机打电话,可惜当时就无法接通。只得作罢。

在南京做的

因为即将登机,所以我来不及做太多的事情,只能先前往南京,到南京再做安排。

为什么会是这样?
我是这样想的:我可以不登机,然后在机场找手机,有一定的概率找到手机,但损失了南京的行程;
我也可以登机,然后等待机场后续联系我;
由于我已经在沿路找过了,所以不太可能依赖自己的能力找到,只能通过其他人来找。
所以我留下的意义并不大。

1. 打电话给 10086 进行停机

落地南京后,我就赶紧借电话,拨打 10086 转人工服务办理停机业务。

需要注意的是:停机业务需要联系手机号归属地的 10086 ,你可以拨打区号 + 10086 来找到你的归属地 10086;

办理停机业务需要提供以下信息:

  1. 服务密码:服务密码即可办理停机业务。
  2. 如果你忘记了服务密码,则需要提供三个通话记录,需要分别满足,上个月、这个月、这周,且每次通话时长需要超过 3 分钟。

很显然,服务密码更简单,通话记录的提供比较困难,提醒大家一定要记好服务密码。

停机是为了确保你的手机卡不会被别人用来接受短信验证码,并 hack 你的账号。

除了停机,如果你的手机设定了 PIN 码,也可以不用担心这个问题。但考虑到你的手机可能无法找回,也可以直接办理停机。

2. 打电话给所在地 10086 ,咨询哪些营业厅可以办理异地补卡

异地补卡并不是每一个营业厅都可以办理的,因此,你最好打电话给 10086 ,请求他们帮你找到距离你最近的营业厅,进行补卡业务。

得到回复后,你就可以前往对应的营业厅进行补卡手续。补卡一般会需要 10 ~ 20 元不等的制卡费。

3. 使用 Apple 的 Find My 查找功能定位手机

这个我其实当时没想起来,如果想起来或许就可以更快的解决问题。

Apple 提供了一个 Find My 的功能,可以找到你的手机的位置,并让你的手机响铃等。

17ypm
797c396d4608cc56c4f96bbcca699422

在产品触达用户之时,DevRel 团队都要做什么

经尾尾邀请,在“聊聊 DevRel && 技术运营”群做了一次关于 DevRel (开发者关系)的分享,以下是分享内容,希望对你有帮助。

w1eo0
ua922
wqt85
vghz5
4busk
mt63u
4qv7s
r9kr5
l33ws
saqam
0zagp
r3uw8
2a1m0
2nf9c

Slides 地址:https://docs.google.com/presentation/d/1n6XBLfmpSCDg3196LIn_8FGKIqkCIp-qN9sMQ-uxzVk/edit?usp=sharing

《布道之道》链接:https://www.ituring.com.cn/book/736

直播回放:https://bytedance.feishu.cn/minutes/obcnxp28x2898p51qk37zrzy

black and white typewriter on white table

《无论如何我爱你 If Anything Happens I Love You》观后感

豆瓣链接

https://movie.douban.com/subject/35225555/

收看渠道

Netflix

观影感受

这是一个小短篇,不长,故事也很简单,讲述了一对父母从痛苦到解脱的故事。

因为美国校园枪击案,一个小女孩因此而去世,他的父母因此消沉,整日无言以对。母亲在洗衣服时,意外发现了女儿的衣服又被洗,痛苦之下,意外碰到了足球,致使女儿的留声机再次想起,使得父母二人重聚,共同回忆。

回忆中,女儿的影子让父母的影子重新回到了一起,重回当初的温馨,而这背后,也映射了当初出事之时,女儿给父母发的信息 —— 「If Anything Happens I Love You」,无论如何,我爱你。

flat screen television displaying Netflix logo

《监视资本主义:智能陷阱 The Social Dilemma》观后感

豆瓣页面

https://movie.douban.com/subject/34960008/

观看渠道

Netflix

观影感受

作为一个互联网从业者,其实智能推荐算法在我看来,特别的常见。但说句实话,我自己其实对智能推荐算法不甚了解。更是不熟悉他背后的机制。倒是我们常说的「信息茧房」这些,都有所耳闻。而这部影片中,就在介绍这个内容。

这部影片我想看了很久,但一直断断续续,刚刚才看完。

这个影片先用一个故事 「Ben」的生活,来介绍了推送、提醒这些功能的用途,也让我深刻的感受到,这些东西对于我们生活的影响。

另一方面,用 Ben 的生活,和他误入极端组织集会的场景,展示了社交媒体对于人们观点的影响,颇为恐怖。

我们需要学会梳理自己的信息源,让自己可以更好的理解这个世界。

推荐每个人去看这部影片。

panda eating bamboo

关于成都大熊猫繁育基地的一些心得

这个周末,我带着女朋友去了趟成都的「大熊猫繁育基地」,收获不少,分享给还没去的你。

关于住宿

成都的大熊猫繁育研究基地位于「成都市成华区成都外北熊猫大道1375号」,是一个比较偏僻的地方(毕竟大熊猫的生长繁育需要很大的空间,必然会很偏),所以,周围的住宿并不是很多。

比较好的一点的是成都保利公园皇冠假日酒店(我住的就是这家),打车去大熊猫基地大概 4.8 公里,费用大概 14 ~ 18元;

h273w

如果可以的话,我还是建议你住在附近,或者至少是比较近的地方。原因是大熊猫基地每天早上 7:30 开门,如果你可以在 7:30 进入大熊猫基地,那么你就会遇见较少的游客,有更多的时间去欣赏大熊猫的憨态可掬。

关于成都保利公园假日酒店

成都保利公园假日酒店有一些套餐提供了大熊猫基地的门票,如果你住这个酒店,可以去找找看。

我是双十一购买的票,是一晚高级间 + 2张大熊猫基地门票 + 2大1小早餐 + 熊猫便当。

住这个酒店需要注意的是:

  1. 早餐时间是 6:30 ~ 10:00,如果你想赶第一波大熊猫基地开门,就要早点起来吃早餐;
  2. 大熊猫基地的门票会是现场帮你预定,短信发送到你的手机上。到了基地以后,凭码进入;
  3. 酒店送的熊猫便当是方便你带去大熊猫基地自己吃的,但便当要 8:00 ~ 10:00 才有,所以如果你要在基地吃便当的话,可能就没办法赶第一批了。不过我个人觉得其实无所谓,因为便当里是两个三明治 + 酸奶 + 水果 + 饼干(饼干很好吃,而且有熊猫样式的)
  4. 酒店有免费接送车前往大熊猫基地,但早班车是 8:30的,所以,如果要赶第一班,那你还是要自驾/打车前往。

关于内部项目

大熊猫基地的可供参观的项目是挺多的,整体可以分为三大类:

  • 大熊猫
  • 小熊猫
  • 野生鸟类

一般来说,大家都是去看大熊猫的,不过既然都来了,不妨去看看小熊?,也挺萌的。

关于自由行 & 跟团游

大熊猫基地的价格透明,而景区内也有不少的基础引导设施,基本上你跟着走不会走丢。而大熊猫基地基本上也没有什么特别需要讲解的部分。如果可以,我强烈推荐你自由行过去,自由行的好处是你可以在一个地方停留很久,观察很久的小熊猫。

比如,我们在一个地方呆了很久,原因是里面有三只未成年的大熊猫在打架,看的大家乐呵呵的。

person holding white ballpoint pen

新冠疫苗接种记录

为什么要接种疫苗?

经过一些讨论和信息的获取,我觉得目前新冠疫苗的安全性还是可以保障的。特别是我这种经常到处跑的人,还是打个疫苗比较安全,因此就决定要去打个疫苗。

过程

1. 获取信息

在我真正开始打疫苗之前, 我就先获取到了不少的信息。比如深圳卫健委推送的关于深圳市民预约疫苗的信息。

如果你也想接种疫苗,你就需要获取当地的信息。

通过信息得知

  1. 深圳市所有人都可以接种,不限制户籍。
  2. 深圳市多个社康中心可以接种

有了这些信息,我就知道,我只要想,随时可以接种疫苗。不过,前期出于信息不对称,我并没有敢接种。

2. 脑袋一抽,接种去

今天(2021年3月28日)早上,突然脑袋一抽抽,说,我去接种一下疫苗吧。

于是打开手机,来看怎么预约,我使用了两个工具

  • 社康通
  • 健康160

使用体验方面,我推荐大家使用 健康160 ,原因是虽然社康通是国家队的产品,但在产品设计、用户体验方面,还有待改进。而 健康160 帮我快速的筛选到距离我最近的可以预约新冠疫苗的社康中心。

这里有坑,具体看后面的第三部分

最终,我选择了在最近的社康中心预约了今天 15:00 – 16:00 的疫苗。

线上预约成功提示

3. 打疫苗

下午午休一觉醒来,已是三点十分,赶紧赶往社康中心。到了却发现,社康中心并未依赖线上的排号进行疫苗接种。我不得不在线下重新预约。

0pkio
现场预约说明

现场的工作人员告诉我,线上的预约无效,必须参考这里的说明,重新预约。

根据工作人员的反馈,似乎是社康中心都必须采用「团体新冠接种报名」,而医院可能就不需要这个,按照正常的线上预约流程就行(但我没试着去医院接种,不确定)

于是我在线下进行了重新的预约、排队,拿着工作人员提供的表单,填写后,进行排队。

fj18j
线下工作人员提供的表单

填写表单后,继续排队,在外面等待接种。

这里是因为接种存在一个留观的时间,一般为半小时。而留观室的容量有限,因此,不会一股脑放上去,会走一批,放一批。

排队轮到我上楼去接种以后,走上楼进行建档,并排队进行接种。建档后你会拿到这样的文件。

nzz3c
接种凭证

有了这个凭证,你就可以去找护士打疫苗啦。然后就是排队,打疫苗。

打疫苗的过程还挺快的,坐那,护士会让你确认一下疫苗的信息、批次等,确认无误,就可以开始打了。

打完疫苗,就是最终的留观。每个人都需要留观 30 分钟,避免疫苗出现什么问题。

我的身体还算强壮,历史上也没啥问题,留观很快就过去了,然后就可以离开了。

一些 Tips

  1. 疫苗预约制度可能仅限于医院。社康中心需要现场预约。
  2. 第一针和第二针间隔28天(深圳),最好同一个地方打,避免打了两家的疫苗,怕冲突。
  3. 每个社康中心每天可能大概500支疫苗,太晚去可能没有了。
  4. 因为打的是左上臂,建议穿 Tee 来。理论上两次都是打的左上臂。不过如果打第二针的时候,你的左上臂还疼,可以打右上臂。
  5. 打疫苗一周内不能吃药,如果吃药了,建议推迟再打,避免出现其他干扰问题 & 如果你有甲亢等甲状腺疾病,也不适合打疫苗。
pink ferris wheel

为什么是天津

本文原为《海河人才计划落户天津记录》的开篇部分,后完善整理如下

熟悉的人都知道,我过去两年都一直在深圳,但最终却选择了一个我并不是那么熟悉的城市 —— 天津,Why?

出于上一代人赡养和下一代人的培养的角度,最终我选择了将自己的户口从老家焦作迁移到了天津,具体的理由如下:

在我看来,上一代赡养的问题,天津比河南的好处在于,天津以1500万人享受河南 9600 万人的资源,在这种情况下,同等资源下,一个天津的老人可以享受更多的医疗资源。另外一个问题是,河南的人太多,且太老派,所以可能当我真正需要医疗资源的时候,我需要通过「关系」来找,这对于不善于去找关系的我来说,是一个很麻烦的事情。所以,相对更加先进、开放的天津会更适合我。相比于河南的关系 + 金钱,可能天津的金钱会更让我觉得简单一些。

省份三甲医院数量
天津市55 家
河南省60家
焦作市4家
河南省与天津市三甲医院对比,数据来源:http://www.a-hospital.com/w/三级甲等医院列表#.E5.A4.A9.E6.B4.A5.E5.B8.82.E4.B8.89.E7.94.B2.E5.8C.BB.E9.99.A2.E5.90.8D.E5.8D.95

而下一代培养的角度来看,天津和河南的高考体验差距是悬殊的。和上一代赡养一样,人数是天津的利器。由于天津的人口总数,决定了它不会有那么多的适龄学生考试,所以对于每一个考生而言,你考到了多少分,你就上多少分的学校。而河南则不同,河南你考到了某一个特定的分数,但你上的学校,可能是另外一个层次的,我们称之为「掉档」。举个例子来说,就是你在河南考到了一本分数线,超出一本线50分,最终可能上的学校也只是一个普通的二本学校。这是因为河南人太多,所以无法很好的分配,不得不通过让一部分人强制掉档来让大家都有学校上。

省份本专科高校数量
河南省119所
天津市45所

此外,除了这两个最重要的条件以外,还有一个需要考虑的是,我是回族人,我需要考虑生活成本问题。在南方,回族不那么兴盛的地方,我们需要花费更高的生活成本来获得相同的生活。而天津,回族有聚居,有散居,有较多的回族人,生活成本可以被摊平,因此,南方被我放弃。

tianjin 4680484 640

海河人才计划落户天津记录

是的,现在正在写这篇文章的我,已经成为一个「新天津人」。这篇文章是写给我自己的总结,也是给每一个希望通过海河人才计划获得天津户口的人的指南。

为什么是天津?

参看:《为什么是天津

怎么落户天津

我走的是海河英才计划落户的天津,相对较为简单。

学历型人才。包括:普通高校毕业,全日制本科生一般不超过40周岁;具有硕士学位的研究生,一般不超过45周岁;具有博士学位的研究生,年龄不受限制。

天津市人力资源和社会保障局

我是本科学历,且没有超过 40 周岁,可以直接落户,且刚好自己这段时间 Freelancer,就自己来办理了。

需要注意,海河英才行动计划在实际执行时是有一个隐含条件(如有不对, 欢迎指正):你需要在其他地方没有社保。这是希望你能够真心实意的来天津发展,而不是只是为了落个户口。

1. 准备资料

办理学历型人才迁移,你需要提供一些基本资料,具体包括:

  • 身份证
  • 学历证/学位证:我当时是两个都上传了,所以这里不确定具体是哪一个。但两个都上传确实是可以通过审核。
  • 教育部学历证书电子注册备案表:需要注意,是学历证书电子注册备案表,而不是学籍在线验证报告2pmbq

准备好这些资料以后,在手机上下载「天津公安」app,在 App 首页找到「引进人才落户」,根据你的实际情况,选择是否在天津有工作等信息,选择完成后,会让你下载一个 Word 文档,打印出来,并手写签字。签字后,后续流程需要拍照上传。

jdvto

需要注意,这里的所有的上传都必须是原件,天津公安的 App 是不能选择图片上传的,必须现场拍。

kym10

提交完资料以后,就等待公安、人社和教委部门的审核即可,审核周期大概是一到两周。如果审核没通过,会给你发短信,告知你原因,你只需要修改,重新上传即可。

当你所有审核通过以后,会要求你进行档案的转移。这时会给你发送短信,你需要在天津公安这个 App 中打开「个人中心」,找到「业务网办进度」中的「已办结」,找到你的办理事项,点击进去最下方会让你选择邮寄调档函

这里你只要填写地址,并支付调档函到了以后的快递费用即可(一般是20)

2. 转移档案

当你收到了调档函以后,拿着调档函前往你档案所在地的人才市场办理调档即可。比较简单。档案会通过人才市场的机要通道运送,你自己也不需要去自己人工转运,等待自动运送即可。

完成了人工转运的手续后,你需要在微信公众号「北方人才网」中的菜单栏「海河英才」中选择「网报存档信息」,登记你的档案状态。

当即后, 就只需要耐心等待人才中心收到档案,并办理存档。存档结束后会给你发送短信,让你去申请《准予迁入证明》。这部分就还是填写地址,等收货,并支付费用即可。

7qkjy

3. 办理户口迁出

当你拿到了你的《准予迁入证明》后,你需要携带个人身份证你的户口本准予迁入证明,前往对应的派出所,办理户口的迁出。

需要注意,《准予迁入证明》有有效期,从寄出之日起 40 天内有效,因此,你拿到证明后尽快办理比较好。

迁出办理很快,把资料交给户籍警,十分钟左右你就会获得一张户口迁移证。同时,你之前带来的《准予迁入证明》也会被撕去一联,被放在迁出派出所留存。

户口迁移证的有效期要更短一些,只有 30 天,因此拿到户口迁移证就尽快办理。

将《准予迁入证明》和你刚刚收到的《户口迁移证》收好,这是你后续办理迁入的凭证。

p6qc4

4. 办理户口迁入

当你有了《户口迁移证》和《准予迁入证明》后,就可以拿着这两样东西去办理户口迁移了。

具体所需资料如下

  1. 一张一寸照片:不限底
  2. 身份证原件
  3. 准予迁入证明
  4. 户口迁移证

如果你的户口从出生以后就没有更新过,建议你在迁户口之前,先去做一次户口的更新,具体的内容可以参考注意事项中的「关于更新自己的户口本」部分。

当你资料带齐以后,就可以前往派出所,进行办理了。由于基本上的流程都在网上完成,因此在实际线下办理的时候,仅仅是填一下表,确认一下信息,就可以了,很快,十分钟内就完成办理了。

5. 其他户口工作

在办理完成户口迁移以后,虽然不要求你更新身份证,但理论上,建议你更新身份证。因为后续的一些其他的业务,比如办理房贷之类的,会要求身份证地址和户口地址一致。这个需要注意一下。

一些注意的事项

是否需要代办?

海河英才行动计划是可以全程网上办理的,所以理论上你可以不需要本人来,就可以走完所有的流程。

我实际自己办理的流程也只有从原户口所在地迁出,和迁入到新的户口所在地的时候才自己做的。其他流程都是直接网上办理或者让我妈帮我代办。

所以实际上你也完全可以不找代办。当然,如果你嫌麻烦,也可以找个代办,让人家跑个腿,收个跑腿费。

如何选择迁入的区?

通过海河人才计划办理迁入的时候,你的户口是挂靠在北方人才市场的,而北方人才市场在天津是一个单位,且有很多不同的子单位,因此,你在实际办理时,可以根据自己的喜好选择户口所在的区。迁入的区会影响你后续办事的方便程度(毕竟你选的偏,后续办事就要跑的更远)。

以我为例,我的户口落在天津市河北区,对应的是河北区宁园街派出所。

从地图上来看,是比较方便的。从天津站地铁两站路到天津北站,从地铁口出来走十分钟左右就走到了。

w0tro

如果你不打算落户在河北区,希望落在其他区,那如何预测自己的落户派出所呢?

我通过和派出所的小姐姐聊 & 观察派出所贴的一些文件,得出一个结论:

落户派出所选择的是北方人才市场在各区办事处所属的派出所。

这样你如果想要选择不同的区,只需要搜索北方人才市场在对应区的办事处,就可以查询到对应的派出所位置,判断该路线是否顺路,你是否可以很方便的完成后续的办事。

以下这张图就是我搜索到的北方人才市场的各办事处,供你参考。

pjkpi

派出所办理的最佳时间?

我是一大早去的,事实证明这样太蠢了。派出所大概是 8:30 会点名,你在 9 点以后去就可以了。一般情况下户籍警不会太忙,所以办理速度很快。你可以晚一点去。

关于更新自己的户口本

如果你没有结过婚/或者主动更新过你的户口本页,那很有可能在户籍系统中,你的婚姻状态和学历信息可能是空白的。在你做户口迁入的时候,你需要更新相应的状态,而更新这些状态需要以下资料:

婚姻状态

  • 已婚:提供结婚证,会帮你登记为已婚。
  • 未婚:需要在现场签署一个未婚保证,会帮你登记为未婚。

学历信息

  • 提供毕业证书,会按照毕业证书更新你的学历。
  • 如果没有提供,会帮你更新成文盲或半文盲,你需要后续自己再跑一趟去更新。

综上所述,我更推荐你在迁户口之前,把自己的户口更新一遍,把没有更新过的婚姻状态、学历信息等写清楚。这样你就不需要在迁入户口的时候更新,毕竟要多带文件,搞丢了就不好了。

办理迁入时需要准备的资料

如果你之前已经更新过户口,补全了所有信息,那你只需要带上以下资料前往迁入的派出所。

  1. 一张一寸照片:不限底
  2. 身份证原件
  3. 准予迁入证明
  4. 户口迁移证

其他户口信息如果已经更新过,你就可以只带这四样去办理户口迁入。如果没有办理过,则需要带上相应的证件。

是否需要换身份证?

身份证并非强制替换的,你可以自己决定是否需要更新。不过如果你是落户河北区的话,河北分局的户政大厅离水产前街很近,你可以走路过去。

tph3p

如何获取户口页?

参考下图

tph3p

总结

耗时一个多月,终于在2月底把户口办理完成了。户口迁移完成,下一步就是调整我的工作和生活状态,渐渐的从深圳撤离,前往天津。

深圳之旅,即将进入尾声,天津,我要来了。

参考文献