右舷

宇宙,人类最后的边疆

因为踢球啊,潜水啊这种不太方便戴眼镜的场合,从几年前开始就很想做一下近视手术,手术之后就不用带了,踢球不需要坐在车里笨手笨脚地带隐形,潜水也不用专门找潜店要求给一个带度数的面镜。

再加上做了手术的同学们纷纷表示非常后悔,后悔最得太晚了,做完之后世界清晰地像是新造的,搞得人心痒痒,这次趁着失业,下了一点点决定,准备去把这事办了。因为年纪大,加上对铺天盖地的眼科眼院广告比较抵触,最终选择了公立医院。

我想如果检查结果说不适合做手术,医生也不至于为了赚钱非要推荐做,我直接听医生的建议做决定就行。

术前检查

术前检查就是确认适不适合做手术的,除了常见视力检查之后,还要看角膜的厚度,眼底有没有病变之类的,见识了许多奇怪的机器,印象最深的时做角膜地形图的,眼睛要近距离看红色的,一圈一圈圆环灯,可能是通过灯光的不同折射看角膜情况,有些眼睛睁得不够大的还会有人帮忙拿棉签撑开。

公立医院固有的问题是,人多,排队,建议留足够的时间,着急没有用。

几个小时检查之后,我跟医生说刚才护士告诉我我眼底有点问题,要先去看看。医生纠正我说这里没有护士,都是医生。

提示:基本上很多检查都是要散瞳的,散瞳按字面上的理解就是用药水使用的瞳孔扩散,不再因为光线的变化缩小,这样医生就可以透过瞳孔观察眼底情况。我第一次检查出来已经是晚上了,还好,觉得没太影响,可以开车,第二次是中午出来,阳光一打,跟瞎了一样。家里有墨镜的还是带一副。

眼底病变

术前检查的结果是我的眼底这缘有一点病变,需要先去处理一下。约了第二天的医生去看,医生说问题不大,还是打个激光控制一下。

打激光控制,就像森林火灾中做防火带一样,在你的病变区周围用激光先“破坏”一圈,这样病变的部分就不会再扩大。打激光挺疼的,但可以忍,更难受的是治疗过程中一直有强光打在眼睛上,还要跟着医生的指令看左看右看上看下,久了有点控制不住自己的眼球的感觉,一直流泪。

做完三周后复查,医生说可以了控制得挺好,不过嘟喃了一句:”这还做什么近视手术,过几年就老花了“,搞得我有点忐忑。

回到近视治疗科,医生简单问了几个问题,关于看远看近调节能力什么,说我这种情况不能对结果要求太高,可能会给我设计能一只眼主要看远,一只眼主要看近云云。我问到老花的问题,医生说刚才那些问题就是应用老花,问题不大,保你用到六十岁。

于是约时间手术,在这里还没有确定是全飞还是半飞,感觉是在手术前决定。

护士说我这个需要提前一天见医生进行手术设计,所以要来两次。但后来也没有,设计和手术是同一天做的。

手术当天

护士让我早点来,因为我这个比较费时间。我到了之后总算知道医生在我的预约单上写的四个字是什么了:老视设计。

针对我这种大龄青年,过几年就要老花的,要专门设计左右眼矫正的方案。当前要重新做的是角膜地型图和验光,地型图我不太懂,验光就比较仔细,来来去去远远近近调了近二十分钟,验光的医生给了我两副眼镜,说你出去试试,每副都戴十分钟以上,远近都看看,你矫正以后大概就是这种感觉,神奇的是,最后真的视觉跟戴这眼镜一样,科学太可怕了。

做完设计最后见一次做手术的教授,确认方案。排我前面的那个,教授给定的半飞,她要术全飞,说是怕以后运动不方便,教授也同意了。

我也是半飞,于是我也提出我以后的运动需求,想问问有什么具体影响,教授没接话,他只说我把你两只眼睛都做的清晰很容易,但是可能就保持三五年,不过我给你做个特别设计,左眼保留一点度数,这样你用到六十多岁也还不错,也不多收你钱,好不好?我说好,有什么不好?

当时都快十二点了,我把预约定交给前台时护士说你坐着等一等,一会就进去。我刚好有点事要出去,跟护士说能不能推到三点手术,她看看了手术表,说可以,于是我三点多才进去。

进去是不能带东西的,手机什么都在放外面,如果有家属就给家属,没有的话可以放在寄存箱。进去之后第一项是洗眼和脸部,坐在一张像牙科椅的椅子上,很温和,不刺激,不用紧张,听医生指令就好,洗完这后告诉你不要用手碰洗过的地方了。

