月度归档:2022年11月

woman in black jacket sitting on chair

大厂叙事

在 V2ex 看到一篇帖子,吐槽微信小程序不够好用,原话是“小程序发布这么多年了,调试器也还都是抄的 chromium ,怎么还是一坨屎一样,开发者就活该不配被当人看吗?

从用户的视角来看,这么当然是合理的,体验差的点是值得被修复的。不过,在大厂的叙事中,这可能是不够的。

作为一个曾经在 TOP 大厂待过的人,我深知大厂的叙事逻辑 —— 凡事看 ROI,以及做最重要的事情

以小程序开发者工具为例,他体验不好的点是有非常多的,开发者的数量远大于研发团队的数量,所以会有大量的任务值得、等待被解决。但终归人手有限,开发团队只能选择其中一部分事情能做。

这个时候做事就会自然而然推向最重要(比如老板们能关注到的)、ROI 最高的(用户反馈最多、对销售产生最大价值的)。这种方式让大厂的资源可以更集中的被利用在那些大事上,帮助大厂们在做重要的事情快速推进。当然, 也会让每一个个体都有可能成为被忽略的数字,毕竟,单个个体的声音太过渺小。

大厂叙事在做满足 80% 的需求的时候,是很有效的,因为他解决了大数的问题。但还有 20% 的需求是无法被满足的,资源总是不丰富的,这 20%,就是留给独立开发者、小公司的空间。

black flat screen computer monitor

将小事做出彩

在逛 V2ex 的时候,看到一个帖子,大体上是说自己工作 7 年,没有什么技术进步,顺便聊一下自己的看法。

做为公司中的职工,我们每个人都有两面:

  • 一面,是公司雇佣我们时所判定的当下面,当下面决定了我们此刻的工种、工作,决定了我们当下的薪资。这也是很多时候我们在做的事情。
  • 另一面,是公司预期我们可以做到的事情,是未来面,未来面决定了我们能否进一步的涨薪、在这个公司继续的任职下去。

公司作为一个盈利机构,主要的任务还是赚钱,所以,我们的工作当中可能大部分时间和精力都在做当下面的事情。而我们作为个体,如果希望自己得到成长,则必须投注精力到未来面当中,才能让自我感到提升,让收入得到提升。

时间上的冲突,让我们无法有充足的时间投入到未来面,而我们又希望得到提升, 就需要从当下面中寻找机会,做既可以满足当下面同时又可以投注到未来面当中的事情。而想要达成这样的目标,我们不能仅仅是 —— 完成自己的工作 。

我们还可以做的是:

  1. 在完成自己的工作之后,复盘自己的做法, 评估是否有优化的空间。
  2. 梳理自己工作过程中遇到的问题和解决办法,提升工作效率。

这样的方法和方式还有很多,如果你不知道什么事情是能够帮你投注未来面的,就以终为始,问问自己,假设未来我还要做这样一件事,什么样的事情可以帮助到我自己?

red and white flower petals

如果新冠能复阳…

最近打了第三针疫苗,突然想起来了一个事情,之前有说过,新冠疫苗是无法防止你感染的,只是能够防止你重症。这和我们以前理解的疫苗不同的。

之所以不同,主要是因为新冠病毒的变种非常多,同时可能会有多个毒株流行。这些毒株之间虽然有亲缘关系,但又不完全相同,很有可能其特征有所不同,导致我们身体的免疫系统并不能很好的识别到不同分支的新冠病毒。

而这种不同,就造成了人是有可能感染新冠病毒痊愈之后,再次感染其他毒株的。而我们所注射的疫苗,也只能为我们提供一定特征的灭活病毒,我们终究还是有可能感染这个特征以外的新冠病毒的。

😮‍💨,难。

summary

总结和复盘,是给你成长的机会

在学生时代,我总是很讨厌考试。因为自己考的不好,所以总是挨批评。

到了工作以后,也有一些反感“总结”、“复盘”,仿佛这些总结和复盘是另外一种形式的考试。

但当你仔细想想,「假设」考试是为了你好;总结和复盘也是为了你好,

我们就会发现「考试」其实是为了帮助我们明确自己当前所在的水位,明确这个水位以后,我们好有针对性的去学习和提升。

而总结和复盘也类似,其实是为了帮助我们做好上一段工作中的分析,从而为下一段工作提供燃料,让我们更近一步的好好工作。

当然,你可能会提出:这个前提不一定成立呀?

没错,从他人的视角来看的时候,这个前提不一定成立。但当复盘和总结的发起人是我们自己时,我们的立场和前提是明确的,我们无需为他人复盘、无需为他人总结,我们只需要为自己而学习。

执行 rpi-update 提示Make sure you have ca-certificates installed and that the time is set correctly 怎么处理?

我在尝试执行 rpi-update 给自己的树莓派做固件升级时,提示了如下报错。

Make sure you have ca-certificates installed and that the time is set correctly
Code language: JavaScript (javascript)

