summary

2023 年年终盘点

即将迎来 2024 年,我的生活也发生了不多不少的变化,有亲人的离开,也有新的结构性的变化。所以,还是要总结一下这纷乱的一年。

今年的年度盘点以 Q&A 的方式进行,问题来自于 Obsidian CEO Kepano 的 40 个年度问题,并进行了一定的拓展。

过去的 2023

我今年做了哪些之前从未做过的事?

连续半年组织线下活动算一个吧。我虽然过去也做过一些运营的事情,但没有重到需要我自己策划一整个流程的工作。

但今年在做 LLUG 的时候,我自己完成了整个活动的设计、推动、落地,成就感满满,产出满满。还是比较开心的。

我有没有遵守年初时和自己许下的约定?

没想起来自己年初下的哪些约定,从新的一年,可能要开始写一下自己的新年预期,然后在年末的时候重头回来 Review。

你身边有人生孩子了么?

没有

你身边有人去世了么?

外婆去世了,挺伤心的,但,也无可奈何。终归是留不住。

你去了哪些城市/州/国家?

今年因为做 LLUG 线下活动,还是去了不少的地方:上海、深圳、成都、杭州。五月还开车去了淄博。

明年你想要获得哪些你今年没有的东西?

更多的视频观众吧,今年本来也把这个设置为目标,但今年其实没有更新太多的内容。更新了几期 AMA,然后就断掉了。好在找到了一些不错的选题方向,最近要把视频录制起来,新的一年开始继续发视频。

今年的哪个或哪些日子会铭刻在你的记忆中,为什么?

  1. 2023 年 8 月 22 日,结婚纪念日,这天去领了证。
  2. 2023 年 12 月 20 日,外婆去世的日子。

你今年最大的成就是什么?

把 LLUG 这个品牌做起来了,虽然可能不是很大,但参与者们整体的体验感都还不错,大家玩得很开心,也愿意继续参与。

你今年最大的失败是什么?

没有处理好母亲和老婆之间的关系,这里还需要继续努力,让家庭更和谐。

你今年还遇到过哪些困难?

坦白来讲,大的困难不多,更多都是一些精神内耗,算不上困难吧。

你今年是否生过病或受过伤?

没有生病也没有受伤,这点还挺好的。

你今年买过的最好的东西是什么?

  • 车,出行更方便了。半年跑的不多,也就 4000 公里左右(主要还是下半年没太开车出去玩,平时都是市区内的。)

谁的行为值得去表扬?

暂时好像没有特别关注到这部分,也回想不起来

谁的行为令你感到震惊?

暂时好像没有特别关注到这部分,也回想不起来

你大部分的钱都花到哪里去了?

人情相关的支出。

有什么事让你感到超级、超级、超级兴奋?

AI + Hackathon,AI 本身我就在关注。Hackathon 可以让我快速熟悉一个新的技能,二者结合起来,可以让我有很多不一样的输出。

哪首歌会永远让你想起这一年?

还真没有,今年听的歌基本上都还是老歌,没有听什么新歌。

与去年的这个时候相比,你是:感到更快乐还是更悲伤了?变得更瘦还是更胖了?变得更富还是更穷了?

从个人视角来看,变的更悲伤,因为年底的时候外婆去世了,有人离开了我(但也可能是锋终定律带给我的);变得更胖;变得更穷(自己出了彩礼钱给老婆,一夜返贫)。

你希望自己能做得更多的是什么?

  • 更多的做好自己的知识管理,让自己的大脑可以进一步高效工作。
  • 更多的节省钱,让自己一年的开销变得更少。

你希望自己能做得更少的是什么?

更少的去看一些无用的信息和知识,让自己的精力可以进一步聚焦。

你是如何度过节假日的?

如果有出行计划,就会出去拜访亲友/旅行。但如果没有的话,我就会呆在家里写写代码,看看书啥的。

你今年坠入爱河了吗?

yes

你是否有讨厌某个你去年此时不觉得讨厌的人呢?

没有。

你最喜欢的电视节目是什么?

今年最喜欢的应该是各种喜剧内容,比如《一年一度脱口秀大赛》,能够让我在吃饭的时候快快乐乐的下饭,挺好。

