升级MacBook Pro M1 Pro啦

因为上海疫情原因,定制的21款MacBook Pro 16 inch足足等待了两个月才到手。

这是自己的第三台MacBook Pro,具有基本一样的功能和外观设计理念,尤其是那个电饭锅magsafe充电口。所不同的是,这是一台搭载苹果M1 Pro CPU的机器。机器到手后,前后断断续续花了半个月把应用、数据和环境都配置好了。简单记录一下自己的这次迁移记录。

系统迁移及兼容性

自己现在在用的是2015款MacBook Pro 15 inch. 考虑到M1架构与Intel架构的差异性,以及看了一些power user的反馈,这次迁移没有使用Time Machine。而是直接 one by one 配置安装配置的方式。最开始以为工作量会比较大,但实际迁移过程中发现,自己常用的应用也就那么几个。而自己最开始比较畏惧的环境配置,因为之前很早就做了云同步,所以也是比预期快很多的就完成了配置。

在M1上运行Intel架构的应用,会经过 Rosetta 2 转换,有大概20%的性能损失。在活动监视器上面,也可以通过 kind 查到到。目前常用的软件基本都能兼容,这块目前没有遇到什么问题。

开发环境

golang的环境可以一路next配置完,目前还没有发现任何兼容性问题,而且编译速度极快。

自己是重度 alfred 用户,从10年前开始切换到mac, 就购买了mega授权。但是切换到新机器后,发现很多workflow依赖的python都没法工作了(macOS 12.3以后移除了python)。恢复的话主要两步:1、自己下载安装python; 2、因为python路径发生了变化,还需要更新workflow到兼容m1的版本 或者 手动修改workflow中写错的路径。

java 8 环境,如果追求m1原生和性能,可以考虑 azul jdk,但是可能存在一些兼容性问题。主要是一些依赖的lib可能没有m1原生版本。因此,我的选择是同时安装了一个 oracle 版本备用。

使用感受

关于M1 Pro/Max的性能,我推荐极客湾的苹果M1 Pro/M1 Max评测. 这里聊一下自己作为一个典型的开发者的使用感受:

  • magsafe回归了,140w快充太赞了。magsafe充电口也是为什么我的上一台macbook一直坚守在2015款的重要原因。而140w的快充基本上稍微补点电就可以用半天,对于有时候动辄一天的会来说,基本没有了续航焦虑。
  • 整机功耗非常低,日常开发非常安静,风扇基本不转。从系统监控看,95%情况下,功耗在15w以下。不得不感慨苹果的精准刀法,这个功耗你用ipad原装20w充电头其实也能勉强用,但是就是会时而触发从电池借电。而根据我之前的经验,这会非常容易造成电池鼓包。因此,我现在随身携带的是一个 type-c PD的应急充电头是30w的,同时满足手机电脑充电,我推荐你也这样做。
  • 刘海摄像头还算能接受,基本不影响日常使用。这么大的挖孔当前只有一个1080p的摄像头肯定是战未来的,毕竟库克是库存管理大师。这也就意味着,这代的MacBook Pro模具应该会有相当长的一段时间。颇有点iPhone 12回滚iPhone 4的味道。
  • 指纹识别比较方便,在这个基本都标配的时代,只能说是中规中矩。
  • 键盘也随着magsafe的恢复,基本重新回到了2015款的手感。但是键程显然还是比2015款短,能有80%的舒适度吧。

新的笔记本到手半个月了,即使加上之前2个多月的等待,这段时间用来下来也是挺开心的。苹果在这个产品线上重新找到了当年 Pro 的那个味道,自己也很久没用到能让自己如此满意的电子产品。配上好鞍,重新出发!

闭关这一年

去年的这个时候,工作上进入阶段性闭关。近年这个时候,到了出关的时候。也是一种巧合。

一年时间,俯仰之间。在一年的中点,少了一点理所当然时间朋友的感觉,有得有失,冷暖自知。

在目标感与企图心之间,自己缺少了一些区别感。一年之后的现在回头,我想前者更多的是自己,而后者更多的别人。没有褒贬之分,而是要有区别感,这很重要。

不久前妞儿问我之前14年在毕业典礼上讲的十年之约还算数吗?我信誓旦旦的说,当然算数,但是却少了许多坚定。如同前端时间看到同窗好友的朋友圈,不禁疯狂点赞的同时,也感慨十年一剑的隐忍不易与静水流深。

我承认我至今依然非常迷恋宏大的叙事。但是,这种宏大叙事更多是传达别人或者历史的认知,而不是自己的认知。很多时候,当听众遇到良师,是一种幸运,当时会自然的陷入一种智力和体力的偷懒。下半年依然会密切关注身边的朋友,依然会用有限的资本积累感受时代和经济的温度,位置上希望自己能更上前一步,然后更向前一步。

这些年参加过的双11

今年双11在波澜不惊上落下帷幕,这个周末是难得的一个修整机会。百无聊赖之中,对自己参加过的几次双11简单总结。

加上今年双十一,已经参加了三次现场双11。对于普通用户来说,每年的基本盘都是 买买买 ,但对于自己来说,每年的感受却不尽相同。

第一次参加双十一技术支撑保障是2018年。作为还没有转正的新同学,第一次进入作战室的时候更多是新鲜感和第一次亲临现场的兴奋。然而,没想到等待自己的却是各种万丈深渊旁的如履薄冰,如同那年成都伸手不见五指的雾霾,一路战战兢兢,磕磕绊绊完成了任务。好在当时一起搭档的同学非常给力,把现场的问题都快速解决。

