pile of assorted-title books

重读《把时间当作朋友》

在今年的3月份时,我读了李笑来的《把时间当作朋友》,并写下了一些书摘。到了七月份,因为可能的一些变动,我决定重读这本书。

如何评判李笑来?

他是个很有争议的人物,但于我而言,我认为他做的一些事情依然是值得我学习的,比如写作、比如读书、比如自学。在我看来,我目前和他相比相差很远,那么其间的差距就值得我去学习。择其善者而从之,其不善者而改之。

juju4

上面这张图有点「冥想」的意思,冥想是一个我尝试了很多次,但始终没有做好的事情。我一直希望在深圳找到一个合适的线下的冥想练习的活动,实地体验一下冥想。

我自己对于冥想的理解偏向于,冥想让我们从无意识的思考,变为一个有意识的思考。

第一个原因是人希望自己的欲望马上得到满足的天性。一个确定的事实是,几乎每个人都有无穷无尽的欲望。虽然每个人都知道,不是所有欲望都能被满足,但人们仍然不会放弃追逐尽可能多的欲望。

人是多欲望的,我自己也是,这是我自己一直以来的痛苦。想要的太多。

要想跳出去倒也简单。拿出一张纸,将其划分为左右两半,然后做两个列表,左边是“我有的”,右边是“我要的”,逐一罗列。完成后要尽量客观地判断:先划掉“我要的”当中那些无法用“我有的”换取的;再仔细判断在剩下的能用“我有的”换取的那些“我要的”之中,哪些是必须的、必要的、重要的、不可或缺的,并在其上做重点标记。偶尔会有一些“我要的”无法用现在“我有的”换得,却又是必须、必要,甚至不可或缺的,这需要我们认真考虑用什么样的手段再积累一些“我有的”,从而有足够的资本换取那些“暂时换不到但极其想要的”——或努力勤奋,或投机取巧。

学会用已有的东西去置换没有的东西。

最好时常把自己的一些念头记下来,然后与这几条现实对照,看看它们是否与这些现实相符。之后,你会和所有这样做过的人一样,发现自己常常在不知不觉之间被一些实际上完全不现实的念头所左右。这是正常的。但是,通过不时地记录、思考与反省,你会越来越善于甄别那些不现实的念头,进而摆脱它们的影响。这就是差别。很多人一生都不知道自己究竟有多么不现实。之前提到的“既勤奋又懒惰”的人群,基本上都是把这些现实当作老生常谈的道理——视而不见、听而不闻、从不记录、从不反省,才常常作出荒唐的决定,最终堕落到那分田地。

没有试过记录自己的念头,写日记时偶尔会记录一些。可以试试看记录念头。

close up photo of tabby cat

我有猫了

ijz28
小猫

楼下买瓜,小卖铺老板家的猫生了小猫, 便带了一只猫上来。

一直以来,我都不太敢养猫,究其原因,是我不愿背上这个责任 —— 一个生命的沉重,特别是我自己还处在颠簸不定的时候,总担心自己会把他给一不小心弄死了。

猫咪如果一直长大,倒也罢了,倘若某天突发疾病,离开了我,以我懦弱的性格,大概会哭一段时间吧。从小养猫,和猫的感情很好,但从来不愿送猫离别,打心底不愿意一个生命就此离去。但,生活便是如此残酷,对于我而言,也需要不断的挑战自己,让自己可以接受这样的事实。

不管怎么说,我有猫了。

b24we

silhouette of person's hands forming heart

不要让你的情绪影响决策

人非绝对的理智动物,我们常常会被情绪所左右。

而情绪波动下时的许多选择,都不是正确的。

情绪应当被释放,但如何释放是一个值得思考的问题。

看 https://www.v2ex.com/t/691378 有感

作者因为V2ex 的评论,把打赏的收入全分出去了,虽然不多,但还是挺冲动的。
ea3765a81c7a26a7864efdcf7c81ef7b

如果钱不再重要…

今天和朋友一起盘算了一下如果我离职,接下来该怎么办,在这基础之上,先做了月度开销的评估。

如果我当月保持最低消费状态,大致的开销如下

  • 租房:2800 元, 2300 房租,500 水电(夏天空调开得多)
  • 餐饮:3000 元,每天 100 的预算,自己做,其实吃不了这么多。

在不购置任何新的产品的情况下,每个月的生活成本可以控制在 6000 以内(如果我在焦作,可以控制在 1000 以内,只有吃饭的成本)。

在这种情况下, GAP 三个月的选项似乎可行(也就是总体资产减少两万块),但换来的其实是一段时间的休息和个人充电。

