2025新年好

2024年,我做了这些事:

各种IT产品与玩具:

TP-Link TL-SL42 Pro智能门锁:凑合能用,人脸识别比指纹好用。不过这一款的人脸识别是双目摄像头的,不是3D结构光的,听上去不太高级。指纹识别拒识率比较高,而且连续失败就得在门口被罚站三分钟。如果要考虑把传统门锁换成全自动智能门锁,尤其是推拉式门把手的,一定要提前思考一下开关门会不会夹手。比如我家是左外开门,如果是推拉式门把手,内侧关门的时候就可能会发生右侧夹手的情况。TP-Link用一个圆把手规避了夹手问题,但是内侧关门体验就会比较诡异。

拓竹A1 mini 3D打印机:上一次玩3D打印机还是10年前,那时候的3D打印机真的挺弱的。双十一的时候被论坛种草买了个入门级的玩一玩,总体感受是确实有很大的进步,使用门槛和打印品质都有了明显的进步。尝试自己建模打印了一个小配件,挺好,实用!可惜如果没有实际的需求,只是随便打打别人做好的那些模型玩玩,对我的吸引力没有那么大。而生活中又确实没有那么多场景需要我自己去建模打印零件的,所以这个3D打印机目前基本上已经吃灰了。

iPad Pro 12.9 (6th generation):原本的希望尝试把它当成生产力工具,出门旅游的时候,背电脑太重,可以用它来代替完成一些工作上的事情,所以还配上了妙控键盘。不过实际体验下来,在我的使用场景下,用iPad来办公依然是一件不靠谱的事情,所以它现在基本上就已经沦为小朋友上在线课程用的学习机了。Apple Pencil我没有买,借了一个用了几天,体验很棒,就是对我来说没什么用。

美的VX10洗碗机:家里的原来的西门子洗碗机快10年了,水泵坏、开关坏、浮板坏、水板漏水等大大小小的毛病也都遇过了一圈,不想再缝缝补补又十年了,直接换个新的。在同样的外型尺寸下,中式碗篮比以前进口西门子的碗篮更能装,这点体验上还是有很大提升的。新的机器工作噪音比旧的要大一点,其它没有明显的体验差异。

Dell Optiplex 7020 MFF微型台式机:5年前的买的Dell 7060 MFF i7-8700一直用得都没啥毛病,只是主观上觉得有点卡,所以更新一下。这次换成i7-14700T,虽然从CPU Benchmark上来看性能提升一倍有余,但其实换完了感觉也没有明显变化,就继续安安稳稳用着吧。

vivo X100 Ultra手机:给妈妈买的,传说中的“灭霸”,但是这个型号为了拍照还是妥协掉了很多东西,短板和长处都很明显。不是那么较真的话,我觉得这个手机体验最不好的地方就是笨重且头重脚轻。其它方面总体还是可以的,vivo的系统体验也还不错,有很多小细节做得挺好。

Garmin eTrex Solar行者小G:GPS轨迹记录仪、GPS码表,在另一篇博客里已经详细评测了,总之Garmin性价比很低,行者小G性价比高但缺点也不少,总体上我还是觉得2022年年底买的探险家P-1 Mark II更适合我的应用场景。2024年探险家又新出一款专业级的EX-1 RTK轨迹记录仪,可以实现厘米级定位精度,但是使用门槛高,价格也是高高在上,我先拨草了。

摩托罗拉ADVISOR BP机:很多年轻人可能已经不知道什么是BP机了。当年这也算是个高端货,现在只要几十块钱能就搞到手。买它只是想做个用SDR呼醒BP机的试验。先买到了一台坏的,怎么也呼不成功,后来重新买了台,一次就成功了。在Raspberry Pi上使用rpitx轻松拿捏。如果你有兴趣,本人可预约承接蛇年拜年图片定制服务。