你读过最好的一本书是什么?

《要钱还是要生活》

你今年发现的最好听的一首歌是什么?

《杀死那个石家庄人》

你今年看过最喜欢的一部电影是什么?

《关于我和鬼变成家人的那件事》,无厘头,但又很感人,特别是毛爸最后那一段自述。

你今年吃过最好吃的一顿饭是什么?

好像没有什么值得我特别记得的吃过的饭。

有什么是你想要且得到了的?

  • 天津摇号 + 车

有什么是你想要却没有得到的?

比如 OSMO Pocket?但其实我后续发现这个东西并不是我必须要的,所以就没有买。

你生日那天做了什么?

看书、写代码、去吃了个萨莉亚。

有什么还未发生的事,如果发生了,会让你的这一年变得无比满足?

家庭中的问题得到解决。for 老婆 & for 妈。

你会如何描述你今年的个人时尚风格?

没有风格,全年穿 Tee。

是什么让你保持理智?

读过的书 & 自我预期,知道自己虽然可以不理智,但代价是不小的。投鼠忌器罢了。

你最欣赏哪个名人/公众人物?

今年没怎么看名人传记,没有什么特别欣赏的名人、公众人物。

哪个政治问题最令你有感而发?

修宪吧。今年这一年政治上还发生了蛮大的变化。

你想念哪些人?

父亲、外婆。

在你新认识的人之中,谁是最好的?

王重,比我想象的要好,我们的关系也得到了缓和。

今年你学到了什么宝贵的人生经验?

  1. 消解自己的情绪;
  2. 学会团队合作;
  3. 减少对外的敌意。

今年每个月抽 3-5 个开心的时刻/大事件都是什么样?

一月:和老婆一起回焦作;自己开车从天津到天津到湖北再开回天津。

二月:ChatGPT-Feishu 开发&发布;和朱总、老高一起见了禅道的创始人。

三月:Segment Fault 的 Hackathon;龙蜥线下活动;给老高庆生;和张弛、陈洋一起吃饭了

四月:开 Model Y 去蓟县露营;配妈过生日。

五月:去淄博

六月:龙蜥线下活动、拍立得、云南之旅(昆明 、大理、丽江、泸沽湖)

七月:武汉活动、老婆做近视手术、逛宜家

八月:领证、Community Over Code workshop

九月:深圳活动、开自己的车去蓟县露营

十月:去吃玉泉饭庄、成都活动、开源年会

十一月:Hackathon、杭州活动、

十二月:李哲婚礼、外婆去世

能够总结你这一年的一句话是什么?

一切都是最好的安排,也是最坏的安排。

新的一年

做什么能够让自己变得更好?

每周运动 1 小时以上;

持续成长最大的瓶颈是什么?

  • 我自己的拖延症。担心自己做不好,所以会在一些重要的事情上持续拖延,反而不会让我的效果很好。
  • 我自己的过度承诺,预期管理的不好。给大家太高的预期了。

如果我有无限制的钱,今天将如何投资增加我的幸福感?

  • 给自己一个有书房、有健身房的房子,这样可以让我呆在里面看书、学习、Coding;也可以在累了的时候去锻炼。
  • 看更多的书, 以及思考。
a person sitting at a desk using a laptop computer

我的 Hackathon 心法

我是一个很喜欢 Hackathon 的人,除了会积极参与一些其他团队组织的 Hackathon,有些时候也会自己给自己模拟一个 Hackathon 来玩。

如果仔细问问我为什么这么喜欢 Hackathon,大概是你必须在一个有限时间内去完成一个你自己设定的目标。这个目标具有一定的挑战性,同时又逼迫你思考到底什么是重要的。我的几个出名的项目 —— Logoly、NESHouse、ChatGPT-Feishu 都是在 Hackathon 的阶段完成的。

对于我来说,一个 Hackathon 我一定会做的:

  1. 选择一个我不那么熟悉的技术栈:太熟悉的内容没必要在 Hackathon 的过程中去实现,放在真正的生产环节去迭代就好。
  2. 选择一个我不熟悉的目标:如果技术栈选择了一个熟悉的方向,则在目标上会选择一个全新的方向,这样有可能在 Hackathon 环节去做一个自己从未做过的事情,扩展自己的能力圈。
  3. 逼迫自己思考什么是重要的:Hackathon 因为时间和资源是有限的,因此一定要逼着自己反复的思考到底什么是最重要的?以及我如何在有限的时间内,达成这个最重要的内容的产出的目的。