经过研究,发现是因为 rpi-update 的自更新域名被国内封禁了(挂载 github content 上),导致无法通过自检,只能跳过自检来更新。执行如下命令,即可跳过自检完成更新。

UPDATE_SELF=0 rpi-update

树莓派开启密钥登录

由于树莓派跑内网,再加上这个树莓派算得上是我的实验机器。因此便打算直接使用 root 来完成日常操作,懒得在 pi 和 root 用户之间切换了。而 root 登录,我又不希望使用密码登录(以我的懒散的性子,可能会设置一个比较短的密码),便为树莓派配置了密钥登录。

先使用 pi 登录到树莓派上,并切换至 root 用户。在 root 用户下,将我本地公钥复制,并放在 ~/.ssh/authorized_keys 当中,保存并退出。

接下来,就可以在本地以 ssh root@ip 的方式直接登录树莓派了。为了简化这个ssh命令,我还配置了 SSH Config 的别名,来简化我的登录命令(具体可参考 如何用 SSH Config 来优化你的 SSH 连接?

树莓派切换清华源镜像

树莓派的官方源在海外,国内访问时速度难免不理想。再加上软件更新又是一个常态化的工作,所以我就希望将其切换成国内源,以加速软件更新的速度。

玩 Linux 的,更换源简直再正常不过了。

修改 /etc/apt/sources.list 文件,将其中内容替换为如下内容,即可完成源的替换。

deb http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ bullseye main non-free contrib rpi
# deb-src http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ bullseye main non-free contrib rpi
Code language: PHP (php)

替换完成后,记得执行一次 apt update ,来更新掉本地的 APT 缓存。

使用 glean 插件优化你的 React 项目

React 相比于 Vue 的好处是你可以相对轻松的将一个组件抽离出来,这使得开发者可以根据自己的需要进行抽象。

但手动抽象组件还是相对较麻烦,于是我便搜索有没有一些方便的插件,可以帮助我更好快的完成组件的抽象。于是乎便找到了 Wix 出的 glean 插件。

glean 插件可以将任意层级的组件抽出为一个全新的函数,并在之前的位置引用你的函数,因此,你可以先非常快的构建出一个完整的 UI 界面,再基于这个界面,进行不同层次的抽象。或者是在开发界面时,随时根据需要来完成界面的抽象。

官方提供的 Demo

在实际使用过程中,你可以将 glean 插件提供的命令设置为快捷方式,从而实现更快的抽象组件,或者是点击组件前的黄色小灯泡💡来完成组件的抽象。

黄色小灯泡
turned-on Kindle tablet

Kindle 的一个小技巧 —— 保持常亮

Kindle 无法设置熄屏时间,所以隔一段时间, Kindle 就会自动进入到熄屏状态。而如果你希望保持 Kindle 保持常亮(比如在下载电子书的时候),则可以在 Kindle 的搜索框中输入 ~ds ,并按下回车,即可开启 Kindle 的常亮模式。

在 Kindle 的常亮模式下,你无法关闭屏幕(甚至是物理按钮都没用),如果希望恢复正常,则必须进入「设置」—「设备选项」—「重启」,才能将 Kindle 恢复到会自动关闭屏幕(且可被关机)的状态。

obsidian

使用 Obsidian 的 CSS 代码片段优化你的 Obsidian 体验

我最在研究使用 Obsidian,期间更换了不少的主题,但都不尽如人意,主要的原因便是行高度。大部分主题的行高都是面向英文设计,对于中文场景下的方块字,会使得整个页面的拥挤度极大, 非常容易让你感受到挤压感。

因此,我决定使用 Obsidian 自带的 CSS 代码片段功能来优化我的体验。CSS 代码片段可以在你自己的存储库内存储一些 CSS 样式,并生效在你的 Obsidian 当中,从而为你带来优化界面的可能。

打开 Obsidian 设置,进入「外观」—「CSS 代码片段」,可以看到这里的配置。默认情况下,是没有任何配置的。你可以点击右上角的打开目录的 Icon ,进入到 CSS 存储目录,创建对应的 CSS 文件。创建完成后,回到 Obsidian 中启用这个 CSS 就可以达成你的效果了。

实务

以我自己为例,这是我使用的 Obuntu 主题的默认行高,看起来不算特别差,但总感觉行与行之间的距离太近,让人略感压抑。

摘录

于是,我便在刚刚说的 CSS Snippet 文件夹下新建了一个 line-height.css 文件,并在其中添加如下代码,并在设置中生效。

// 以下代码仅用作演示
*{
  line-height: 2 !important;
}
Code language: JavaScript (javascript)

Obsidian 的 UI 中的文字就会变得更易于查看了,这样就达成了我的目标。不过,我上面写的 CSS 非常的粗糙,是对所有的文字都进行了修改(包括那些本来不应该修改的),所以在真实场景下使用,还是需要自行 Debug 来进行修改。

参考