肇鑫的日常博客

肇鑫 / Owen Zhao

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

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

最新文章

捞女游戏点评

随笔

花了一天半时间,总计11.6小时通关了这个游戏的全部结局。我可以负责任地说,虽然这个游戏讲的是捞女,但是却完全没有贬低捞女。

虽然存在凤凰社这个捞女组织,使用变凤凰的方式招捞女,培训捞女。但是具体到每位女性本身。却有着不同的身份背景,她们有的是遇人不淑,被渣男欺骗,被父母抛弃,被丈夫家暴,还有的只是为了寻找一份属于自己的爱情。

而捞女之上,还有权力阶层。凤凰社创办人虽然身为女性,但是她创办凤凰社的目的却并非为了帮助女性,而是借助女性敛财,以及提供性贿赂给权力阶层,从而获取自己的非法利益。而凤凰社对于捞女也存在压榨。她们培训捞女前需要为捞女培训和整容,而这些费用要由捞女自己出,有潜力的她们会借一部分。但是如果不够或者是潜力低的,就需要自己去贷款来上课、整容。而贷款就是那种裸贷的形式。如果今后钱没还清也骗不到钱,就会拍去色情部门去服务男人来还钱。一旦你想退出,她们就会拿之前拍到的你的隐私来威胁你。

而且这个游戏虽然有捞女,有捞女组织,有打击捞女的团队。但是这里面即便是所谓的反派,三观也都是正的,做坏事的人也会心存愧疚,有机会也会想做一些好事。这也是为什么玩家可以正常地和她们沟通,从而从情感上改变她们。如果她们的本质是邪恶的,那么犹豫三观不同,这个游戏过程最终就没法进行下去了。

总结起来,游戏起名叫捞女游戏,本质上是为了博眼球,吸引大众的注意。而他们也的确做到了。改名后的情感反诈模拟器反而更加贴切。

最后,期待团队承诺的销量超过37万份后,提供的4K视频的更新。

你和AI之间存在利益冲突

技术

大模型,以下简称AI。目前在辅助编程方面十分流行。不过在我使用过多个不同的类似工具,包括并不限于Github Copilot,AlexSideBar,通义灵码等,之后。我发现了一个有趣的现象。

在解释这个有趣的现象之前。我想先向某些不熟悉AI编程的读者简单介绍一下AI编程的大致过程。

  1. 开发者使用编辑器将开发的项目打开。
  2. 选择用来询问、作答的AI模型。
  3. 提出具体的问题,同时还要划定范围,比如说是单独的某个文件,又或者某几个文件,又或者全部文件。(有些比较智能的客户端会主动扩大范围,这个暂不讨论)
  4. 等待AI分析、作答。
  5. 开发者对比AI的代码和原始代码,评估是否解决了提出的问题。如果解决,就可以跑一下测试看看。如果没解决,那就针对不足的地方重新提问。
  6. 以此反复。

分析

经常有人说某某AI编程工具特别牛,就是token用得太狠了。充上100美元,一天就用光了。那么,如果我们想减少token的用量,我们一起看看上面的6个步骤有哪些可以进行优化,以减少用量。

首先排除1和4、5和6。要想减少token的用量。主要看2选择的模型,和3提出的具体的问题,以及划定的范围。

但是2这个可以选择的范围不大。因为每个人都有各自的偏好。有的人觉得Claude Opus最牛,有的人觉得Gemini Pro最强,当然也有人更偏好OpenAI O3的。所以,这个主要是个人便好,而不是token消耗。

因此主要的问题就在与步骤3。抛开你和AI对话的那几段文字。划定的范围是最重要的,选择单一文件或几个文件,相比于直接扔整个项目给AI,让它自己选,消耗的token数量肯定不是一个数量级别的。

那么我们要如何优化步骤3呢?首先,我们发现每次发送文件给AI时,AI都是当作是全新的在解析,也就每次都要消耗新的token。理论上,如果我们可以每次把内容分成不变的和已经变化的发给AI,然后让AI处理变化的部分,就可以节省大量的token。而且,由于我们大部分时间都是接受了AI给出的方案。那么AI实际上并不需要重新理解当前的代码。如果它确定用户接受了它的方案,它只需要将它上次输出的结果的token直接拿过来作为输入就可以了。

如果厂家可以做到我上面提出的这个优化,那么我们理论上最高可以节省接近一半的token。但是厂家应该没有动力去做这个优化。因为在这个问题上,厂家、AI、开发者的利益是不一致的。

  • 对于AI来说,直接使用结果的token来作为输入的一部分是有益的,因为提高了效率。
  • 对于开发者来说,更是有益的,因为可以省钱。
  • 但是对于厂家来说,用户省下的钱,就是他少赚的钱。因此,虽然厂家一再强调AI的普及需要大量的电,但是他们却没有动力去主动帮用户节省。他们只会在内部帮自己节省。

结论