德业DYD-W20A3除湿机:把地下室清理了一下,买了几个货架用来放放杂物,但是发现地下室过于潮湿,所以买了除湿机。然后发现地下室窗户太高无法排水,就又买了一个提升泵。除湿功能没问题,控制在35%左右的湿度差不多一天两度电。但是Wi-Fi时不时会断开,造成我无法远程观察它的工作情况,只能跑过去重新连接一次。

五阶、六阶、七阶、三阶智能魔方:其实三阶会了以后更高阶的基本上都会了,到类似七阶这种如果不讲速度,大部分就是体力活了。买个智能三阶是想着练练CFOP的,但最终还是没有行动起来,十五年的层先法老玩家,不思进取。

胜利VC86D数字万用表:我2001年买的那个杂牌万用表液晶屏老化不太看得清了,随便买个正经牌子的用用。反正一年到头也就测那么几次电阻、电压,不要骗我一步到位上高端福禄克。

明纬12V 8.5A开关电源:用来替换群晖DS-918+上的故障电源,杂牌的电源不敢买,也不想做高贵原厂件的冤大头,所以选大牌的。但明纬这个型号插头针脚定义跟DS-918+不同。最终决定剪线,接上原来原装电源上的插头,搞定。

OTP 12V5AH铅蓄电池:用来替换APC BK650M2 UPS上老化的电池。同上面的电源,不敢买杂牌电池,所以选了个算是大厂的型号,虽然它的容量略小于原装的电池。刚换上去是好的,但是还没到半年,又开始偶发报电池容量不足的错误了,还没有来得及仔细分析是电池的问题还是其它什么问题。

旅游:

北京:过年前又去了一次北京,先是去了环球影城,也是一个排队排到死的地方,关键你永远无法准确预测下一个小时还排不排队,好几次都是排了很久后发现后面没人了,可以随便玩了。总体来说玩一次还不错,反复玩就没意思了。另外就是贵。玩完环球影城,就还是到处玩冰,在水立方体验了冰壶,去国家速滑馆溜了会儿冰,去各冰场开放的公园玩冰雪项目。在速滑馆发现自己练习了一会儿以后,勉勉强强也能溜起来了。最后逛了逛清华。

重庆-成都:重庆还是一个挺有特色的城市,吃也不错。但是说玩的话,就是一天到晚爬台阶。江轮看看夜景还不错,长江索道排队太长没有特别的意思。来福士顶上那个空中漫步完全不刺激,不好玩。去了一下武隆,也就那样。成都跟2017年去的时候感受差异比较大,主要就是哪里人都变多了,心累。大熊猫基地面积扩大了很多,但是熊猫密度相对就变小了,加上人多,体验不是太好。

洛阳-开封:五一前几天到的洛阳,人还不多,龙门石窟等景点逛逛都还可以。白马寺、少林寺到此一游。到开封的时候就已经是五一假期了,人从众,游玩体验就下降了很多。如果人少点,我觉得开封那几个景点还是可以玩一玩的。

平潭:休闲游,租个车漫无目的地到处转转、沙滩边坐坐,还行。

南京:参加老朋友婚礼,重温了玄武湖、台城城墙、夫子庙、颐和路、小李汤包、章云板鸭。由于那两天南京台风几乎所有景点都关闭,加上一大半时间都在处理阿里云新加坡机房火灾的后遗症,所以其实没怎么好好玩。

郑州-兰州-西宁:郑州没啥好玩的,逛了一下博物馆还凑合。兰州也是逛了下博物馆不错,黄河边也还不错。西宁博物馆不太行,但是塔尔寺、青海湖、市区的清真寺等景点还是很不错的。茶卡盐湖太远了没去,给下次再去留个借口。 

其它:

多邻国继续学习德语中,现在连胜472天,不过其中有两三天确实是忘了,通过改手机日期的方式作弊补上了。今年争取把A1学完。如去年所说的那样,现在已经学成哑巴德语了,能做对题,但几乎不会说。

学习了一点微信小程序的开发,并且快要完工了一个简单的小程序。不过大部分是AI的功劳,用AI写代码,不管是前端还是后端,大部分情况下都比我自己写得快写得好。

