# 2021-10: 老年玩家只会种田

继 Rimworld 之后，我又开始沉迷群星，这个周末保持着每天八小时的高强度游玩，不停的造建筑拿星球攀科研，跟女朋友讲解自己的宏观思路，遇到新奇的事件还会解说一遍。但是我一直有个困惑：前期都玩的挺好的，但是一旦跟别的国家碰上，开始外交和战争之后我就糊了，经常在各种操作之后导致自己被 10 倍以上战力的电脑玩家推平。

这些困惑随着新游戏的激动一并倾诉给了女朋友，她非常精准地指出了原因：“你就是只会种田！” 说完还列举了一大堆例子：玩饥荒只会建家种菜造肉丸，打 BOSS 打不过了就弃坑；玩 Rimword 只会造家搞大基地，开和平建设觉得后期没意思，难度稍微高一点就直呼打不过，弃坑；玩异星工厂也是，balabala。心里不服气很想反驳，但是又觉得她说的很有道理。我这个老玩家打的游戏已经从 CS，红警，星际，英雄联盟，怪物猎人世界一路退化到种田了，这么说并不过分。

跳出来想想，不只是游戏，我的工作也快退化成种田了。每周跟领导汇报种田的进度，每天跟同事画不同的规划格，时不时的把已经规划好的地格拆了重建，周报上就又多了不少 “重构” 开头的内容。其实有点对不住种田——因为我总是在规划，却很少付诸于行动让它变成现实，总是寄希望于别人或者以后的自己会来实现它，可问题在于别人并不乐意要帮你种田，而以后的自己已经在画新的田了。回想一下自己在青云的这些年，提出过多少构想，也多次主动挑担要去执行，结果往往是半途而废。前几年总是会觉得上面不重視，资源不足，团队不配合之类的，现在想来可能是自己的问题更多些。再想想历任班主任一再批评过的过于浮躁，好高骛远，不禁有些难受，这些毛病可能是永远也改不掉了。

立党在 <https://cha.fan> 上问了这样一个问题：“聊聊你的创业想法：你希望创造一家什么样的创业公司？”，我的[回答](https://cha.fan/questions/5mwGusWoGwEXFTrkffrp/answers/4uGcgo5MuvAwFTjpwRWd)是：

> 我个人的创业梦想是这样的：
> 
> - 开源：源代码完全开放，开源运作（比如说每月公布自己的盈利报表）
> - 有用：能够提高而非降低用户的生产力，从而提升整个社会的效益
> - 盈利：能够不依赖外部投资，有正向的现金流

既然说了是梦想，就是认识到自己目前没有实现它的能力。假如有一天，我真的成为了全职开源开发者，我真的能做好吗？会不会跟现在一样，挖了一个又一个的坑，却从来不去实现细节上的考虑，复杂的兼容这样真正困难的地方？我主导的项目会受欢迎吗，真的对用户有用吗，真的能如我梦想的一样提升整个社会的效益吗？一边这样想着踌躇不敢向前，一边却又不甘于现实，想扬名立万，想一朝成名天下知。夹在中间的我时而自认菜鸡一文不值，时而骄傲狂放天下唯我，看起来也是理所应当。

最后还是女朋友说得好：“想那么多干嘛，你玩得开心就好。”我琢磨了一下：我打游戏开心吗？是开心的。我写代码开心吗？是开心的。除了最后结局不满意之外，中间的过程都很好：打游戏被电脑吊打了，写的项目不温不火最后凉了。被电脑打崩了就选好角色，修改策略重开一个档，项目凉了就调整思路，重头再来，好像也没什么大不了的，是我自己矫情了。

有这功夫乱想还是赶紧开下一把吧，失败的多了，或许就知道怎么成功了。

---

## 在做

这周基本上搭好了数据迁移服务的架子，完成了 CopyDir 任务的分发和执行。下周会修复一些细节的问题，然后整理一下代码，这样后端这边基本上能够如期完成了。前端这边在尝试 Flutter 2 的方案，一直在跟 Dart 打架，他的体会是：“在 web 端几行代码解决的事情，在 flutter 里全部要自己实现”。

现在我们的前端看起来是这样的：

![](https://xuanwo.io/reports/2021-10/tasks.png)

丑到爆炸，不过值得期待。
## 在看

- 推友推荐的一篇文章，分享基于 Server-Sent Events 做实时日志的经验：[Realtime Log Streaming with FastAPI and Server-Sent Events](https://amittallapragada.github.io/docker/fastapi/python/2020/12/23/server-side-events.html)
- [Nushell](https://www.nushell.sh)，用 Rust 开发的 Shell，思路是将纯文本转化为结构化数据，目前来看迁移成本会很高
- [Hypercable](https://github.com/HyperCable/hypercable) 是 [Plausible](https://plausible.io) 的仿制品 (based on ruby)。其实我原本很排斥这种事情，认为这不利于开源项目的发展，但是 Plausible 作者曾经写过的话说服了我：这样的事正是开源的价值所在，因为项目开源，所以任何人都可以从你的项目中分叉，这就要求项目维护者必须持续维护，坚持不作恶，保证自己的这个分叉功能和体验上的领先，否则就有可能被竞争对手占领市场。
- Golang 社区的开发者调查[结果](https://blog.golang.org/survey2020-results)出来了，88% 的同学需要范型，而 58% 的同学想要更好的错误处理（除了函数式编程，我全选了）
- 三星的 [KVSSD](https://github.com/OpenMPDK/KVSSD) 很有意思，SSD 原生支持 KV 接口感觉挺有想象空间

---

下周再见！

![](https://xuanwo.io/reports/2021-10/naihu.jpg)