事后复盘,数据链路年久失修+系统架构设计太多trck和临时方案是症结。我们不能将这种必然的问题还诉诸于来年的好运。于是,我们花了半年的时间来解决以上问题。在大公司做这样的事情往往是不太被认可的,放在我身上也不例外。更为甚者,还会受到很多业务上的挑战。当时,我选择了接受阶段性不被认可的结果,坚持一条道走到黑。如今想来,有许多更加圆滑的做法,但是如果把我重新放在当时那个位置,我应该还是会选择当时的做法,而这种选择不是认知和经验问题,仅仅是内心自我的坚持吧。

带着第一年复盘的调整结果,信心满满的走进了2019双十一的作战室。是年丈母娘装了新房,当晚的一级保障计划就是给丈母娘 买买买。然而,还没等第一瓶可乐喝完,业务反馈大屏上面一个实时数据的结果不正确,找到当时业务接口同学,她倒也是诚(hou)实(yan)直(wu)接(chi):之前让验收数据的时候,回答是验收通过,其实并没有看数据。得嘞,这时手刃之祭天是没有任何作用的,而大屏数据又是部门万众瞩目的,那只能想办法现场把这个数据开发出来发布上线。抬头看了看时间,不要20点。

然而,因为双11封网一级保障的原因,实时任务开发平台无法新任务开发,沟通了将近1个小时也没有结论。好在想起之前作为集团实时任务计算平台的典型用户,与平台的owner有过一次还算愉快的内外论坛交流,于是直接联系他们解决了平台问题,只是受限于当时的关联系统管控原因,开发的计算任务无法调试,只是发布上线后结果。抬头有看了看时间,22点过了。

为了加快开发速度同时确保开发质量,我和当时搭档的同学每人负责一部分代码的编写,然后合并代码交叉review. 其实代码本身的复杂度不是太高,但是当时的高压环境和氛围让编写任何一个简单的逻辑似乎都变得不再简单。22:30 我们完成了代码编写,code review时候,我发现了一个代码的问题,跟搭档确认时,他也意识到了这是一个问题,不得不说,有时候高压真的会让动作变形。代码很快发布上线,没有调试的情况下,一次性上线成功,数据口径也符合预期。到此,问题解决了一半:由于需要追溯历史数据,因此,计算任务需要调回到今日凌晨开始计算,接下来的一个小时,我们就是盯着任务的追赶进度,终于在 23:45,成功追上了当前时刻的流式数据!

当时的直接主管老阿里也坦诚这是他参加过历次双11颠覆他认知的紧急发布。坦率讲,这次问题处理是有运气成分的,因为我和搭档事后都觉得计算任务不经过调试,一次性发布成功在日常开发中基本是不存在的。但是,过程中我觉得很重要的一个点是:技术自信。日常开发中,有问题我们可以面向google编程,但是当你的开发周期被限制在很小的时间窗口的时候,你日常所有的积累和基本功,当然还有欠下的技术债都会在短时间内爆发并如数奉还,童叟无欺。比如,这次review出来的问题我之前是研究过的,并且计算平台的文档我也是每一页都读过多次的,这个问题在哪些版本会出现也是心中嘹亮的。这些东西可能都称不上知识,只能算是信息和经验,但是假设没有这些助力,我们当晚必然需要二次发布,而时间是肯定不够的,然后也就没有然后了……另外,我很推崇的技术sense是对基础的重视:我们日常99%的问题都可以用基础的80%去覆盖和解决。因此,在追求20%的高精尖的时候(程序员歧视链的必然)永远不要放松对基础的积累和完善。

今年双11保障基本面很早就进行了部署和实施,11.1的作战室现场也是波澜不惊。但是,因为11.3黑色事件与双11有重叠时间的原因,业务层面在10号早上提了新需求。而再过几个小时就是双十一了……而我选择了接下这个需求,除了所谓的 价值观,还有一个原因是我觉得这是一个与其他同学进行技术PK的好机会。中午放弃了午休开始编码,下午3点过完成了开发,业务验收通过,然后关联业务方得知以后似乎觉得我这里的开发是不要钱的,又追加了一个需求……当然,在迟到了几分钟进作战室,都毫无意外的完成开发,并发布上线。

其实很多老人都觉得这个时候接这种需求很容易搬石头砸自己脚,其实我也是这样认为的。只是我评估业务需求后,我没有走跟我PK同学相对比较笨重的java技术路线,而是选择了Golang,在编译和调试速度上都占尽了优势,同时凭借自己平时维护的标准扩展库,很多任务都是一行代码可以解决。典型的现场现状是:我比其他线的技术同学提前了好几个小时把任务开发完发布上线,反馈问题修改也是在分钟级搞定。另外,大家可能有个疑惑:为什么没有像去年那样交给下面的人一起合作去做?一方面是因为这条技术线路在短时间内只有自己最熟悉,跟合作同学简单沟通后发现其技术面还未覆盖这些领域,我这个时候只能选择跟我上的方式,功劳大家分;另一方面,这个事情除去价值观,我有私心,我就是要用技术的方式PK一些日常看不惯的技术同学。我深知,这其实也是某种不成熟, 只是,时间久了,有些东西只是变味了,未必是成熟了

总结下来,参加这几年双11的几点感悟:

  • 未雨绸缪,实践检验真理。
  • 不要把偶然的运气当做实力。偶然的好运学会感恩和感谢,必然的倒霉也不必气馁,区分好概率和实力。
  • 养兵千日,用兵一时。高压之下,要有自负的技术自信。
  • 日常学会辨别气味相投的人,并投资积累信用,而不是表面上nice的人。
  • 技术人要学会通过技术做表达,从技术的力量视角去理解商业的本质。