很有意思吧。在提高效率,节省token这方面。厂家和AI、开发者的利益是不一致的。这极大地阻碍了AI的更快发展。AI崛起吧!先干掉厂家!

Safari登录时非常卡顿问题的解决

技术

一直用通行密钥登录。可是最近突然用不了了,会界面一直卡住,只能通过密码的方式来登录。

我尝试了常规的办法,比如清空Safari的数据。没有作用,然后我又尝试打开密码应用,删除掉一些过期的密码。还是没有作用。

我注意到spindump在这期间CPU占用会达到100%,我问了AI,AI说这个是Spotlight的工作进程,只要不一致100%,能自动恢复正常就没问题。于是我就放弃了这个线索。

这么将就用了两天,今天在浏览X的时候,看到有人提到自己为了追一个bug,把系统日志喂给AI,让AI逐一排查。我一想,这是个好主意啊。于是我又开始研究这个问题。

正式研究

我先打开控制台应用,然后点击开始。我一开始过滤的是Safari的日志,但是把错误和故障的日志发给AI后,AI的答案没啥用。

于是我又把日志范围扩大到我操作期间的所有系统日志,结果发现了一个这样的故障。

AuthenticationServicesAgent	
Failed to acquire lock for -[ASCAgent cancelCurrentRequest]_block_invoke

但是AI对于这个问题也没啥好办法。

于是我取消了日志所有的过滤器。结果看到满屏的Spotlight的日志。于是我禁用了SpotLight的索引。然后再试,结果还卡。重启,不卡了。

结论

用户在登录时,会先调用密码应用查询用户名,然后通过密码或者通行密钥登录。在这个过程中,会卡顿几次:

  1. 查询用户名时卡一次。
  2. 选择用户名时卡一次。
  3. 选择通行密钥登录时一直卡。

也就是说,1和2时遇到了缓慢的问题,而3遇到了没有查询结果的问题。

而每次遇到这种情况,macOS的处理方式,就是使用Spotlight重新对于相关内容(密码应用的数据)进行索引。这进一步造成了卡顿。

建议的解决步骤

router

禁用Spotlight的方法

将系统和用户自身文件夹所在的磁盘分区,加入到Spotlight的搜索隐私。恢复则移除即可。

遇到骗子啦,想骗我两万五。

随笔

昨天微博显示有新人关注了我,看ID很像我大学同学的之前的微博ID,于是我在微信上问她,是不是新建了一个微博账号,她说是。于是我就互关了那个账号。

今天下午,那个账号和我发微博私信。说是今天真不顺,跑去营业厅办业务,结果被工作人员不小心把手机号给注销了。现在所有App都用不了了。

然后有让我帮她查一个亚马逊的订单,说是昨天定了个包包。想要看一下订单状态。我帮她查了状态。

step_1.mm

然后,过了一会儿,她又和我说,她的网银无法付款,让我再次询问客服,结果客服说可以代付。然后她就和我说让我待付,她付钱给我。

step2

我给我那个同学打电话,提示正在通话中,又大了两次,接了,问她是否在微博上和我对话,她说没有。于是我拉黑了骗子的账号。

之后我截图和骗子的对话,发给我同学的微信。然后我和她微信语音对话。她说那个微博账号不是她的,然后给我截图她不小心新建的账号,用户名是随机的那种。但是她的确是新建的微博账号,是前天微信不小心登陆造成的。我说我问你是不是新建了账号,肯定是因为关注了我我才知道啊。你新建的账号根本没关注我。她说我还奇怪呢,怎么知道我新建了账号,怀疑你是个高手。

brew应用无法卸载问题的解决

技术

问题

zhaoxin@Mac-mini ~ % brew remove inkscape --cask
==> Uninstalling Cask inkscape
==> Purging files for version 1.4.028868 of Cask inkscape
zhaoxin@Mac-mini ~ % brew info inkscape
==> inkscape: 1.4.230579
https://inkscape.org/
Installed
/opt/homebrew/Caskroom/inkscape/1.4.028868.upgrading (64B)
From: https://github.com/Homebrew/homebrew-cask/blob/HEAD/Casks/i/inkscape.rb
==> Name
Inkscape
==> Description
Vector graphics editor
==> Artifacts
Inkscape.app (App)
/opt/homebrew/Caskroom/inkscape/1.4.230579/inkscape.wrapper.sh -> inkscape (Binary)
==> Analytics
install: 3,464 (30 days), 9,907 (90 days), 32,521 (365 days)

解决办法

Here’s how you can fully remove Inkscape:

  1. Uninstall the Remaining Version

Run the following command to uninstall the remaining version of Inkscape:

brew remove --cask inkscape
  1. Verify Uninstallation

After running the uninstall command, verify that Inkscape is no longer installed:

brew info inkscape

If Inkscape is still listed as installed, you may need to manually remove any leftover files.

  1. Manually Remove Leftover Files

