delphij's Chaos

选择chaos这个词是因为~~实在很难找到一个更合适的词来形容这儿了……

09 Jan 2022

胆囊摘除后记

上回书 说到我在12月初的时候急诊做了胆囊切除。 这里更新一下后续的情况(主要是保险理赔)。

作为一个资深的bug吸铁石,我总是会不自觉地触发各种系统的边界条件,这一次也不例外: 我之前参加的雇主组织的由安泰(Aetna)负责运营的医疗保险在2021年底到期, 取而代之的是由伟彭医疗(Anthem)运营的医疗保险, 而这次急诊及手术发生在靠近年底的时候,这想必会让保险的理赔复杂化,果不其然,还没到2021年12月31日的23:59, 安泰的手机应用程序已经显示我不能直接用手机应用来查看理赔账单了, 而伟彭医疗的应用程序则认为自己不是我目前的保险应用程序。

我去年和今年参加的保险都是高自负额(High Deductible)的医疗保险。 这类保险通常会要求患者自行支付比较高的自负额之后才开始由保险支付部分直至全部的医疗费用, 由于患者需要自行支付一个比较高的金额之后保险才开始付钱,因此从保险的角度, 这类患者相比只支付一个较低的挂号费(copay)或共同承担额(coinsurance)的患者泡病号的风险更低一些, 因此总体成本,即患者自行支付的保险费加上看病时的患者自行支付的花费, 通常会低于其他保险。

我家由于一些其他的原因,在2021年度的自负额很早以前就已经花满了,因此看病时的主要考虑便变成了优先去网内(in-network, 即与保险公司有合约关系的)医疗服务提供者。我在2021年的保险通常情况下只承认网内的医疗花费, 对于网外产生的费用原则上不予支付,但急诊是其中为数不多的例外情况,在发生急诊时,所有花费原则上都会视为网内花费予以理赔。

Read more...
31 Dec 2021

新年,新ISP

我在美国的这几年,家里一直使用的是来自 Comcast 的各种基于 cable 的互联网服务。 关于 cable 的各种问题,多年以前 Extremely Decent 做过一个视频 The First Honest Cable Company 来吐槽。

简而言之,虽然谈不上有多好,但 Comcast 算是在湾区几个能用的 ISP 里比较靠谱的一个了。 贵厂十一年前宣布了 Google Fiber,然而由于种种原因我家这片地方一直都没有愿意提供光纤入户服务的 ISP。 比较新的小区,例如 yegle 同学所在的幸福屯地区则比较幸运, 类似 AT&T Fiber 之类的服务都比较容易获得。

Read more...
18 Dec 2021

摘除了胆囊

免责声明 这是一篇关于个人经历的个人记录,本人没有受过相关培训,本文并非提供任何医疗建议。本文提及的信息我会尽量列出引用来源,但对于这些信息的准确性不负任何责任。对于医疗、相关法规的任何问题,请咨询专业人士。

我于12月6日在 San Jose 的 Regional Medical Center 切除了胆囊, 这里记录一下相关的经历,主要的目的是整理一下相关资料,方便给娃讲故事。

大约十年前某次回国的时候,冯牛赞助我做了一次高档体检。 与美国的年度体检不同,中国的此类体检服务通常会检查非常多的项目(例如腹部超声波检查), 在这次体检中发现了我胆囊中存在结石。

大约80%的胆结石患者可能多年没有任何症状,也不需要治疗(参见默沙东诊疗手册大众版:胆结石)。 我在过去几年也没有什么特别的症状,其间与主治医生讨论过相关问题, 并且也在美国做过一些后续的腹部超声波检查,这个过程中也没有发现显著的变化。 今年打过COVID-19疫苗之后有段时间由于身体不适于是运动量有所下降, 这之后发现大便出现了一些变化,怀疑与此有关,但后来恢复运动之后有所好转,因此也没有进行特别的检查。

上周 Apple Watch 突然弹了一条通知给我,表示系统发现我过去一周运动时的心率较平时要高一些(大约20%左右), 由于静息心率变化不显著,加上没有什么其他症状,因此没有特别重视。

Read more...
14 Nov 2021

指定 fetch(3) 的 User-Agent

今天抽时间把邮件系统的软件升级了一下,然后发现无法获得 ClamAV 的源代码: ===> License GPLv2 accepted by the user ===> clamav-0.104.1,1 depends on file: /usr/local/sbin/pkg - found => clamav-0.104.1.tar.gz doesn't seem to exist in /usr/ports/distfiles/. => Attempting to fetch https://www.clamav.net/downloads/production/clamav-0.104.1.tar.gz fetch: https://www.clamav.net/downloads/production/clamav-0.104.1.tar.gz: Forbidden 同一个链接用浏览器是能打开的,一看邮件果然已经有人 开过票 了。 最近发现不少网站都出于某种原因对 User-Agent 进行了限制,不过既然这是个用户能自行指定的值, 这么限制到底意义何在呢? 由于我目前使用 git 来更新 port,因此并不希望通过打补丁的方法来解决问题。查了一下 fetch(3), 发现可以通过设置环境变量来解决,于是: export HTTP_USER_AGENT="Mozilla/5.0" 搞定。 我觉得限制 User-Agent 蛮蠢的:本来它可以给网站的主人提供更多的信息来针对不同的客户端提供服务,但总有些人拿它来限制访问, 最终大家也就都不说实话了…… Read more...
30 Oct 2021

重贷款笔记

湾区有个晚间的中文广播电台多年以前经常会播放一个广告:「xx博士算对了!贷款利率又降了!」 语调颇为激动,很有一种在拉斯维加斯住酒店时路过赌场,里面老虎机时不时会有人特别激动地嚷嚷一嗓子自己赢了的劲头。

