2022 年终总结

2023-01-03

如果说,早些年,我还是一个有趣的灵魂。那么,2022 年,应该算正式地迈入到油腻的中年人阶段。老婆,房子,车子,娃,在这一年终于都齐备了。开始上有老,下有小,离 35 岁中年危机也越来越近,不再关心诗和远方,取而代之的是柴米油盐酱醋茶。

有时候会想,如果 30 岁的时候,走到另一条叉路,人生又该是怎么样?有同事就选择润了。看着他们的朋友圈,看着另一条时空线,还是会有羡慕。比如说霸哥,永远年轻,永远(热)(泪)(盈)(眶)。

油腻的中年人其实是很 boring 的。2022 年就在这样的 boring 中度过。回忆起来,似乎就没有什么有趣的事情发生。

就说说,印象中每个周末都在干嘛吧。

年初的时候,有大概一个多月的周末都在练车。驾照拿了许多年了,然后就没再碰过。本本党不赶上路,先是找教练带着练了一阵,美团或者58,都能找到这类的练车服务,再然后租共享单车自己练了几次,等提完车就正式上路了。至于交规嘛,B站和 youtube 上面学的。

4 月份交房,然后看了几家装修公司,5 月份正式开始搞装修的事情。别人一般 3 个月装修就搞完了,结果我们家装到了年底才大部分工作完结。前期主要是装修公司不给力,一直在脱进度,搞到 9 月多还没完结,这时娃又出生了,我的精力没法放到装修那边。再接着,疫情又来了,这周自己住的地方被封,隔一周新房子所在的小区又被封,总之是干不了啥。再然后,宝宝又新冠了...好长一段时间事情基本没法推进,所以装修就这样一直搞到了年底。

装修选择了半包,全部主材都自己买,真是个很折腾的事情。装修期间的每个周末,要不就在看地板,柜子,看灯,要不就看窗户,封阳台等等等。水、电、木、瓦、油,如果再装一遍可能就轻车熟路一些。设计之初有一些不好的点,到后期都要很大成本弥补。随便敲一面墙,动一榔头,都是钱。

9 月份宝宝出生以后,基本上都是围着宝宝转。生活发生了巨大的改变。唉,这些细节,可能养过娃的,都能明白。没养过娃的,说了也没法理解。晚上两个小时一醒,睡不了一个完整的觉。饿了哭,拉了哭,不舒服就哭。月份小一点,还知道他为啥哭。到后来,反而是不开心就哭一声,哭一哭召唤爸爸。我家宝宝哭的又特别的用力,脾气很不好,冲奶粉慢一秒了就哭,哭得整栋楼都要听得到。都不能叫哭了,叫嚎!一嚎起来就是撕心裂肺,嗓子都搞哑几次,不敢让他哭。有个说法是,在他会叫"爸"之前,你得叫他好多遍"小祖宗"。

以前没结婚吧,可以打个游戏宅一宅,或者安静地看书,又或者去户外去浪...还可以相个亲啥的。后来结婚了吧,独处时间少了很多,但二人世界周末至少也可以吃个火锅,看个电影啥的。等有了娃了,并且娃还小,真的是啥都没有了。除了打疫苗,目前还没带娃出过门。啥都干不了,可想而知这日子得是有多么 boring。

练车,装修,带娃...能记得的周末就这些。

说完了生活,说说个人项目。

今年 shen-go 没有什么大的更新,后续应该也不会有太多更新了。把它和 cora 的代码彻底拆开了,减少了很多复杂度。之前让它们共用了很多设计,现在想来其实没必要。Go 本身是一个 high level 的语言,从 shen "翻译" 成 Go 其实没有多复杂:

  • GC 就不用管;
  • 闭包不用管,因为 Go 本身就支持了;
  • trap-error (shen 的异常处理) 可以用 Go 的 defer panic 实现;
  • 最新的 shen 内核连 currying 都自己处理了,不需要再实现;

就只有严格尾递归,以及 lisp 对象的表示需要搞一搞,严格尾递归用 trampoline 很好实现,剩下的几乎是纯的 code to code 的翻译了。

再来看 cora 项目。shen-go 是一个 shen 语言编译到 Go 的项目,用的 Go 实现。而 cora 是我自己设计的 lisp 语言,用的 C 实现,两者的定位很不一样。shen-go 是要遵循 shen 语言的规范的,而 cora 就可以由我自己天马行空地设计。用 C 实现,相应的复杂度就都来了,上面列出来的那些都得自己撸。

这个过程花了许多年,好在我把语言设计的大部分的内容都找到了答案:

  • [X] interpreter
  • [X] compile
  • [X] macro
  • [X] pattern match
  • [X] GC
  • [X] module
  • [X] concurrency model
  • [ ] type system

解释和编译就是用 closure as code generation,编译的优化可以用 top of stack caching;宏不再纠结卫生了,就用不卫生的过程宏;垃圾回收后面打算用 treadmill gc;模块就用简单的 elisp shorthand 那种缩写规则;并发模型去年已经想好了,algebraic effect,今年重新换了一种实现方式

既然想清楚了,剩下来的就是 coding 的事情了。虽然 GC 那块的 debug 会很 hard,这块总是能推进的。立个 flag 吧,2023 年的目标就是把自己的 blog 用 cora 实现!

opendarkeden 已经开源一年多了,还是仅仅的"把代码放出去"的状态,没有形成社区。这个项目其实我还是期待有更多的参与的,因为它是在拯救一个 dead 的游戏。截止目前几乎还是只有我一个人在提交代码。倒是有一些人在测试和提 bug,至少远胜于自娱自乐吧。2022 年最意想不到的一笔收入,是这个东西收到的一次"打赏",我还以为就一杯咖啡,结果远不止。

新年愿望是,2023年,写年终总结的内容,能够充实一些,更"有趣"一些,哪怕是油腻的中年人!

年终总结

HNS.to is a highly insecure way of browsing Handshake domains and should only be used for demo or educational purposes. Click to see preferable resolutions methods