此外,还评估了一下我如果 GAP ,期间如何获得收入

  1. 写稿:我一直有写稿子的业务,每个月可以通过写稿搞定 5000 ~ 6000 的收入。基本覆盖生活需求。
  2. 录制课程:有固定的合作伙伴,录制课程的收入还行,偶尔搞一搞一年的收入也能有个五六万。每个月平均下来就是 6000 左右。
  3. 独立开发:当前这段工作中发现了不少工具的匮乏,可以进行一些相应的开发,并基于此延展出一些小的工具,并获得部分收益。
  4. 外包项目:难以预估,但目前来看还好,因为可以全职做的话,可选有很多。
  5. 远程工作:可以找一些远程的团队,进行一些不那么耗时的工作,提升个人价值。

此外,我还有一些预定今年要做的:

  1. 课程学习
  2. 实体书撰写(合同差不多了)
  3. LC 的运营化改造

summary

2020 年 6 月月度总结

TL;DR

抱歉,本月因为之前几天的封闭开发,没有来得及写,如今已经 7 月4 日,才写完自己的月度总结。

月度总结

工作

本月工作调整为内容产出 & 规划,也看到自己在向上管理做的不足,发现了不少需要学习的点。此外,本月因为时间的原因,搞了三天的封闭开发,收获很多,可以写出一大堆的总结文章,期待近期的产出吧!

值得提升的点:

  1. 如何做汇报
  2. 如何向老板同步信息

生活

本月生活没有太多的波澜,不过这个月在吃喝上画了太多的钱,导致整个月的吃喝预算都是炸掉的。在新的一个月里,要想办法调整这些。所以考虑在7 月份,控制自己的饮食,减少外食。

顺便还能恢复恢复体重。

Side Project

本月忙着封闭开发公司的项目,没空做 Side Project。

写作

本月因为工作调整的原因,写了不少的稿件,这部分后续慢慢的放出来。此外,这个月,在博客里也写了不少的文章, 这个倒是一个新的收获。

此外,这个月调整了一下自己的内容产出的规范。对于技术文章调整了写作的规划,具体的规范可以参考这篇文章

https://www.ixiqin.com/2020/06/how-to-free-for-your-organizations-project-configuration-vercel/

财务状况

2020 07 04 IMG 1446

娱乐

  • 小丑:DC宇宙的经典电影,本以为会有不少成为 Joker 以后做的事情,没想到只是 Joker 为何成为 Joker。电影里惊喜的是有不少的伏笔,比如布鲁斯·韦恩父母的被杀。Joker 和布鲁斯的第一次见面等等。
    • 一些在豆瓣上看到的不错的话
      • 《了不起的盖茨比》里的那句话:“每当你想批评别人的时候,要记住,这世上并不是所有人都有你拥有的那些优势。”

阅读

  • 我是一个程序员:适合未从业的人看的,从业以后的人看有点啰嗦。
  • Go 语言趣学指南
  • 半小时漫画经济学 1
  • 半小时漫画经济学 2
  • 半小时漫画经济学 3

年度计划对标

课程学习

一年学习 54 门课程,本月进度 0 门;全年进度 1/54;

图书阅读

一年读书 54 本,本月进度 5 本;全年进度 6/54

电影观看

一年观看 54 部电影,本月进度1部;全年进度8 /54

a keyboard sitting on top of a white shelf

API 对于开发者的重要性

作为一个开发者,我经常会使用各种各样不同的软件,而这些软件中,哪些是我们用的爽?哪些是我们用的不爽?他们有什么特点?这里总结一些。

1. 有 API

API 对于开发者相关的业务来说,十分重要。对于开发者来说,有了 API 就意味着他有更多自定义调用的可能,可以和其他的能力整合起来。但是如果你没有 API ,对于开发者来说,就没有了变化的可能,一旦出现了一个有 API 的产品,你的产品就不再有价值。

interior of a coffee shop

为什么大城市里咖啡店很多?

在小城市里,往往没有很多的咖啡店,但是在大城市里,经常会有很多咖啡店。这是因为什么?

我想了一下,可能是因为大城市里大部分人都没有办法在自己住的房子中营造出一个很好的学习环境(比如我租住的是一个单间,就没有足够的空间来放置沙发和学习桌子),在这种情况下,“共享”的学习空间就成为了必需品,而咖啡厅这种看起来还不错的选项自然而然就会被人们想起来(类似的,大城市里的共享学习空间也是这样的,当然,共享学习空间还提供了一种学习的氛围)。

在小城市里,大家大多居住时会有一个 X 室 X 厅,因此,在家中想要打造出一个小的学习空间,还是要容易一些的,因此,没有必要在外面学习,自然而然,对于咖啡厅的需求就小了很多,只剩下和朋友一起聊天的需求。