因为我的贷款本金金额已经下降了不少,目测这次很可能是不做套现(cashout refinance)也不搬家的情况下最后一次做重贷款了。 之前2013年的经历可以参见 这篇

Read more...
30 Sep 2021

Let's Encrypt SSL证书失效问题

Let’s Encrypt 是我目前使用的证书发证机构。早上 yegle 提到了某个bug,于是研究了一下,这里记一笔,算是留个历史见证吧。

发生了什么

在 PKI 证书体系中,信任是通过逐级签名以及对这些签名的验证来实现的。 对大部分客户端系统来说,这些系统中会存在一个或多个受信的根证书发证机构的证书, 其公钥是通过这些系统本身的更新机制派发的。

根证书发证机构的证书通常是自签名的,更新相对来说比较麻烦(它通常依赖于操作系统的在线或离线更新机制), 因此这些证书的私钥事关重大,因此人们通常不希望经常更新它们,因而证书发证机构在绝大多数时候并不会使用这些私钥来签署证书。 取而代之的是,他们会创建一些称为中级发证机构的证书用来签署日常的证书,这样根证书的私钥可以采用更为严密的方法来保护, 例如可以把它们从网络上彻底断开,而中级发证机构的证书则可以以较高的频率进行密钥轮换,借此来避免其私钥暴露导致的风险。

一个新的发证机构进入市场时,其自签名的根证书往往不会被已经在市场上的客户端系统认可, 因此这样一来新的发证机构想要获得用户就必须想办法解决能被用户承认这个问题。 一旦获得了一定的知名度并证明了自己的可靠性, 这些发证机构便可以遵循一定的流程获得主流浏览器或操作系统的认可, 并将自己的根证书也加入到它们的受信根证书列表中了。 所以,在起步阶段,新的发证机构往往会要求一些已经存在的根证书去对其根证书进行交叉签署, 在客户端验证证书有效性时,由于这些根证书在他们看来是一个经过了受信根证书签名的中级证书而不是一个普通的不受信自签名根证书, 因此也就不会给出无法验证证书是否有效的提示,而是能够正确地对其有效性进行验证了。

Let’s Encrypt 在起步阶段正是采用了这种做法。通俗地说,它的中级发证机构的证书被两家根证书机构同时签名, 其一是它自己的 ISRG Root,另一个是另一家根证书机构 IdenTrust 的 DST Root X3。初期,由于 DST Root X3 已经被许多操作系统和浏览器认证过,因此为其普及起到了非常重要的作用。

UTC 时间 2021年9月29日 19:21:40,DST Root X3 的根证书过期了。这样一来,这一边的信任链便不再成立。

Read more...
29 Jul 2021

去 San Jose DLPC 办了 RealID

在发生 911 恐怖袭击之后,美国国会通过了 2005真实身份法案(Real ID act of 2005), 并由时任总统小布什于 2005 年 5 月 11 日签署成为法律 PL 109-13。 该法律要求美国各州签发的驾照符合一定联邦规范的驾照,符合这些规范的驾照称为 Real ID, 可用于进入联邦政府机构或在美国境内乘坐飞机(TSA属于联邦管辖)。

由于对 DMV 办事效率的恐惧,加上办理 Real ID 驾照必须亲自去一趟 DMV,我一直对办理 Real ID 有些抗拒。 去年由于疫情,我就直接在网上更新了驾照。 前几天 DMV 发来邮件说我这种情况可以在今年的 12 月 31 日之前去直接升级成 Real ID,于是研究了一下相关流程,这里记一笔。

Read more...
12 Jun 2021

记录一下之前对 fsck_msdosfs(8) 的改进

疫情之前,娃在周末会去某个才艺班,上课的时间我觉得实在是比较无聊, 于是就带上笔记本坐在星巴克做一些较小规模的代码清理工作。 最终,我利用这些碎块化的时间完成了对 FreeBSDfsck_msdosfs(8) 的核心代码的算法进行了改进,使其需要的内存用量变成了原先的 1/128, 这里稍微记一下当时的一些思路。

Read more...
23 May 2021

线上重做 FreeBSD GPT 引导分区

记一笔。

我现在这台服务器已经用了蛮久(超过10年)了,刚刚安装的时候还是 FreeBSD 8.1 RC,一路升级到 FreeBSD 12.2。 前段时间因为工作比较忙,一直没顾上把它升级到 FreeBSD 13.0,今天总算是找了点时间来做升级。

总体上这次升级比预想的还要平稳一些,由于 FreeBSD 13.0 和 12.2 的内核接口变化不大,因此我也没按照正规的做法, 即升级内核、重启第一次、etcupdate、installworld,重启第二次、delete-old/delete-old-libs,而是在 installkernel 之后直接做了 etcupdate 和 installworld。

Read more...
23 May 2021

本地 git 的 partial clone

partial clone 是 git 的一项旨在减少空间和网络带宽占用的特性。 它会跳过下载那些可能不会用到的 git 对象,而是仅仅在需要时才去下载。对于网络延迟较低且带宽不愁的用户来说, 这样做往往会节省掉不少不必要的磁盘空间占用,而代价是可能失去离线访问的能力。除此之外,有些操作, 例如 git blame 或者 git log -p 很可能会需要与服务器交互,从而会变得略慢一些。

比较有用的场景是在使用某些历史比较久,或是对文件整体替换较多,而大部分情况下只关注最新版本的代码库。 与较早的 --depth 1 相比,partial clone的优点在于想要访问历史时仍然可以像正常的clone一样访问。

Read more...