然后是漫长的等待。
漫长的等待。
有人进去,有人出来,出来的人就坐着滴眼药水,不同教授做的还不一样,A 教授的滴三次,B 教授的滴六次.
没有人聊天,现代人好像已经失去跟陌生人闲聊的功能了,没有手机只能发呆,零零碎碎地有人说两句话。
有人说像坐牢一样,他十二点多就进来了,这句话让人绝望。

等到快五点才到我,跟着医生进手术室,前面还有两个人,医生让先坐旁边,来了另一个医生点眼药,这次应该是表面麻醉。然后看第一个人躺着被推到仪器下面,手术流程应该有一部分是编程好的,医生只负责定位和给病人指令,他做的应该是全飞,所以从仪器上下来之后,医生需要把切好的膜抽出来。

好像除了我都全飞,我上机就非常快,感觉不到 30 秒就双眼都做完了,就跟网上看到的一样,看绿光,绿光发散变大,绿光看不见了,结束。医生把我扶到一边,说还没结束,等一等,半飞还有一部分。

之后躺在另一台机器上,开始半飞手术的下半场,还是看绿光,医生开始在眼睛上冲药水,然后有工具从我眼睛上拂过,绿光变成了放射状,应该是切好的角膜被掀开了,两位医生还在讨论,怎么写着留 150 度啊,我觉得留 50 度就可以了,那就设成 75 度吧,之后就是消融角膜的过程,闻到了烧焦味,很浓,眼睛的味道也没什么特别的。医生继续用水,继续用水,然后又有工具拂过,视野清晰了一些,一只眼结束。同样的操作另一只眼再来一轮,结束。

医生领出来,来到了之前等待的房间,滴眼药水,六次,戴眼罩,送出。

眼科的这个眼罩一般,主要是术后为了防误触的,但是做的孔比较粗比较疏,为了看到点东西经常摇头找角度,术后两三个小时,麻药退了,开始疼,疯狂流泪。

前人说得对,最好是睡觉,睡一觉就好。

术后感受

术后第一天和第一周都要去复查,可能是我这个年纪的做这个手术比较少,医生特别交待多做点检查,留点数据,我乐得当一个小实验品倒是。

很多人说后悔做晚了,我倒是还好,我没有太特别的感觉。术后的感觉其实跟戴隐形差不多,这么说的话,也不是什么太新奇的感觉,干眼疲劳我都没有,也许等以后开始踢球潜水了,才会真实地感觉它的方便吧,终于不用在快开场或快下水的时候手忙脚乱地戴隐形了。

有两个明显的问题,不知道时间长了之后会不会善。

第一个是二十到三十米的视距,会有重影,这个时好时坏,用电脑时间长了再出门走路会明显一些。

第二个之前戴眼镜时也发现了,就是十厘米以内的视觉变模糊了,因为长久的习惯,看微小的东西看不清就会凑近看,现在这个动作无效了,放远一些更清楚,经常看到老年人看报纸看不清,就会拿远一点看,应该就是这种感觉。

在 deepseek 的帮助下更新了一版 paceguru 的关键字,英文能容纳的内容真的少,更新之后再看看结果。

《瓦尔登湖》对我来说还非常有难度,即使第一篇简约的生活我也几乎没有办法安安静静耐心地看完。
总觉得这些年慢慢失去了耐心阅读的能力,看书的时候,心里不知道在想些什么,眼睛可以顺着一个字一个字地往下,但心已经不知道飘到什么地方去了。
但小说,故事这种作者存心故意吸引人往下读的东西还好,科普历史这种有脉络可循的东西也行,但瓦尔登读,有点意识流,但作者在慢慢聊他对事物的见解,却很难跟着他的思路一步步走下去。

2024
SwiftUI 可简单了,在你突然想优化一下性能之前。

刚开始玩 SwiftUI 时,烦的是数据怎么不计算更新,打开 Instrument 之后,恼的是数据怎么重复计算了五次。

经过大约一周的性能优化,PaceGuru 的跳转延迟问题终于好了一些,内存点用问题也好了一些,还删除了一个多余的实体,以后更新跑步记录更简单了,简单也就是出错的机率少了一些。

快到年底了,应该有分享一整年的跑步记录的需求,现在 PaceGuru 的日历视图是两列六行的,在手机上倒是看得清楚,发享到社交网络就有点太长了,所以计划在分享时把它转成三列四行,发布出去就好看一些,还没做完,网断了,AI 员工不给我结果了。

今天一直早上主要是在 PBS 的代码测试,主要代码是 Windsurf 写的,有问题,不断地叫它改。过程并不开心,因为同时生成的代码量大了,有个问题就是懒得看,但不看的话就只能盲目地让它改,对代码的掌控力不足导致整体感觉不太舒服。

因为 UI 还没想,算法测试完后就先放在那里了,下午主要是想看看首页的内存消耗问题有没有太好的解决方案,一下午没有成功,很挫败。