通过这样的方式,我几乎每一次的 Hackathon 都会有全新的收获,无论是新的技能,还是新的产品,一定会有相关的产出,而这些就是我参加 Hackathon 的最核心的收获。

此外获得到的东西,都不过是 Bonus,有了最好,没有也完全可以接受。

red and silver beaded necklace

如何在 M1 mac 上安装 MySQL2 Gem

在 M1 的 mac 上安装 mysql2 这个 gem 的时候,经常会遇到如下的报错:

1 warning generated.
compiling statement.c
linking shared-object mysql2/mysql2.bundle
ld: warning: -multiply_defined is obsolete
ld: warning: ignoring duplicate libraries: '-lruby.3.2'
<strong>ld: library 'zstd' not found
</strong>clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [mysql2.bundle] Error 1
Code language: PHP (php)

根据提示,我们可以看到是 zstd 这个依赖找不到导致的编译失败。这是因为 mysql2 是一个 Native Gem,依赖了大量的系统组件,如果我们没有对应的系统组件,就无法找到。

但实际上在我的系统中已经安装了 zstd,只是在 mysql2 的构建过程中找不到。

d2b5ca33bd970f64a6301fa75ae2eb22 3

要解决这个问题有几个思路:

  1. 在构建时能找到 zstd ;
  2. 在构建时指定 zstd 的位置。

这里我选择第二种方式:

gem install mysql2 -- --with-mysql-config=$(brew --prefix mysql)/bin/mysql_config --with-ldflags="-L$(brew --prefix zstd)/lib -L$(brew --prefix openssl)/lib" --with-cppflags=-I$(brew --prefix openssl)/include
Code language: JavaScript (javascript)

通过 -- -with-mysql-config 的方式,可以在安装时指定构建的参数,从而实现让 gem 构建时使用我们设置的路径,从而完成 gem 的安装。

d2b5ca33bd970f64a6301fa75ae2eb22 4
wrapped gift box

一些适合送给小朋友的礼品

我的两个表姐都生了小朋友,大表姐生了一个女儿,二表姐生了一个女儿和一个儿子。作为舅舅,我希望每年都送他们一些礼品,一方面让他们记得我,另一方面,也算是帮助身在焦作的他们看到一些一线孩子看的书。(当然,这些书未来当我有了孩子,也会同样买给他,让他看)。

记录下来,是为了方便你在遇到类似的问题时,有的参考。

已经送过的礼品

图书

  • 新概念英语》:虽然目前教育提倡学中文,不断在降低英文的比重,但我自己作为一个英文的受益者,还是希望下一代能够学习英文、学好英文,去看看这广袤的世界。
  • DK博物大百科》:DK 大百科声名在外,希望博物大百科可以帮助他们理解这个世界的多样性。坦白来讲,我觉得 DK 系列都很值得作为礼物送给小朋友。
  • 小亮老师的博物课》:当时小亮老师比较火,加上博物课本身是我比较希望小朋友了解的,就直接买了一套。现在回过头想想,可能和 DK 博物大百科冲突了。
  • 图说天下·国家地理系列:走遍中国》:焦作是一个小地方,如果他们未来上大学也在省内上,可能终生走出河南的机会不多。但走遍中国系列的图书,可以让他们知道原来中国这么大, 他们知道世界之大,便有走遍世界的可能。
  • 大英儿童漫画百科全书》:这是我买的最早的礼物,当时没有买 DK大百科主要是怕他们看不懂。
  • DK 文明百科全书》:专注在历史领域的图书。DK 大百科是真的很适合当礼物送。。

玩具

  • 乐高