重新搭建了整个网站服务器ECS上的所有服务,换了一台相对更高配置的ECS,同时还引入了RDS、云监控等一众阿里云的产品。重新搭建了家里Home Lab上的各种服务,都改成基于K3s来部署。

参加了公司组织的两次5公里的“迷你马拉松”跑步,结果两次成绩还都比去年有微弱的进步。作为从不锻炼的我来说,也满足了。

又增加了一些奇怪的技能:完成了家里乳胶漆墙面的重新粉刷;更换导电橡胶修好了电钢琴会炸音的琴键;修好了单簧管上断掉的挑钉;修好了厨房里因为侧板开裂造成下坠的吊柜;大拆带烘干的滚筒洗衣机清洗内筒。

十年(中)

这文章已经快烂尾了,努努力,先补个中段出来。

TL;DR

其实我已经不太想写后面的内容了,写这篇文章时我已经仔细地想过我所希望在文章中表达出来的内容。总结到最后,我觉得这十年中让我自己受益最大的一点就是:突破自我,走出舒适区,积极、主动地多走一步。

对于我自己来说,即使到现在,我也常常很难主动去打破自己的舒适区,积极地多走一步。但是回首过去的十年,但凡我多走了一步,无论是主动还被迫,最终都得到了超越预期的结果。

这里说的多走一步,还不仅仅局限于自己的事。在跟别人合作的时候或者打交道时,多走一步,或者帮助别人多走一步,都是非常有益的。

2009年

产品维护的工作比想象中的更难做,尤其是换到了一个全新的产品线后,对于一个完全不了解的产品,需要同时去给客户解决多个平台上N个版本产品中出现的各种疑难杂症,实在是一件非常有挑战的事情。

有两个Case印象深刻:

  1. 有个Case我完全无从下手,只好开始“忽悠”,说了自己的一些怀疑点,让核心技术支持部门协助客户去收集更多的日志,趁收集日志的时间我就可以在后台更进一步地分析问题。有一天突然就发现,美国开发团队以前开发这个产品的一位Principal Engineer(首席工程师?反正级别很高,是个传奇人物)跳进了这个Case。他不但详细的分析了问题的原因,给出解决思路和方案,还“顺手”把代码改好、打好补丁包。后来我向他致谢的时候,他说:这个产品就像是我的孩子,我有责任把它照顾好。
  2. 有位客户发现产品界面上的CPU占用率曲线在产品连续运行了两个月左右后就会显示成持续占用100%,但实际CPU占用率并没有这么高。我从前台Java Script一直到后台程序及内核代码全部分析了一遍以后终于发现,是因为程序中用32位无符号整形数来表示开机后到当前时间的毫秒数,所以每过49.7天,这个整形数就会溢出,造成问题。我修掉了这个问题,并且定制了一个Linux内核,可以在启动时指定uptime的初始值用于快速重现这个Bug,把Patch和这个测试用内核一起提交给QA。QA后来表示非常感激,因为如果没有这个测试用内核,要Mock出一个很大的uptime值是一件很麻烦的事情。

这两个Case说的都是Ownership,说的都是怎么在尽职的前提下再多走一步。在一个人人都很优秀的环境下,“尽职”只能算是一个基本要求,想要有额外的收获,你必须有主动的额外的付出。

有了前两年“脱宅”的积累,2009年全年的每个休息日我基本上都在南京城里逛来逛去,与南京这座城市的感情也越发深厚。尤其是在经历了一些事情后,让我对人的情感有了更为深入的理解,这对我后面的生活产生了很多积极的影响。很多事情,即使不能多走一步,也应该多想一点。多想一点,也许就能让一个原本优秀的人变得更为卓越。

除了没事逛来逛去,我也把很多很多时间放在了南京图书馆。这一年看了很多闲书,包括铁路、艺术、建筑、地理、文学、数学、摄影、设计等领域。现在回想起来,真是怀念这段时间,可以肆无忌惮地把大块时间花在“不务正业”的事情上。看了这么多闲书,并不可能帮助我在这些领域中有所建树,但是对于我来说,人生的乐趣就在于不断地学习、不断地探索未知。有时候,时间就是用来浪费的。

