肇鑫的日常博客

肇鑫 / Owen Zhao

独立开发者,主要开发 iOS、watchOS、macOS 应用。

目前在维护 SleepTap、Rooster Time,以及 Markdown Writer 相关工具。

最新文章

所谓人情世故

随笔

最近遇见的一件事,让我对于人情世故有了更深的理解。

某医院血液透析,每天上午的开始时间是7点15分,每天6点会有保洁人员将大门打开,以方便患者提前进入等待。但是有个别人来的特别早,大概5点半就来了。而那时门还没开,于是他把门锁弄坏了,然后自己进来了。这一切都被监控拍下来了。

上面这一切都是我后来才知道的。一开始,我只是看到护士长和一位经常来的特别早的患者沟通,护士长说,您以后就晚些来,只要6点之后到我们就开门了,您来早了,我们这边不能开门那么早,没必要。而那个患者则不同意,只是说,自己在家睡不着觉,闲着也是闲着,非要早来。

后来我问护士后续怎么样了。护士说,他把门锁弄坏了,都被监控拍下来了。护士长没好意思说。只是劝他晚些来。我说,那就让他赔啊。护士说,我说也是呢。让他赔,他以后就不敢了。但是主任不同意。主任说冬天这么冷,以后门就别锁了,让患者进来,也不用他赔。

看到了吧。这就是境界,也是人情世故。我和护士都认为应该按照规则来,让患者赔钱。但是主任却认为可以算了,一位冬天天冷,应该让患者进来,不用他赔。这件事虽然医院亏了钱,但是就算是传道院长耳里,院长也只能说主任医德高尚,不能说他做的不对。至于患者方面,如果听到主任这么说,自己还有点儿良心,就应该主动赔钱。就算不赔钱,也算是一段佳话了。

反观我和护士的观点,让患者赔钱,如果患者老老实实赔钱,那还算好的结局。如果患者不愿意赔钱,因为这点儿小事还闹起来,那可能就更得不偿失了。往小了说,患者可能转移到别的医院去治疗,每个透析病人都是医院长期的财源啊。

华为手环9使用体验(第三晚、第四晚)

随笔

昨天没时间写这个。今天把第三晚、第四晚合并在一起写吧。

第二晚的问题

华为手环9使用体验(第二晚)中我提到了华为睡眠应用的几个问题。很难想象华为做的这么一个不算复杂的应用居然会有这么严重的问题。但是,昨天我在查看数据的时候发现,这些问题的根源其实更加复杂。

Screenshot_2025-01-03-09-45-19-521_com.huawei.health

如图,其实睡眠的数据有两项,一个是41分钟,由手环提供。另一个是2小时6分钟,是由手机提供的。但是我们从第二晚的应用的截图可以看到,它只显示了41分钟的,却没有显示2小时6分的。然后底下的打鼾录音却用的是手机录音。因此才会产生冲突。

那么问题来了,华为自己知不知道这个问题呢?华为是知道的。因为它在睡眠的41分钟后面,加了一个提示按钮i,点开你能发现,它提示你可以查看全部数据来查看完整数据。但这个按钮太过隐蔽。并且这个睡眠的整体设计也太过自相矛盾了。

Screenshot_2025-01-03-09-52-36-393_com.huawei.health

第三晚

第三晚开始,我摘下了苹果表,单独佩戴华为手环,看看它的记录是否有改善。今晚我睡得很晚,起来很早(2点多就起来了),因此没有记录上。苹果表没有佩戴,所以今天算二者打平。

第四晚

今天手环记录了两段睡眠。手环胜出。

Screenshot_2025-01-03-09-58-03-648_com.huawei.health

华为手环9使用体验(第二晚)

随笔

今晚在睡觉时,我尝试使用了手机版华为运动健康应用的记录睡眠功能,它使用麦克风记录睡眠,还能将鼾声自动分段并录音。不过使用它可能对于手环的睡眠记录产生了影响。今晚只有手机记录了。华为手环9和苹果表S9都没有任何睡眠记录。