希望送的礼品

  • 性教育相关图书:我国的学校里目前性教育依然是禁忌,则通过家庭的方式来补充是必要的。我也希望选择一些性教育的图书,送给他们,帮助他们建立正确的性观念,保护好自己。
  • 财商相关图书:我从小就没有接受良好的财商教育,很多信息都是成年以后自己慢慢学习的,希望他们能够不走我的老路,在更早的时候,就能够接受到相关的信息。目前打算购买的图书包括:《小狗钱钱》、《富爸爸穷爸爸》。胭脂王推荐了《奇妙的盘算社团》,但我还需要自己先看一遍,再评估是否要送给外甥女和外甥。

2024.01.15补充

《奇妙的盘算社团》读完了,还不错。不过比较适合初中阶段的小朋友。他们已经建立了基础的人生观、价值观,这个时候看这本书比较好。

2025.01.10 补充

堂姐家的孩子出生了:

  • 生肖金手环(大概 1g )左右,第一次见面送的。
  • 金饭碗、金筷子、金勺子(大概 1g )左右,满月送的。
red and white square illustration

You Need or You Want?

由于常年有信息焦虑症,所以我订阅了大量的信息来源,各种 RSS、公众号。但真正我能看到的是有限的。

这个时候就有一个问题需要回答:

我关注的这些内容,到底是我需要?还是我想要

理想情况下应该是我只看我需要的,并在我需要的基础之上,有 10% 左右的超额内容,这样确保自己既没有被海量的消息打爆,同时也没有陷入在信息茧房里。

不消费无用信息便是一个尝试

100 多个频道,得干掉一些。

d2b5ca33bd970f64a6301fa75ae2eb22 1
pumpkin squash decor

纪念外婆


早上妈给我发了条消息,说外婆不在了。

d2b5ca33bd970f64a6301fa75ae2eb22 2

马上买火车票,安排好今天、明天、未来几天的事情,排好优先级,然后静待晚上的车回焦作。


我算是外婆最待见的孩子。由于三个舅舅和大姨生的都是女儿,也都是独生子女。我这个小女儿的儿子就成了外婆最喜欢的孩子。再加上小时候家里的条件不好,我常常在周末被送到外婆家度过。

有很多美好的记忆:

  • 外婆家的院子,放满水,让小学的我在里面玩水;
  • 外婆在院子里洗衣服,我在院子里玩;
  • 外婆在院子的房顶晒西瓜酱,我给外婆帮忙;
  • 每次去外婆家,外婆都要给我做好吃的;
  • 在我小时候的冬天,焦作下了雪,外公外婆带我去人民公园玩,还给我做了个简易的雪橇,让我滑着。
  • ….

还有很多我不记得,但外婆记得的片段:

  • 外婆问我,要不要改姓买(我外公姓买),我说不要,男孩子要跟爸爸的姓,女孩子才跟妈妈的姓。
  • 外婆问我,她和我奶奶都掉进河里了,我先救谁?我说我谁都不救,因为我不会游泳,我打 119。
  • ….

所有的一切美好的回忆,涌上心头。


两周前因为堂弟结婚,我回了趟河南。那时候外婆已经住院了,不过只是因为胃病,在医院已经住了有几天了。刚好我回来,还见了她两面。可惜没有拍照。

后面再回来,就是外婆因为吃了中药,上吐下泻,直接休克,被送进了 ICU,我也是连夜赶回来。

没想到再回来,就是参加她的葬礼了。


我以前有给外公外婆拍照的习惯,因为我不知道他们什么时候会离开我们。结果发现,似乎只有我有拍照的习惯。结果现在我可能成了拥有她照片最多的人。

如果你去看望老人,我也建议你也可以给老人们拍照。因为你不知道什么时候就再也和她们无法相见。或许这次见面,就是你们的最后一面。

未来我可能会选择买拥有更好相机的手机,不为别的,只为能够留下亲人、友人的美好的照片和回忆,这些照片,会成为伴随我们未来一生重要的 Moment。


想着以后我就没有外婆了,曾经那么爱你的老人也不在了。泪又留下来了。


一些人在火车站的情绪,没有主题,只是任由情绪肆意的挥洒。以自己的情绪,纪念外婆。

red and white square illustration

不消费无用的信息

今天注意到,我自己在消费 Youtube 上关于 Tesla Model 3 的视频信息。

但实际上,我不应该消费这个信息,因为我已经在今年买了自己的第一辆车,今年内大概率是不会需需要买车了。在买车应该是在 2-3 年后,有了自己的房子才会考虑买电动车。