2010年

我的第三位Manager是一个爱憎分明的人,我有幸成为他比较喜欢的下属之一,所以他给了我充分自主发挥的空间,也为我争取了很多很多的机会,甚至为了帮我争取一个去美国参加会议的机会,“强迫”另一位Manager退掉了去美国的机票,把参会的名额留给我。当然,更重要的是他在工作中给我创造的机会和对我的各种想法的重视和支持。那时公司也很鼓励微创新,我的各种微创新在他的帮助下都得以在团队内或产品中落地生根,这给了我极大的自信,也帮助我在部门内找到了属于我的位置。

机遇和挑战总是并存的,在这个开发团队,我负责了这个产品两个大版本中最重要的两个大Feature,从前期方案调研到最后开发实现,统统要搞定。还是得益于公司完善的流程和管理, 这两个版本软件做完以后,我完整了实践了两遍软件从需求到发布的完整流程,从中学到了很多的东西。同时,这两个Feature也涉及到很多跟美国开发团队以及国外一些第三方公司的打交道的事,所以又进一步提高了我跟老外们打交道的能力。这一段经历,不但让我在技术上有所收获,更重要的是让我学到了做事的方法,很多事情并不会自动朝着你想象的方向去发展,怎么才能推动事情往前迈步,既需要努力,也需要很多的技巧。其中最基本的技巧就是要合理计划、分解任务制定小的里程碑、踏实实践

这一年的业余时间花了很多在自由软件上,更多的参与到一些简单自由软件项目中去。再次提起Ownership一词,在自由软件世界里,你可以既是软件用户,也是软件的主人。当你以软件主人的心态去使用自由软件时,才会真正理解自由软件背后的理念,也才能从中收获更多的价值。

 

十年(上)

上周末是参加工作十周年,回南京与同一年进入公司的老同事们聚了聚,很开心,也有颇多感想。

对于我在Trend Micro的第一份工作,一直以来,我是心存感激的。从学校走向社会,从稚嫩变得慢慢成熟,回头去看,有很多人、很多事都值得感激。

总结一下过去的十年,顺便熬一锅心灵鸡汤。

2006年

离开学校,走进公司。趋势科技应聘经历里提到的那位在一面时给了我很多自信的面试官成了我的第一位Manager。放到现在,也许我不会说事无巨细、无微不至的Manager是一位足够Professional的Manager,但是作为职场新人,这样的Manager给了我足够的帮助。他对我的信任、给我提供的机会和帮助,都为我的成长提供了一个良好的环境。后来,我做过新人的Mentor、也带过小项目,践行了很多从他身上学到的东西。

公司提供的培训,帮助我理解了Development Process、Design Documents、Technical Writing、Internationalize & Localization、User Centered Design、Writing Secure Code相关的知识,并在短时间内都在工作中得到了实践,这些经验一直受用至今。虽然互联网公司并不适合照搬传统软件公司的开发流程,但是很多方法思路依然值得借鉴。

技术方面,虽然1999年我就装过玩过Linux,但一直到工作前对Linux都还处于基本不懂的状态。工作的前半年,我学习了Linux下的各种开发工具,从无到有独立完成了产品中一个GTK程序的开发,学会了修改了内核模块的代码和内核调试的基本工具。后面五年中用到的各种知识和技能中的一大半都是在这半年中积累起来的。学东西最快的途径就是看书加实践,学而不思则罔,学而不实践则很难真正把书上的东西变成自己的。

ServerProtect for Linux 3.0

我参与开发的第一个产品ServerProtect for Linux 3.0(图片来自网络)

公司让大家考了托业(TOEIC),并开始上英语课,还推行了一段时间英文会议。于是原先只出现在邮件交流中的各种“洋泾浜”英语,开始出现在日常的会议中,挂在了每个人的嘴边。这些并不完美的英语,却真正的帮助到了我,从这以后,基本上我就摆脱了“哑巴英语”的困境 。