因此,今天算是打平了。

手机记录睡眠的问题

Screenshot_2025-01-01-01-23-49-202_com.huawei.health

逻辑错误

这里有个逻辑错误。根据图片,睡眠时间时11:43-12:24,时长41分钟。但是根据下面的鼾声,第一次精选的鼾声时间是11:26分。因为是精选,所以睡眠的时间应该是不晚于11:26分,那么上面的11:43分的睡眠开始时间就是不准确的。

同理,那个12:24分的睡眠截止时间和01:04的打鼾时间也是冲突。我虽然不知道我具体何时睡着的,但是什么时候清醒还是知道的。我大概是01:10时醒的。所以这次睡眠时间应该是11:26-01:10,时长104分钟。

格式错误

这里,我们还注意到时间的格式的随意性。如果它遵从用户系统的设定,那应该是12小时上下午的时间。如果它决定用自己的时间,24小时制,也可以。但是它使用了混合的格式,而且出现自己和自己不统一。

比如零星小睡:下午11:43-上午12:24,这里如果想用12时制,应该是下午11:43-上午00:24。
下面的打鼾时间也应该使用12时制。

又或者全部使用24时制。

华为手环9使用体验(第一晚)

随笔

最近我的睡眠不太好,经常睡个1-2个小时就会醒一次。由于每次睡眠的时间都不长,苹果表s9在记录睡眠方面出现了问题,表现为有时能正常记录睡眠,有时整晚都没有记录。

我于是想再买个手环作为补充。由于我是双机用户——iPhone SE 3 + 红米K60。我首先想到的是不是要购买小米的手环。但是经过我查阅资料之后发现。似乎华为的手环在健康方面更加专业。另外,最新一代的手环,华为的价格也比小米的要便宜一些。

选择了华为手环9之后,我需要考虑的就是将手环配对到哪个手机的问题。因为我不希望重复记录睡眠时间。因此,我选择将华为手环9和红米K60进行配对。这样,我就有了两个独立睡眠记录。分别在不同的手机上面。

华为的软件设计真是让人一言难尽

早就听人说,国外软件和国内软件的最大区别,就是国外软件喜欢每个软件专注于一个方向,小巧精悍;而国内软件喜欢包罗万象,什么功能都整合在一起。华为的手环应用就是这样。

华为手环9配套应用叫华为运动健康。小米商店里就能下载到。但是它的功能实在太多了。也太过混乱。“得益于”安卓严格权限管理,打开这个应用之后,我不得不同意了太多的权限。而且它几乎每项功能都要单独申请好多的权限。比如心跳、睡眠和压力测试,虽然都在这个应用里面,但是它们都是单独申请自己是否允许写入到健康应用的权限。而且是你点击了该功能才会问。如果不点击,好多功能默认都没有开启。再点击了数不清的权限申请之后,终于可以使用了。

但是它还会时不时的跳出来让你买会员之类的。虽然手环只要200多。但是会员可不便宜,一年的年费就相当于一个手环。如果单独订阅,每个月也需要15元。什么,你说为啥年费比单独每个月乘以12还要贵?那是因为年费会员还会送你一个体脂秤。

但是其实,你就算不订阅任何会员,睡眠记录也是可以使用的。年费会员只是多了一个根据睡眠记录等信息,给你睡眠建议这项功能。但是,它的会员订阅里,却没有提示你不订阅也能用。所以,打开有人就稀里糊涂地订阅了会员。

更加混乱的是,买手环本身送一个月的免费会员。但是如果你单独点购买界面,头一个月是1元,之后是15元每个月。所以,很多人可能会因为免费或者是1月而上当。

第一晚

折腾完设置,终于可以睡觉了。还有一些吐槽留到下次再聊吧。第一晚的结果。苹果表未记录任何睡眠,华为手环记录了两段睡眠,合计2小时25分。

第一晚结果:华为手环胜出🏆。

忙碌的一天

随笔