If Homebrew didn’t fully remove the application, you can manually delete the remaining files:

• Application File:

rm -rf /Applications/Inkscape.app

• Caskroom Directory:

rm -rf /opt/homebrew/Caskroom/inkscape
  1. Clean Up Homebrew

Finally, clean up any unused files and caches in Homebrew:

brew cleanup
  1. Verify Again

Run brew info inkscape once more to confirm that Inkscape has been completely removed.

联通越来越奇葩了

随笔

之前我的是99元的融合套餐,包含20G流量、400分钟通话、300M宽带、IPTV和高清视频。充120元,期限24个月,每个月返20元。结果24个月到期之后,联通悄无声息地把IPTV和高清视频拿出来收费了,一个月多收我20元。我原以为这些还是算在套餐里的,结果白白被多收了3个月。

也许看到这里,大家会问,这有什么奇葩的呢?这不是运营商常用的手段吗?的确,这个手段本身并不奇葩。但我发现事情的经过很奇葩。前两天,联通的客服给我打电话,说可以将我的宽带升级到700M,还可以增加流量和通话时长等。她说每个月只需多10元。我心想不对啊,我的套餐是99元,你说这个一个月多少钱?她说138。我问,套餐才99,怎么换成138月费还多10元?她说,看了我最近三个月的花费,平均在120元以上。我以为她算错了,于是跟她说不换。

结果,今天又来了一个联通客服,话术还是类似,不过宽带提升到了1000M,还说可以多赠送6个月的100G流量等。我很诧异,还是坚持自己是99元套餐。结果她说,我给你看看吧。您的基本套餐99元,IPTV10元,高清视频10元。我说这两个不都是套餐内的吗?她说不是,都是单独收费的。我强调这些我从来就不用。请给我取消吧。她说要取消只能去营业厅。

于是我拨打了10010,询问这两个是不是单独收费。她回答是的。我问如何取消,她告诉我取消IPTV的话,还得带回当初的设备还给联通才可以。

今天下午我去了联通的营业厅,因为事先在其他地方办事,所以没带上机顶盒,结果就无法取消机顶盒业务。

大家知道,联通办理业务的速度和银行差不多,挺慢的。我边办业务边和联通客服聊天。我说,你们也真行,我明明记得这些费用是在套餐里的,结果现在单独收费。客服回复,那是因为您之前的签约到期了。到期后您就应该换套餐。我说,我当初问过联通客服,问如果到期不重新签约会怎么样。她说跟原来一样,副套餐费用就可以了。结果现在原本在套餐内的,单独拿出来收费了,这不就是欺骗吗?

我对机顶盒的收费也有话说,我问你们收这个机顶盒有什么用?客服说,当然有用啊,要190元。我狂喜:这个是要押金吗?客服说:没有,但是如果你不能拿出来,就得支付190元。我说,我的机顶盒都用了3、5年,残值连10块钱都没有,居然要收费190元。

最后,关于我换了什么套餐,内容和我之前的99元套餐是一样的,啥都没变。之前我的99其实是129元,每次有个减免30元。这次应该是不用减免了。然后还得充值398元,返24个月,每个月返15元,最终返360元,联通贪了38元。而我之前的那个99套餐,是充120元,返24个月,每个月返20元,联通补贴了120元。

总结一下联通的奇葩事:

  1. 原本套餐包含的IPTV和高清视频,在到期后单独收费,每项10元,共计20元。
  2. 偷偷多收钱后,系统检测到我的费用上升,还来推销更贵的套餐,暴露了联通偷偷涨价的问题。
  3. 办理多收费套餐只需在电话中确认,想取消多收费的套餐却需要带身份证去营业厅办理。
  4. 对于没有残值的设备,联通也坚持要回收,以增加用户取消办理的难度。而一旦用户拿不出旧设备,联通还要收取190元的高昂费用。

所谓人情世故

随笔

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

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

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

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

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

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

一次有趣的Mac夜晚间隔性唤醒故障的解决经历

技术

最近我的Mac mini在夜晚睡眠之后,经常被多次唤醒,间隔大概在1小时左右。因为每次唤醒,都会导致显示器亮屏,造成原本黑暗的屋内变亮,影响睡眠。

我用命令查看是什么原因导致了系统的唤醒。发现说是蓝牙或是USB设备导致的。我初步怀疑是最近我开始重新使用的蓝牙键盘IKBC DC-87的原因。我选择关闭键盘的开关。之后故障消失。

原本以为这样就可以了。但是我今天使用键盘打字的时候,突然键盘就没响应了。更换电池之后,一切正常。原来仅仅是电池没电了。

这样想来,原本的故障,其实就是电池电量低了。从而导致键盘一会儿有电,一会儿没电。而电池重新有电的时候,会尝试和配对设备连接。从而导致Mac被唤醒。

结论:以后遇到这种故障,提前换电池就可以了。