• 周末复盘 安全驾车

    这周的生活被之前发生的车祸打乱了计划。原本安排了一些朋友聚会和邀请小布丁的朋友来家里玩的计划都取消了。在事故后,我尝试告诉自己有些不好的事情是无法避免的,我应该做的是快速调整心态,向前看,回到正常的工作生活状态。

    我大概花了一天的时间来调整自己(非常感谢父母家人朋友的Support),又用了一天的时间来收集证据,完成事故的Sketch and Description和其他Paper Work。由于车辆前部受损有些严重,保险公司不确定是否值得修理,因此他们委托Copart下周把车拖走进行评估。

    之后本周剩下的时间一直在按照计划来陪小布丁玩,带着她一起看书,玩圣诞节的礼物,打《宝可梦朱紫》,跳JustDance2023。

    安全驾车

    正好借着这个机会,我反思了一下自己平常开车时需要注意的地方:

    • 尽量避免在天黑时开车
      • 因为我家附近的主路和高速路上都有路灯,所以我以前也不太在意这点。不过事后反思,如果是在白天,这场事故发生的几率或碰撞的损毁程度会小很多。
    • 避免开车时分神
      • 我平常一个人开车时,经常会听书或者一些音频课程。如果小丸子或小布丁坐在后面,我也会和她们聊天。以后还是要尽量避免分神,专心开车。
    • 开车时要尽量规范
      • 现在开了几年车,觉得自己开车熟练了,平时也会有松懈不规范的情况。以后也要多注意,比如规范使用指示灯、避免一些小的超速等问题。

    下周就要开始工作了,放假的时间总是转瞬即逝,真希望可以再多休息几天。

  • 2022 年终总结(生活篇)

    2022 年终总结(生活篇)

    比起今年的工作,感觉生活上的目标完成得更好些。回顾年初制定的大目标,希望多留出一些时间陪伴家人,再留出一点时间来给个人成长,可以说算是完成了80%。

    家庭生活

    今年一直在努力尝试改进Work Life Balance,虽然还是时常会加班,但我将留给家庭的时间更好的利用在组织家庭活动和陪伴家人上面。

    • 多组织有意义的活动
      • 预留一些时间来组织重要的节日及纪念日活动
        • 今年的中国新年、复活节、万圣节、圣诞节、家人生日和结婚纪念日等,我都花了些时间来准备活动,留下了很多美好的回忆。
      • 安排了六次以上的家庭外出活动
        • 比较值得纪念的包括去Isle of Wight,Brighton,Pokémon World Championship 2022,LegoLand(x 2),龙猫音乐剧等。
      • 计划(或参与)了六次以上的与在英国的朋友的家庭社交活动
      • 每周选一天在家工作(一般是周五),并且中午和小丸子一起出去吃Dim sum(完成度70%)
    • 改进家庭环境
      • 优化了饭厅和女儿房间的布置,增大了一些生活空间
      • 租了一个Skip,清理并扔掉了一大堆车库以及阁楼中没用的物品
    • 家人支持
      • 小布丁:
        • 带着她练习钢琴(完成度50%)
        • 开始教她学习编程,完成了两个游戏项目
        • 带她玩了几个游戏(包括宝可梦卡牌 ,Pokémon Legends: Arceus,Splatoon,KOF2022等)
      • 小丸子
        • 支持小丸子开始了自己的摄影事业(完成了四个客户)

    个人成长

    个人成长方面相对留出的时间比家庭要少很多,主要是维持和改进现有的习惯,例如健身、弹琴、写博客等。

    • 健身
      • 每周坚持打两次网球,外加一次随机户外运动 (完成度70%)
    • 弹钢琴:
      • 坚持每周上钢琴课,平均一周练琴3次 (完成度80%)
      • 今年考过了TCL钢琴一级考试
      • 练熟了大概10首曲子
    • 学习
      • 今年大部分学习的东西都是与工作技能相关的,下面三个是对生活有些正向反馈的课程。
        • 在豆瓣时间上听完了彭广林老师的音乐课《古典音乐的奇幻之旅》,对西方古典音乐的框架有了一些基本的了解。
          • 平时会多听一点古典音乐
          • 退订了Spotify,换成了Tidal和Roon音乐服务
        • 在《得到》上完成了一门职场写作课
          • 虽然课程的内容偏重于职场写作的场景,但是我在练习中还是受益颇多。比如,它帮助我打下了一些每天来坚持写博客的基础。
        • 完成了Unity官方游戏教程的基础课程
          • 这让我可以通过做游戏的方式来带着小布丁一起学习编程。
    • 新的习惯
      • 11月份开始坚持写博客
      • 12月份开始了一些少量的画画练习

    回看2022年,生活上虽然有时还是会手忙脚乱,但是整体上更加平稳,充满了很多精彩的回忆。对于2023年,我没有什么特别想改变的大目标。我希望可以把现在做的事情坚持下去,做的更轻松,更游刃有余。这样可以多出一些时间休息一下,来迎接下一个阶段的挑战。

  • 2022 年终总结(工作篇)

    今年牛津字典的年度关键词是“Goblin Mode”(哥布林模式)。字面上的意思是“一种毫无愧疚地自我放纵、懒惰、邋遢或贪吃的行为方式,通常表现为对社会规范或期望的抵抗”。生活中可以理解为“躺平”模式。

    感觉这个比喻还是蛮形象的。假设你已经升到40级,但穿着一身高级装备,回到新手村,每天在门口刷哥布林玩。不管出于什么原因,也算是一种躺平了。回顾一下自己今年的工作,想想和去年的工作状态比较起来,可能也算是半躺平了一年。

    2021年,我为升职努力了一整年。我到处寻找机会参与新项目,常常熬夜刷代码,遇到Oncall问题都冲在最前面解决。终于在今年1月份的评审中成功升职。之后今年整体就没有去年那么玩命了。项目上只是尽量把自己负责的部分做好,没有去主动接新的项目,甚至还把一些自己的客户、项目交给了别人。平时更没有那么拼命地写代码了。

    虽然我工作上的直接产出没有像以前那么多,但是工作的时间也没有明显减少(work life 还是很不balance)。多出的时间主要花在尝试做一些和原来不一样的工作上。

    1. 今年我带了两个Interns和三个新的组员。Intern的项目很成功,有一个已经入职了。其他的新组员也能够独立高效地在团队中完成任务了。(我也利用教他们的机会,将自己的一部分项目分给他们来lead了)
    2. 每周都和组员进行1:1沟通,尝试更多地了解他/她们,以及他们在工作中遇到的问题。希望能够营造出更加友好的团队氛围,并尝试帮助他们解决工作的Blocker。
    3. 阅读一些学术和其他公司的文章及报告,以了解相关领域的动向,衡量我们的优势和不足。并将其写成内部文档,以帮助大组及相关部门了解我们的不足并制定相应的策略。
    4. 根据公司及大部门的优先目标,计划一个规模较大的项目。目标是在未来的2年内完成,明年会做一些可行性的尝试,并将其分解为几个可执行的中小项目,找到合适的负责人来Lead。

    今年做的这些事情和我升职前做的很不一样,有些是我不善长的,还处于学习中。所以虽然今年没写很多代码,也不能算是完全躺平,可能更像是在“转职”中。虽然我觉得这些新工作对组织很重要,但它们并不一定能很直接的反映到工程上的Metrics中,所以我对今年的年终考核结果心里也没底。但是不管考核结果如何,我也不太想回到2021年为了升职而拼命的状态。毕竟快40了,真是熬不动夜刷代码了,应该努力为职业的下一个阶段做好准备。

  • 世事无常

    今天白天去宜家玩了一圈,回来的路上又去了家中餐馆大吃了一顿。晚上开车回家的路上起出一切顺利,但在大概距离家10分钟的地方出了交通事故。幸运的是双方人员都没受太重的伤,不过给小布丁吓的够呛。

    在英国开车六年了,虽然有过一两次小刮蹭,但这还是第一次撞车。事发后警察在10分钟内赶到,确定双方没有伤亡后,便让双方交换信息,回家各自联系自己的保险公司。我找了一个AA道路援助,帮我处理了一下车,确认安全后,慢慢的开回家了。

    刚刚花了1个多小时来提交保险事故报告。我车的左前部撞上了对方车的右后方,双方的车都需要大修。由于当时我是在环岛内行驶,对方以很快的速度切入环岛,所以我觉得大概率应该不是我的责任,但最后结果要等双方保险公司来协商决定。

    我的车
    对方的车

    现在凌晨两点多了,但还是很难入睡。脑中一直在回放事件的经过。一方面有些懊悔,回家其实有两条路,在路口时只是一念之差,如果选了另一条路就可以避免这场事故了。另一方面又很庆幸,当时如果时间相差快一秒,结果会是对方的车头撞上我车的后侧方,那小布丁和小丸子就有可能受伤了。

    上周在国内的爸妈都得了新冠,现在退烧了,但是有些咳嗽。昨天看到国内很多关于“白肺”的新闻又很担心。今天早上我还在感慨人生的世事无常,没想到晚上我就亲自体验了一下。

  • 女儿的第一把机械键盘

    女儿的第一把机械键盘

    今年我送了女儿一把机械键盘作为圣诞礼物。原本想买NuPhy的键盘,因为它的颜色十分可爱,但很可惜圣诞节前从美国寄不过来。最后选了另一款Keychron的K3键盘。

    Keychron K6键盘

    Keychron K6的尺寸和重量和我的HHKB差不多,但是边框非常窄,所以显得更加轻巧一些。这次给小布丁选择的键盘轴是入门级的棕(茶)色轴,手感和声音都很不错,尤其是声音听起来很舒服。我之前换成了HHKB的Type-S(Silent Switch),一直都很怀念这种清脆的触键声音。

    当然,小布丁最喜欢的还是K6的RGB彩灯背光。键盘背光支持十多种模式,大致可以分为三类:第一类是键盘连接后彩灯一直闪烁,第二类是连接后不闪烁,但按下按键后,彩灯会全键盘闪烁,第三类是,按下按键后,只有按下的键会闪一下。我原本以为小布丁会选很夸张的第一类,结果她说她更喜欢比较低调的第三类。

    练习打字

    送小布丁键盘作为礼物的主要原因是想鼓励她学习编程。为了可以更有效率的做编程练习,我打算让她先练一下盲打。这次专门给她定制了一个Gamification(游戏化)的练习方式,来激励她尽快学会。

    我制定的游戏任务是“升级彩虹键盘”。为此我又配了一套半透明的Pudding KeyCaps(布丁键帽)。K3键盘的原厂键帽为深色且不透光,所以样子一般。但如果配上白色半透明的键帽,样子就变得帅气多了。

    我为小布丁选了一个专门练打字的网站,它提供很系统的盲打练习,每次练习两个字母,并循序渐进的配合一些小游戏。我和她约定,当她以全五星通过每个字母的练习时,我就会给她换上相应的布丁键帽,等到她完全掌握了盲打技巧,她的键盘就会升级成彩虹键盘了。

    目前小布丁对这一任务挑战非常感兴趣,希望她可以坚持下去,在半年内掌握盲打技巧。不知道女儿将来会不会像我一样成为软件工程师,但希望这把键盘可以很好地陪伴她的计算机学习。

  • 周末复盘 圣诞节+陪伴时间

    这一周基本都在围着圣诞节“打转“。今年比去年晚开始了两天做准备,结果导致最后两天忙的手忙脚乱。直到23号才包好所有礼物,寄出最后一张圣诞卡片,完成了周围邻居朋友的拜访。

    尽管这周都在紧张与忙碌中度过,但是一家人还是度过了一个平和喜悦的圣诞节。我们在温暖舒适的家中,一起吃着糖炒栗子,一起玩游戏,一起开心的拆礼物。圣诞节当天下午还一边吃着北京烤鸭,一边看了一部圣诞电影。

    增加女儿陪伴时间

    这一周虽然在家,但是一直在忙着准备圣诞节活动,感觉自己并没有花很多时间来陪伴女儿。

    改进:下周我希望可以多花一些时间来陪小布丁玩。

    • 小布丁正好收了很多玩具礼物。我可以让她每天选一样玩具,然后我陪她一起玩。
    • 小布丁平时很喜欢跟我“打闹“,我争取每天陪她打嬉戏打闹一会儿。
    • 圣诞节刚升级了Just Dance 2023,下周我要和她一起跳3次舞,也算是帮助我多运动一下。

    这周除了安排圣诞节活动之外,最有成就感的事情就是带着小布丁完成了她的第二个游戏编程项目,并按照计划打完了《宝可梦:阿尔宙斯》。但是,其他的计划(比如画画、练琴、读书)都停滞了😳。今年还剩下最后一周,要继续加油。

  • 圣诞全家福

    每年在拆礼物前,我们都会在圣诞树前照一张全家福。小丸子之前听女儿同学的家长说,他们每年都会去Studio拍摄一组“圣诞照”。受到这个Idea的启发,我们把客厅稍微布置了一下,打算尝试在家拍出一组很专业的全家福。

    首先,今年买了一棵真的圣诞树,比往年的大一些,可以挂更多的装饰物。其次,小丸子在网上选了两张圣诞节的背景布,挂在墙上。一张以圣诞节夜晚的窗前作为背景,另一张是以圣诞节户外景色作为背景。灯光上,这次只打了两组灯,一个主灯以45度角照人脸,另一个灯在侧面照背景。受到空间的限制,这次没有用第三组侧光灯照人的侧面,和在身前放置反光板。

    下面是今年选出的两张全家福。的确加上灯光和背景布后,要比往年自然光拍出的效果好的多。我更喜欢以圣诞街景为背景的那张照片。背景布上的树很好地和前面的圣诞树融合到了一起,而且布上印出的光斑也显得很自然。另一张圣诞窗前的效果也还可以,但是背景看上去没有另一张那么真实。

    昨晚邻居来送礼物时,小丸子还给他们照了一组照片,他们也觉得很专业,还说明年还要来照。我在想如果地方可以再大一点,多准备几组背景布和衣服,小丸子明年真的可以去尝试一下拍摄家庭圣诞照。

  • 圣诞节吃糖炒栗子

    圣诞节吃糖炒栗子

    今天是圣诞节前的平安夜,小丸子做了很正宗的糖炒栗子,一家人吃得超级开心。

    小时候北京冬天街头有很多卖糖炒栗子的小贩。大栗子热呼呼的,软糯甘香。不过虽然我很喜欢吃,但是我很少自己剥栗子。因为我的指甲很短,每次都要抠半天才能收集到几颗小碎栗肉,而且还要弄得一手黑,粘粘乎乎的。所以在家时都是妈妈负责剥栗子,我只负责吃😊。

    上大学后住校就很少吃糖炒栗子了,到了英国后就更没机会吃到了。在英国一般想吃栗子时,会去超市买那种真空包装的栗子。这种栗子大都是水煮的,虽然也很甜软,但是没有炒栗子的甘香气味。不过用来做板,比如栗烧鸡还是挺方便的。

    另一种类似糖炒栗子的小吃是Marron glacé(糖渍栗子)。它的做法源于法国南部和意大利北部,先用糖水煮栗子再风干。我叫它冰糖栗子,因为栗子外面都挂了一层厚厚的糖霜,里面是甜腻腻的,入口即化,小布丁很喜欢吃。

    几年前去日本玩时,小丸子在超市买了一包“天津甘栗”,她说从没吃过这么好的糖炒栗子,不但味道香甜,而且每颗都超大饱满。回到英国后她就开始尝试自己做。从一开始使用比较简单的烤箱做法,到现在使用的“开口”蒸加油锅糖炒法。

    其实炒栗子的过程并不是很复杂,但问题是炒好的栗子总是不好剥皮。之前不管用什么方法做,栗肉总是粘在内皮上,需要一点一点的剥。她尝试了各种方法,比如控制栗子切口大小,盐/糖水煮,控制炒制温度等,但都不起作用。后来终于发现问题出在栗子的品种上。

    之前的栗子都是从英国超市或街边水果摊上买的,怎么做都不是很好剥皮。有一次无意中在一家中国超市买了一袋栗子,做完后发现超级好包。炒制时栗子皮已经裂的很开了,剥皮时就像在拆礼物,把两边的外皮一拉就好了,基本上每一颗剥出来都是完整的。

    很高兴小丸子解锁了糖炒栗子的技能树,这样每年冬天都可以在英国吃到正宗的糖炒栗子了。我打算把它定为每年我们家圣诞节的传统食物。希望这家中国超市可以一直经营下去。

  • 圣诞大餐2022

    今天一家人一起去吃了今年的圣诞大餐。和往年一样,这次还是选择了小镇旁边的一家酒店内的餐厅。选择去酒店吃圣诞餐有两个原因,一是过节时家里只有三口人,还是觉得有点冷清,喜欢去人多的地方感受一下圣诞节热闹的气氛。二是虽然想尝尝英国的圣诞节食物,但只是意思一下就好(因为一般都很难吃),最好还是可以尝试一些不同风味的食物。

    这家酒店每年都提供圣诞自助餐,除了传统的英国圣诞节食物外,还有一些现做的日本、意大利、印度和中国的特色小吃,完美地满足了我的需求。

    小布丁现在很有主见,一般都自己来决定吃什么食物。这回她又一次展现出了被英国饮食文化长期影响的后遗症。面对这么多的好吃的东西,她的选择居然是头盘蔬菜条和面包,之后接着一盘Penne Pasta,最后再来一个Yorkshire Pudding加一点烤蔬菜😓。

    当然小布丁之所以这样选择还有另一个原因。她认为圣诞大餐中的食物部分不是很重要,而之后的甜品才是重中之重。她之前吃的很少主要是为了后面的甜点大作战保留实力。最终她以7种甜品外加两个冰激凌球的骄人战绩结束了今年的圣诞大餐。

  • 游戏编程项目2:存钱罐APP

    游戏编程项目2:存钱罐APP

    这周终于和女儿一起完成了她的第二个编程项目,一个简单的存钱罐APP。这次之所以选择这个APP主要有两个原因。第一,之前的游戏项目有点过于复杂,导致小布丁在后期兴趣下降。我希望做一个简单的APP让她从始至终都会感兴趣并参与其中。第二,我希望做一个她平时可以使用的APP,这样可以增加她的成就感从而增强她学习编程的积极性。

    存钱罐APP的基本功能

    这个项目主要是来模拟一个小朋友的存钱罐,有两个简单的核心功能,存入硬币和取出硬币。为了练习之前学过的分支语句,我还增加了一个选择硬币种类功能。

    Coin或Food

    当我们设计这个App时,小布丁不喜欢在APP中显示Coin和Money的字样。因为她认为Piggy不应该吃“Coin”,而是应该吃“Food”。这是为什么这个APP叫做“Hungry Piggy”的原因。

    我很喜欢这个idea。虽然我希望小布丁尽早学习管理自己的金钱,但平时我又不太愿意在她面前提钱,因为我不想让她过早地将注意力集中在钱上面。我觉得对于一个小朋友来说,与其让他/她每天来数自己有多少硬币,不如让他/她来数数小猪肚子里有多少食物。

    编程练习

    可能是之前几次的编程概念学习帮助小布丁对编程语句有了一些基本的理解,她很顺利地完成了这个项目中的编程任务。这次她主要实现了两个逻辑:

    1. 针对存钱和取钱的两简单的负值运算

        foodNumber = foodNumber + foodBox;
        foodNumber = foodNumber - foodBox;
    

    2. 根据食物的类型来更新UI和运算单位的分支判断

        if (foodType.text == "BIG")
        {
            foodType.text = "MID";
            foodBox = 0.1f;
        }
        else if (foodType.text == "MID")
        {
            foodType.text = "SMALL";
            foodBox = 0.01f;
        }
        else if(foodType.text == "SMALL")
        {
            foodType.text = "BIG";
            foodBox = 1.0f;
        }
    

    美工设计

    这次美工上花了不少时间。一开始我计划主要关注于编程,用一个单色界面加两个Button就好了,不打算花时间来美化。结果小布丁觉得很丑,于是做了两天就没兴趣了。这也是为什么我之前开始练习画画

    这个项目有两个地方需要一些美工设计。一是APP的整体主题,小布丁很喜欢紫色,所以主题使用了渐变紫色调。二是APP的图标。小布丁设计了第一个版本,图标是一只绅士小猪,带着复古的单片眼镜,背上拖着一张印有女皇头像的钞票。经过反复协商,最后我们将其化简为一只存钱罐小猪,上面有一个下落的苹果。

    Ship it!把项目做完

    这段时间我一直在和小布丁强调我们的目标是要完成这个项目。我希望让她明白,在现实世界中完成比完美更重要。为此,我除了让她参与编程外,还让她时常充当项目经理(PM)的角色。比如告诉她,我今天有半个小时和她来做这个项目,并让她来决定我们应该去优先做什么,不去做什么。

    为了最终让她理解什么才是完成项目,我还带着她做了一个简单的页面来介绍这个APP,并把它上传到了苹果的App Store上(还在等待App Review)。我希望她能够体会到,对于工程项目来说,做出一个Prototype只是第一步,而把这个Prototype变成用户手中的产品,还需要花费更多的时间和精力。

    复盘思考

    1. 我感觉小布丁开始对使用编程来解决问题有了一些基本的理解。这种通过找到一个她感兴趣的项目,将其分解成她可以上手的子问题,带着她针对每一个问题单独练习编程,最后再合起来完成项目的学习效果很好。

    2. 我发现自己很Enjoy和小布丁讨论游戏APP的功能和设计。因为她的想法非常的天马行空,有很多新奇有趣的Idea。

    3. 看小布丁打字太痛苦了。我打算在开始下一个项目前让她加紧练习一下盲打,这样可以大大加快编程练习的效率。

    4. 虽然这次我练习画画对设计图标有些帮助,但感觉实际上用不到很专业的技能。我只需要一些基本的美工能力,可以实现出小布丁设计出的样式就好了。

    小布丁上周的零花钱余额为£26.01,昨天刚用了自己的零花钱给我和小丸子买了圣诞礼物。现在她还有£17.01,很开心看到她在使用我们做的APP来Track她的零花钱。