晚上去接小坨的时候,车刚停好,推上开始讨论 Revenuecat 被墙的问题,Paceguru用的也是这个,马上回想了一下。

现在 PaceGuru的逻辑,如果无法连接到服务器,对现有的 Pro 用户应该没有影响,只是未购买的用户会直接用上 Pro 功能,这么看也无所用,就让他们用两天好了,周一再更新了。
晚上回家上去看了一下,很多开发者比较着急,是因为他们怕付费用户用不了功能吗?好像也不是,他们是高用户量的开发者,应该是怕新用户无法购买吧。

不像我们这种一周都没几个内购的人……

interval

PaceGuru 的跑步详情页有一个区块,叫间歇。

间歇就是说,如果你用 Apple Watch 完成了一个设置好的分段跑步训练计划,在详情页除了每公里的分段之外,PaceGuru 还提供间隔的分段数据显示,当前提供分段的距离,时间,配速,步频、功率等等。提供了这些数据的问题就是,屏幕不够宽了,所以就需要滚动显示。

滚动显示的问题是什么呢?就是滚到后面就不能很方便地知道这一行是哪一段了,特别是行数比较多的情况下,滚动后面,看到了功率数据,但又不知道这是哪一段。于是一个很自然的想法,就是能不能像 Excel 那样,可以固定第一列。

之前也看过不少开源表格控件,都觉得太复杂了,犯不上。

于是我问 Windsurf: (我描述了固定列的需求)。
Windsurf: 你可以做两个 Grid,并排放,第一个 Grid 只放固定的列,第二个 Grid 滚动,这样就可以了。
我:我也这么想过,但有一个问题,两个 Grid 怎么保证每行对齐?
Windsurf:好办,每行都用固定高度。

我不是特别满意,但好像也没太大问题,于是让 Windsurf 写代码,我再改两手,事情就这样成了。

然后我又想起另一个问题,我现在的 Grid 每一列都是写死的固定宽度,这个固定宽度要同时适应中文和英文,所以只能按中英文中较宽的那一项来,有些难看。

于是我问 Windsurf: LazyVGrid 的宽度好是是根据第一行的内容来设置的吗?
Windsurf: 是的。
我说:那我第一行是时间,第二行是 12:32:40,明显第二行比较宽,按第一行定宽度明显会发生换行,写死一个宽度我又不开心,怎么办
Windsurf:你可以遍历一列中所有的内容,计算它们的宽度,然后以最大的宽度为宽
我说:想想就很麻烦,你来写一个实现吧

于是 Windsurf 写 calculateColumnWidths,中英文也直接解决了,我发现每一列的内容本身还是比较固定的,不同列才不一样,动手简化了一些代码,事情就这样成了。

程序跑了起来。

我发现左边的 Grid 只有两列,右边的五六列,他们平分了屏幕的宽度,特别怪。
我问Windsurf说:怎么办?
Windsurf说:左边固定宽度
我看左边两列的宽度存了一个数组,于是: 你 reduce 一下

于是 Windsurf 写 reduce(0, +),事情就这样成了。

回到之前每行固定高度的问题,既然列宽可以算,以后如果有需要,行高再让Windsurf算一下好了。

结果Windsurf说你超限了,请一小时后再尝试使用,我付了费,事情就这样成了。

玩起了文明 6
第一局,五六个小时左右吧。
派出了侦察兵在外面呆着
集结了全国的骑兵和弩手准备进攻一座城池
城池里射出机枪的子弹,侦察兵带着狗正在休息,头上响起了飞机的轰鸣
GG

11 月跑了 205 公里

11 月跑了 205 公里

在福州,我是一个请了假的人,在广州我是一个失了业的人。

其实就是辞职了,没有跟家里说,这次爸爸生病,来来回回的,在福州也呆了两三个月了,因为不想让爸妈有心理压力,觉得是因为这次生病导致我丢了工作,就一直说是请假,请长假,请没有工资留了职位的假。

最近在家里陪妈妈,顺便料理丧事,主要是陪妈,丧事料理得不多。在几个七之间,我主要的任务只是维持一根香一直燃着,等它快烧完了去换。

除些之外,到时间起床,到时间吃饭,到时间出去跑步,坐在沙发上写代码,就是普能的日常生活。

想老婆,想女儿。

在家帮忙办葬礼,也就是打个下手,妈妈说什么就做些什么,主要在大舅在操持。
晚上聊天,大舅说外公的兄弟去世那会,他才二十多,办丧事的时候,他做副手,很多事情都可以做了。我都四十了,还只能听话办事。
那是当然的,这些风俗习惯,经历这才会知道 ,我知道个啥啊。

0%