此刻我对于 Tesla Model 3 的任何信息消费都是无意义的、超出我需要的,除了会增长我自己想要购买 Model 3 的欲望之外,不会有任何的变化。

但现实是我不可能在短时间再买车。

so, 答案就是,我不应该消费这些信息,直到我的又一次需要去购车时,再重新关注和了解这些信息。

嗯,应该取关一些公众号、Up 主,控制自己的信息摄入了。

pile of assorted-title books

我的投资理财书单

以下这些书单是我认为和投资理财相关,要看的书。部分书有书摘,你可以点击链接查看书摘。

入门

经济学

投资与生活

投资基础

股票 & 基金

其他

除了上述的图书以外,本站的读书笔记分类中还有一些投资相关的书摘,供你参考。

red and silver beaded necklace

如何自定义 Docked?

我在之前的文章 使用 Docked Rails CLI 简化 Rails 的开发 中介绍了 Ruby on Rails 的 Docked 程序,并提供了一个我自己的定制版本。

这里来和大家说一下怎么自定义 Docked 镜像,从而构建一个适合你自己的镜像。

Fork Docked 项目

At first ,你需要 Fork Rails 官方的项目

https://github.com/rails/docked

Fork 项目到你自己的名下后,你可以修改一下他的名字,改成适合你自己习惯的名字(比如我就改成 Runs 了,Docked 对我来说太容易打成 Docker 了)。

修改 Dockerfile

Docked 最核心的其实就是 Dockerfile ,你可以修改你 Fork 来的项目,并在 Dockerfile 当中添加必要的依赖,引入新的资料等。

比如,https://github.com/bestony/runs/commit/d930a5d6fc389cb6fa8e9f7c41947d01b000da95这个 Commit 就是为了在 Dockerfile 当中添加 PGSQL 的配置,以实现在使用 rails new 命令时,可以选用 PGSQL as DB Backend。

修改 Ruby 版本

可参考:https://github.com/bestony/runs/commit/31fabe5f914d931834b0e12797b14d76bf56d162

修改 Node 版本

可参考:https://github.com/bestony/runs/commit/5969cc4ee5c0bf8503ebdab5664f365b6719843e

修改编译脚本,上传镜像

修改完成 Dockerfile 后,接下来你需要修改 Docker镜像产物,以便于你自己在实际使用过程中,直接使用你自己的 Docker 镜像。

修改 https://github.com/bestony/runs/blob/160fe165db7abecc3229be417b15473dcd3aec9f/.github/workflows/docker-publish.yml#L41 的 tags 为你自己的,格式为 ghcr.io/{你的 ID}/{你的仓库名}

修改好之后,只需要提交 Commit ,等待 Github Action 的自动构建即可。

修改 Readme

镜像构建结束,你只需要修改 Readme 中的安装配置命令,这样在后续使用时就不用自己再修改了。重点修改的内容包括 ailas、镜像名以及底部的启动命令。

d2b5ca33bd970f64a6301fa75ae2eb22

总结

通过对 Docked 的简单修改,可以实现快速构建一个属于你自己的开发环境命令,帮你优化自己的工作流。

gmail

Gmail 的一个搜索小技巧

很久没有看 Gmail 了,堆积了一千多条消息。于是今天上午抽了半个小时,清理了一下邮箱。

RaiseByTurtles 中找到如何筛选出所有没有标签的邮件,我使用的是下面这个 Query

-has:userlabels -in:sent -in:chat -in:draft -in:inbox
Code language: CSS (css)

通过这个 Query ,我就知道我其实还可以使用 - 的语法来在 Gmail 中搜索邮件(过去我几乎只用 is:unread [query] 来搜索所有包含某个关键词的我未读的邮件)。

在清理过程中,我就可以不断的在其中去叠加一些关键词,来实现,干掉那些已经失效的邮件,比如,通过下方的 Query 就可以实现屏蔽掉所有没有标签且不属于 Substack 和 zhubai 的邮件,从而避免误伤到我订阅的 Newsletter。

-has:userlabels -in:sent -in:chat -in:draft -in:inbox -substack -zhubai
Code language: CSS (css)