供需关系,决定了小城市注定很难有太多的咖啡厅。

不过,倒是觉得可以自己开一个小的咖啡厅,一方面可以让朋友过来一起聊天,另一方面,如果没有人,自己也可以喝咖啡、工作。

这么想想,其实之前华仔搞的联合办公空间,也是个不错的选择。

man in black leather jacket carrying boy in black leather jacket

在父亲去世的父亲节,怀念父亲

今天是父亲节,不过,于我而言,已经没有办法过父亲节了,因为去年我的父亲去世了。

到了父亲去世,我才开始去怀念父亲,想来颇为俗套。在这个失去父亲的第一个父亲节,也谈谈在父亲去世的这大半年里,我的感受。

0 关于父亲的记忆

只是一些关于父亲的碎碎念,可能后续会继续补充。

因为家中的条件并没有那么好,所以我的童年记忆并没有那么好,父亲常年在忙碌,我们家也做过不少的生意,来补贴家用。我母亲强势且能干,父亲显得慵懒和随意许多,但在目前的强势之下,父亲也算是没少做事,从最早摆地摊卖针织品,到后来和朋友合伙卖东北的酒,再到后面开烧烤摊子,卖烧烤。父亲和母亲都挺忙的。

而且,也因为母亲强势,父亲慵懒。所以他们没少吵架。母亲个性强,什么都想比一比。自然对慵懒的父亲少不了鞭策。

1 家庭生活的核心是夫妻,而非其他

在过去的这大半年里,我感触最深的,是家庭的核心是夫妻关系,而非其他。过去的这半年里,我的生活因为工作而填满。但母亲却因为疫情的原因,一直呆在家里,无事可做,久而久之,对于她而言,生活、怀念,会摧毁一个人的心态。

不过,疫情当下,确实麻烦。对于我而言,没办法让她来深圳长住(条件不允许,之前租房的时候也没有考虑这回事),她也很难去找到合适的事情去做。

所以难以处理。说来想去,也只能寄希望于她能够更好的自我疗愈。

2 一切事情都会过去

对于母亲而言,这个事情没有那么容易过去,但对于我来说,得益于工作的繁忙和糟心,父亲去世的这件事使我没有那么痛苦,只是会在一些特定的时候感到失落。但失落没多久,又要回来重新思考工作的事情,慢慢的,也就过去了。

3 健康重于一切

在过去,我更加关注业绩,如今,我更加关注健康。希望我自己够让自己活得更久,让自己的亲人不痛苦。

内心满是惆怅,落到纸面上,却又难以写出,且等我有朝一日重整心情,再来书写吧。

风变科技面试总结 – 2020 年 6 月 15 日

风变科技详情

风变科技当前最为知名的产品是《Python小课》。

一些关于风变科技的文章

风变科技网站

总体描述

我的简历应该是由他们的前端 Leader Function 提交的,因此,第一轮给我打电话的直接是 HR ,而不是一般时候我们的业务方。

技术面

技术面的面试官准点上线,这一点给赞。

技术面一共问了以下的一些题目

1. 后端模板引擎在 2020 年的时间节点中,他的存在有什么意义?

我的回答:后端模板引擎目前还存在,更多是从 SEO 的角度来看到的。当然,实际上为了 SEO ,前端还搞出了 SSR (Server Side Render)来处理这些问题。

2. 你搞过 SSR 么?

我的回答:没有。

这里可以看出,在当前 SSR 当道的情况下,搞一搞 SSR 还是有必要的。这个我需要在后续补充一下。加到 TODO 里。

3. 你为什么会在你自己的项目中配置 CI & CD?

我的回答:

因为我自己会觉得,CI & CD 的配置会让我能够更高效的完成自己项目的开发。

其实可以补充一些内容:

CI & CD 可以提升项目的质量,因为 CI & CD 并不是简简单单配置一个 CI & CD 就结束的。CI 、CD 背后是项目测试完善的标志。如果没有测试,CI 和 CD 就仅仅是一个自动部署的脚本而已,没有发挥出其最大的价值。

4. Vue 的单文件组件的 Data 为什么是一个函数,返回一个 Object,而不是直接返回 Object?

我的回答:

涉及到单文件组件复用的时候,可能会导致不同组件实例的数据紊乱。如果返回一个 Function ,Function 内部返回的 Object 会借助闭包机制来避免这样的问题。借助闭包机制构建诸如私有变量的形态。

面后研究:

这部分内容被记录在 Vue 官方文档中的组件基础页面

vf1nu