今天还挺忙碌的。一大早起来,想着把昨天买的内存条装到台式机上,然后再打个游戏试试16G内存升级到32G内存的效果。

换内存

结果没想到第一步就很波折。拼多多买的这个组装机,是七彩虹的H610主板,配七彩虹的DDR4 3200 16GB单条内存。我新买的这个内存条是DDR4 3200 16GB的长城内存,带了个散热马甲。

结果安装上去之后,居然不识别。原本的内存是插在内存2插槽,内存1插槽的内存不识别。我关机,单独将长城的内存条插在内存1上。结果开机之后,虽然主板风扇转,但是显示器不亮。

我怀疑是内存1坏了。关机之后,将长城的内存条拿下,然后换上自带的七彩虹内存。这次开机了。然后,又将长城内存插到内存2上,再开机。这次终于识别出来32GB了。不过进入Windows变得很慢。

进入Windows变慢应该是虚拟内存的问题。因为默认Windows 11会创建内存同样大小的虚拟内存,也就是32GB。

游戏又遇问题

内存装好了。我想着打一把赛博朋克2077吧。结果EPIC应用登录之后,提示我并没有购买过赛博朋克2077,需要购买才能玩儿。

我这就疑惑了。因为我记得我明明是买了啊。而且我都打过几小时了。结果EPIC应用说我的游戏时长为0。

于是我在我的Gmail邮箱搜索EPIC,想要找到我当时购买时的收据。结果居然没搜索到。我很疑惑。我想到我当初还发过微博。于是我在我的微博搜索赛博朋克。找到我当时发的微博是2024年1月2号。

于是我在邮箱搜索我的常用信用卡招商银行的信用卡账单。1月、2月也都没有这笔交易。难道我真的没有购买过吗?

我想到我还有一张工商银行的信用卡,通过工银e生活,我查到1月2号我通过支付宝购买过这个游戏。于是我有打开支付宝,找到了这笔订单。

与EPIC的交涉

我通过EPIC网页的反馈功能,像EPIC发送了询问。并且提供了支付宝订单支付的截图。

EPIC很快就给我回复了。说光有支付宝的订单支付截图不行,还需要有EPIC的收据截图。前面说了我没有找到这个。于是我需要联系另外一方。

与Xsolla的交涉

在支付宝的订单上,可以看到钱是付给了一家叫Xsolla的公司。我在Google搜索到了这个公司的网站。它是一家专门做游戏第三方支付的。通过它的反馈表格,我提交了说明。说EPIC找我要收据。但是我没有。钱是付到你这边的。你能否提供查一下,然后提供给我证明,证明我的确是购买了的。

Xsolla的回复也很快。它说我没有提供订单支付的截图。我回复说,我之所以没提供截图,是因为你们的那个反馈的表单没有上传图片的功能。我在邮件里提供了支付宝的截图。

下午,我收到Xsolla的发来的EPIC的购买确认收据。然后又把这个收据转发给了EPIC。并且告诉EPIC,我当时没有没有收到收据。不过我联系Xsolla,今天给我重新发了这个的收据。目前我还在等EPIC的最后回复。

固态硬盘的问题

因为赛破朋克2077暂时玩不了。我打算玩一下生化危机-村庄。结果读取游戏进度特别慢。我关闭了游戏。测试了一下磁盘速度。我的是1TB的金士顿的固态硬盘,分了两个区,每个512GB。结果C区速度正常。D区(游戏所在区),读取正常,写入只有几MB/s。我查询了一下,发现固态硬盘的Trim是开着的。但是C区有一半的剩余空间。D区只有90几G的剩余空间。于是我又删除了几个游戏。 把D盘的剩余空间变成140G。这次trim被触发了。重新测试D盘速度也正常了。

结论

拼多多购买的PC虽然便宜。但是用起来麻烦事还挺多的。如果碰到一个不熟悉电脑的人。估计用不了多久就需要换新电脑了。

苹果表不能解锁Mac的最佳解决方案居然是……

随笔