英语课上,老师推荐了一部电影《Dead Poet Society》,在这部电影里,我看到了自己的影子,这部电影让我改变了很多。以Carpe diem的理由,我开始努力摆脱曾经自己给自己定下的条条框框,去尝试更多的“不可能”。

2007年

年初,我的Mentor也许是因为偷懒,让我帮他去上原本属于他的Effective Presentation培训。没有想到,短短一天培训中学到的一些基础的演讲技能、对“紧张”的正确认识以及对演讲前充分准备的重要性的认识,就帮助我从一个不敢在公开场合发言的人,变成了一个不太惧怕公开演讲的人。培训导师通过理论和实践帮助我建立了自信。

为了开源产品中的内核模块,我深入理解了GNU工程及自由软件哲学,研究了各种自由软件/开源许可证,并开始积极参与到自由软件社区中。

为了实践Customer Insight,生平第一次出差、第一次坐飞机。我一直以为那时自己做的产品其实没有太多实用价值,当看到自己的产品在客户的环境中真正发挥着作用时,自豪感优然而生。

因为“Carpe diem”,这一年,我的行为举止发生了很多变化。发展了不少的小众爱好:暴走火车地铁无线电,并因此结交了几位挚友。自己去参加CSDN的技术大会,开始关注Web 2.0。通过开发“豆饭”,开始与互联网开发结下不解之缘。通过参与UCDChina的活动,与本地互联网公司的设计师们建立了良好的关系。我的社交圈子在这一年中,扩大了很多,并且很多时候都是我自己主动出击,这在以前,我是绝对做不到的。

2008年

由于参与开发的产品已经在前一年完成并发布,工作角色从产品开发转为产品维护。这段日子是我的工作经历中最为灰暗的日子。首先,产品维护需要在有限的时间内解决客户的问题,我在学会了“沟通技巧”和“做事方法”的同时,放弃了对技术精益求精的追求。为了降低Resolution Time,我学会了忽悠,而不是去寻找Root Cause。其次,新的Manager强调学习做事方法高于技术追求,他让我在各种挫折中自己去学会在职场中生存下来的技能,但是各种挫折不断地打击着我刚刚积累起来的一点点自信心。

然而,这种种不如意,却只是成长的代价。我这一年的技术积累没有前两年那么多,但依靠那些被逼迫着学到的职场技能,加上各种机缘巧合,反而倒奠定了我在团队中的地位。然而“捷径”只是加速达到某些目标的一种手段,真正起作用的,依然是踏踏实实的每一步。

公司开始强调文化建设,难听的说法叫“洗脑”。也许是那个时候还比较Simple和Naive,这次文化建设的培训让我受益非浅。直到现在,我依然认同那时被灌输的思想:你需要让你个人变得更加优秀,才能发挥出更大的价值。

参加了公司的Home Building Project,这是公司与一个公益组织Gawad Kalinga合作进行的公益项目,去菲律宾盖房子(这个翻译其实不对,这是Home Building,不是House Building,盖房子只是一种行为,目的是帮助那里的人们拥有更美好的家)。第一次走出国门、第一次与来自不同国家和地区的同事合作、第一次与这么多小朋友近距离接触、第一次与生活在贫穷与自然灾害面前的人们面对面交流。过去了这么多年,当初的震撼已经慢慢的淡去,但留在内心深处的东西,也许会影响一个人的一生。

Home Building Project的合影

Home Building Project的合影

那时公司组织各种活动很多,加上那段时间我自己也参与了不少线下的活动,从中自己积累和总结了很多组织线下活动的技能。3月底自告奋勇为当时的Unix-Center网站成立一周年组织了南京地区的线下活动,活动虽然规模不大,但很成功,甚至还吸引了上海、无锡等周边城市的自由软件爱好者。这次活动也为后来成立Nanjing Linux User Group埋下了种子。

Unix-Center周年庆

Unix-Center周年庆