这里官方给到的描述是,当返回的是一个函数时,会让每一个函数维护一份被返回对象独立的拷贝

相关的 Vue 源码参考:https://github.com/vuejs/vue/blob/dev/src/core/instance/state.js#L112-L152

5. 当一个父组件和子组件中的 Mounted 都加入一个 console.log 的时候,哪个会先打印出来?为什么?

正确答案:子组件的 console.log 会先打印出来。

这部分你可以参考实例代码 https://codepen.io/madman0621/pen/vQyBPB/

面后研究:

简单来说,组件会在 父组件进入 BeforeMounted 之后,进入子组件的 BeforeCreated 中

可以参考这篇文章:https://juejin.im/post/5c95ee98f265da60dd354c6c

6. Vue 的函数式组件如何使用

我的回答:这部分只答出了 Render 的函数和他使用 createElement 来创建 Element ,没有回答出其他的内容。

面后研究:

可以参考 Vue 官方文档中关于渲染函数的描述

https://cn.vuejs.org/v2/guide/render-function.html

7. Vue 如何做 Diff 的

这部分没有回答上来。

面后研究

https://github.com/answershuto/learnVue/blob/master/docs/VirtualDOM%E4%B8%8Ediff(Vue%E5%AE%9E%E7%8E%B0).MarkDown

8. v-if 和 v-show 的区别是什么?

我的回答:

v-if 和 v-show 一个是在渲染的时候控制,一个是在显示的时候控制。

v-if 会带来渲染开销;v-if 会带来显示开销。可以感受自己的需要选择。

9. 如果对 Vue 单文件组件的空 Object 进行操作,会触发更新么?

题目大概是下面这样的含义,问是否会触发更新

new Vue({
  data:function(){
    return {}
  },
  methods:{
  onClick(){
    this.data.xxx = abc
  }
 }
})
Code language: JavaScript (javascript)

我回答的是不会,理由是和之前的 Vue 组件的 data 为什么是一个函数而不是一个 Object 一样的。这里使用类似闭包的机制让其来完成其数据的不互相干扰,带来的问题是,必须提前声明才能确保相应的数据被自动生成 setter 和 getter 。

面后研究

这个问题源自 Vue 的响应式原理,具体的内容可以参考下方的内容

https://cn.vuejs.org/v2/guide/reactivity.html#%E5%AF%B9%E4%BA%8E%E5%AF%B9%E8%B1%A1

10.关于 Web Socket 的原理

我的回答:这里我回答了之前在做嵌入式开发时的一些经验。

后来面试官告诉我他想了解的其实是我之前写的一篇公众号文章 。我就说了一下自己的理解。

https://www.ixiqin.com/2019/08/websocket-how-to-implement-the-server-to-the-client-sends-the-message/

11. Node.js 中的双工模式

这部分我没有了解,没有回答

12. 僵尸进程与孤儿进程

13. Git 的 Merge 和 squash merge 的区别是什么

我的回答:

squash merge 的最大区别是可以将多个 commit 合并为一个commit ,我会在整个 pr 中的 commit 无意义的时候,使用 squash merge。 当 commit 有意义时,就使用 merge。

面后研究

这里还有一个问题,我没有回答上来,就是 cherry-pick 能干嘛?

这里可以看看阮一峰老师的博客:http://www.ruanyifeng.com/blog/2020/04/git-cherry-pick.html

13. Node.js 的流(Stream)

这部分我只说出了自己用过 fs 的流

面后研究

面试官的预期答案,可以参考 http://nodejs.cn/api/stream.html#stream_stream

14. Egg.js 为什么没有用 Pm2,而是自己实现了守护进程?

这部分我没有回答出来。只是说出了,如果你要将自己的项目改用PM2 管理时,需要去除script 中的 daemon 模式,以标准的进程模式来运行。

涉及到的页面

https://www.eggjs.org/zh-CN/core/deployment

https://github.com/eggjs/egg-cluster

15. 如何平衡工作时间和 Side Project 的时间?

我说了一下自己的模式,每周五晚和每周六晚通宵搞代码

16. 如果团队没有人分享的话,如何让他们分享?

面试总结

本次面试的时长约 1 个小时,讨论的问题达到了近 20 题(实际上还有一些我记得不太清楚的题目),可以看出,几乎在每个问题中,我都没有和面试官去往深处去讨论,这其实会为我的面试失败埋下伏笔(写这篇文章的时候还不知道结果,暂且认为这样不太好)。

下一次面试需要优化的点包括:

  1. 对于自己常用的工具需要熟悉,比如 Vue,比如 Git
  2. 对于 Node.js 的原理还是有待深入学习