上个月苹果买的苹果表s9出现了一个诡异的问题。我的M1 Mac mini安装了双系统,macOS 14.5和macOS 15 beta。二者的内容基本相同,macOS 15 beta是全新安装,然后通过融合助手将macOS 14.5的数据和设置导入。

诡异的问题是macOS 15 beta下苹果表的解锁是好的。macOS 14.5的解锁却无法设置成功,提示Mac无法与苹果表通信。

我在网上找了很多办法,询问了AI,都没能解决这个问题。

这里我要说一下,苹果表一开始是可以和macOS 14.5设置解锁的。不过苹果表刚买来的头3天,电池电量掉的特别快,差不多一个白天电量就需要充电了。和网上说的能用一整天说法差太多。我自我分析之后,认为这是因为我配对了Xcode和手表,导致的。于是我在手表里将开发者模式关闭了。结果发现macOS 14.5就无法连接了。于是我又重新打开开发者模式,结果还是不行。

题外话,续航短的问题倒是解决了。目前佩戴24小时还能剩50%左右的电量。

最终解决

我最初想到的方法是重置设置,但是M1芯片的Mac没有单独恢复设置的方法,只能连系统一起还原。于是我想到,我可以尝试安装新版的macOS,看看安装之后会不会变好。因为14.5已经是最新的稳定版了,于是我选择升级到14.6 beta 3。安装之后,重新设置使用苹果表解锁,结果立刻就成功了。

我所理解的大语言模型(LLM)

随笔

LLM是目前最火的科技词汇。乐观的人认为很快就会有通用的人工智能。但现阶段来说,LLM还没有宣传的那么神奇。那么究竟什么才是LLM的本质呢?

LLM的本质其实就是矩阵数据库。即然是数据库,当然是越大越好。因此,那些为了在本地运行而限缩的数据库,必然会在损失精度的同时损失准确性。我们可以将LLM想象为一部百科全书。完整的版的百科全书,和精简版的,虽然都是百科全书,内容也都是正确的。但是二者的详尽程度,必然不同。

LLM分类

LLM分类有很多种,比如按照功能,有通用类型的、翻译类型的、专注任务类型、偏重于编程的类型的等。但我认为对于普通人来说,最好的分类,是将它分类为联网型和非联网型。

联网型

联网型,顾名思义,就是在回答问题时,LLM会先分析你的问题,然后根据你的问题去搜索引擎搜索,然后利用LLM的归纳总结功能,将排名靠前的搜索结果的网页打开并总结,最终综合这些内容,来回答你的问题。

联网型的优点是实时性强,因为是实时搜索,即便是最新的内容也都可以找到。缺点是,如果LLM对于的问题理解错误,或者搜索到的内容质量不高。回答的质量也就不高。

非联网型

这个是目前的主流形式。LLM的开发商定期更新大模型,你问的问题,如果在它的范围内,它就能回答你。

非联网型的优点是对于它知道的内容,回答质量较高。缺点是,对于它不知道的内容,它就会胡乱回答一气。比如你问它最近有什么电影上映。它回答的可能是一年之前的。

LLM的局限

对于普通的人来说,LLM的最大局限性,就是LLM其实不知道它回答的内容是否正确。是的,它不确定自己回答的内容的是否正确。它只是将它计算过后的最可能正确的结果进行输出。

不过,这其实也可以理解。因为对于普通人来说,自己考试的时候,自己答题,有时候也是不知道是否正确,只是将自己以为正确的答案写出来。

所以,对于LLM,我们态度应该更像是面对人类,而不是面对计算机。即LLM的回答有可能是错误的,而不是一定是正确的。

如何理解LLM

我们可以将LLM理解为是一个人类。它的容量大小,就相当于一个人所掌握的全部知识。因此,容量越大越好。但是容量越大,运行时需要的资源越多,运行速度就越慢。因此,今后一段时间内,提升运行速度,是提升LLM的最佳办法。只有运行速度够快,才能跑更大的模型,模型才能更智能。

但是同时,我们也要意识到。LLM作为单独的一个“人”,它同样存在人的局限。它的回答不一定是正确的。对于它不了解的问题,它甚至可能胡编乱造一个答案。因为它只是将最可能正确的结果进行输出。如果没有正确率高于80%的结果,那么5%的正确率也可能是最高的,一样会输出。因此,对于LLM的一切处理结果,我们都需要审慎对待。

奔跑吧第12季第2集游戏规则探讨以及游戏设定的思考

随笔

昨晚播出的奔跑吧第12季第2集规则描述简单,但是实际上要玩儿起来还是挺有意思的。当然,这期的演员由于自身的原因,没能很好的利用起来这些规则。所以从技巧的角度来说,这个规则完全被他们浪费了。

如何做才对“好人”一方更有利?

游戏中,3颗红豆的被认为是“好人”,2红1黑的被认为是坏人阵营。游戏规则:

  1. 共10人,其中好人7人,坏人3人。
  2. 好人和坏人都可以搜集火柴,然后投票,7根火柴可以燃烧某一个人的一个球。这个球由投票的人自由选择。红球被燃烧冒红烟,黑球冒黑烟。
  3. 每一轮,只要选择用火柴烧球,那么这一轮结束时,所有人需要轮换一轮球。规则是从自己左手边的那个人那里抽取一个球。
  4. 游戏分为前期和后期。
  5. 后期,坏人可以在相思小院通过7根火柴直接杀死一个好人。但,好人可以通过提前烧取自己一个球来保命,或者通过搜集玉佩来保命。

分析规则

  1. 在不考虑互相告知的情况下。总球数一共有30个,黑球3个。因此单次抽中黑球的概率只有3/30,即10%。而一旦轮转,每次有1/3的概率抽中黑球,连续3次抽不中黑球的概率是(1-1/3)^3=0.296,也就是说每轮坏人感染好人概率接近70%。
  2. 10% VS 70%,可以得出结论,只能烧个一次两次的,那么烧球是非常不划算的。好人的策略应该是攒火柴,但是不烧,留到最后一次烧,这样能避免坏人感染。如果好人认同这一点,坏人就只能自己烧球,也就是谁主张提前烧球,谁就是坏人。
  3. 此外,后期的规则中,表面的看好人烧自己的球是为了保命,但是其实烧球对于好人也是有极大好处的。因为好人有3颗红球,坏人只有两颗红球。因此,当好人选择全部烧球时,坏人只有两种选择,要么跟着烧球,要么选择不烧球。
    1. 坏人选择烧球,这会造成总球的减少,使得好人烧球的时候,烧到坏球概率大增。比如如果全员选择烧球,那么选择黑球的概率就会从10%,增加到3/20,即15%。
    2. 坏人如果选择不烧球,那他就暴露了。因为好人即使有玉佩,也应该选择烧球。因为这能增加好人烧坏球时的选中概率。

综上,好人应该尽量搜集火柴和玉佩,不投票,并且每一轮都烧球。而坏人最佳策略要想不暴露,也只能跟着烧球。并且同样不投票。这样两轮之后,场上的局面就会变成每个人都只有1个球,其中好人手里都是红球,坏人手里都是黑球。此时就可以投票了。好人把自己所有的火柴都投出去。只要能选中坏人,那就一定能选中黑球。

关于游戏设定的思考

游戏是木偶相关,说是有十个传奇的木偶。但是其中有3个木偶不是三颗红心,而是两颗红心一颗黑心。有黑心的木偶认为这么多年是人类在压迫和利用木偶,想要反抗。游戏中将这种木偶定义为坏人。

但这样的木偶真的是坏人吗?我们知道,人之所以能操纵木偶,是因为木偶本身是没有意识的。但是现在,黑心木偶变得有意识了。也就是说木偶本身没有意识的这个前提不存在了。新的前提是没有意识的木偶其实是还没有意识。从这个角度,人类对于木偶的操纵就变成利用和压迫。因此,对于有意识的木偶人类应该平等看待,而不是单纯的将他们认为是坏人。