2022 Week 44

也可以在竹白上订阅更新

Web Programming

Is Turbopack really 10x Faster than Vite?

上周 Vercel 高调发布了 Turbopacksuccessor to Webpack(毕竟是 Webpack 之父 Tobias Koppers 打造的),这篇文章里用加粗文本显示:updates 10x faster than Vite,但在尤大的测试后发现并不是如此(具体的测试内容和测试过程文章中都有提及,Vercel 后来也放出了测试过程和测试报告)。

数据很容易吸引注意力,因为我们对数字太敏感了,但也要看到这些数字意味着什么,如何得出来的,有没有其他更重要的数字没有提及?

OKLCH in CSS: why we moved from RGB and HSL

oklch 是一种新的书写 CSS Color 的方式,就像这样:

a:hover {
  background:   oklch(45% 0.26 264); /* blue */
  color:        oklch(100% 0 0);     /* white */
  color:        oklch(0% 0 0 / 50%); /* black with 50% opacity */
}

LCH 分别代表:感知亮度(Luminance)、色度(Chroma)、色相(Hue)。为什么要推出这种新的书写方式呢,这就涉及到已有色彩空间的不足。色彩空间是色彩的特定组合范围,比如 RGB 在红绿蓝三个方向的最大值都为 255,可以描述为一个立方体,而 HSL(色相 Hue,饱和度 Saturation,明度 Lightness) 则可以描述为一个圆柱体:

RGB 的问题在于它是机器友好的,但很难直接识别(比如 rgb(131, 103, 210) 是什么颜色?),而且调整一个分量会对结果产生难以预期的影响。

HSL将颜色通过不同的维度来呈现,部分解决了 RGB 的问题,比如调整 L,可以知道它不会从红色变成棕色,而只是改变颜色的亮度。它的问题在于非人眼友好,也就是数值上统一的表现,在人眼看来可能并不是,因为人类的视觉感知并不是均匀的,色彩的波长在人类的三种视锥细胞的影响力不同。

OKLCH 可以认为是针对人眼调校后的色彩空间,其中的 L 也变成了「感知亮度」,这样同样的 L 在人眼看起来亮度都差不多,可以在线体验下效果。

PS: 这篇文章 对色彩系统做了较详尽的描述,可以一并看下。

Xata

最近刚上线的一个数据服务,简要描述如下:

Xata is a serverless database with built-in powerful search and analytics. One API, multiple type-safe client libraries, and optimized for your development workflow.

理念上跟 PocketBase 有点类似,但更强大,将 Database(PostgreSQL)、Search(ElasticSearch)、Analytics 打包成一个服务(Cell),支持边缘节点加速,通过一个统一的 REST API 就能使用这些服务了。后台可以对 Data / Scheme 进行操作,还是挺方便的,具体的原理可以看下这篇文章

PS: 价格还挺友好的,Free Tier 用来做 Personal Project 的数据服务,基本够用了。

Buddy

一个在线的 CI/CD 服务,使用起来比 Github 的 Actions 更方便些,常用的操作被封装成一个个可以拖动的 Block,然后设置一些参数就行了。可以通过这个视频了解使用姿势。

Remix web framework aquired by Shopify

Shopify 收购 Remix 了,有人看好,有人看衰。 这篇文章对这次收购聊得比较多,Hacker News 上也有相关的讨论,感兴趣的可以看下。用 Remix 开发过几个项目,体验挺不错的,希望它能持续完善,往更好的方向发展。

Libraries

  • React Arborist 一个功能强大的 React Tree Library(Arbor 在拉丁文中就是 Tree 的意思),最近刚发布了 2.0 版本。
  • React Toastify 一个强大、高颜值的 Notification Library,有近 1 万个 Star。

Cool Stuff

Excalidraw

Excalidraw 是一个手绘风格的画板,最近刚完成了 redesign,看起来更加舒服了。

在社区的共建下,已经支持很多 Shape,用来做流程图、原型也更加方便了,甚至可以用来画画

Relingo

一个基于浏览器插件的英语学习工具,能够设置自己的词汇量,会对网页中的生词、难词(根据设置的生词本来决定是否翻译某个单词)自动翻译,帮助快速地理解文章内容,还支持划词/段落翻译。付费版对「记单词」的能力做了增强(如 Flashcard,新建单词本等),如果只是浏览文章的话,免费版就基本够用了。

Potluck: Dynamic documents as personal software

这篇文章的核心思想正如标题所说:Dynamic documents as personal software。这里的 Dynamic 是重点,一般基于文本的 Documents 都缺少 software 的特性,比如点击按钮后可以改变一些行为,或者文本之间联动(类似 excel,修改 A,其他相关的地方也会自动更新)。而 Dynamic Documents 就是要模糊 software 的边界,把一些通常在 software 里才有的 feature 也融入到 Document 里。

这个很容易让人想到 Notion飞书文档。但有一个很大的不同点,这些文档系统对于可插入文本的 extension 是有格式要求的,也就系统制定好了模版,然后你往模版里填充内容。

而 Potluck 则是通过另一个思路去实现,不限制文本内容,通过 pattern 去找到匹配项,然后对这些匹配项执行一些 Action 或提供一些额外的能力(比如 Slider, 或一个倒计时 button),可以在线体验下

这样做的好处是灵活,可以构建各种奇妙的 pattern,对满足 pattern 的内容执行一些自定义效果。但也有几个问题:1) 写作者对 pattern 不感知,不知道如何才能命中 pattern。2) 自定义的灵活度有限,比如要 match 一个 table,对 table 中的 item 执行一些 action,这个实现起来就会麻烦些。但确实提供了一种新的思路,或许可以将 Dynamic documents 和 Extensible documents(类似 Notion 这样的)结合一下?

Worth Mention

What Are You Doing With Your Life? The Tail End

Kurzgesagt 基于 WaitButWhyThe Tail End 制作的一个视频(PS: 这篇文章我有翻译)。从生活的海洋中跳出来,从更高的维度来审视人这一生。结合新冠疫情的背景,「普通的一次告别成为了最后一次」,「可以经常见面的朋友、家人相聚的机会也变得越来越少」,这样的事情发生的概率也越来越高。想等退休后再去做的事,可能再也不会做了,因为那个时候最重要的事或许已经变成了「保养」。

视频没有给出解决方案或者应对之道,只是点出了人生很短,意外随时可能发生,且年龄越大,意外发生的概率越高(掷骰子这个比喻很形象,年纪越大,掷的骰子越多,掷到坏骰子的概率也越大),我觉得这样就很好。

Why Beautiful Things Make us Happy – Beauty Explained

还是 Kurzgesagt 制作的一个视频,讲解了为什么「美好的事物让我们感到快乐」,虽然每个人对美的喜好会有些差异,但对黄金分割、分形、对称这些基本的美的结构还是有共识的。追溯到远古时代的话,具备这些性状的人或物通常意味着能产生健康的后代,或让自己保持健康。进入到现代社会,如果周围的事物(比如居住的城市或小区)让我们感到愉悦,也会促进健康、行为模式、认知能力和情绪,提升幸福感。

鱼与熊掌如何兼得:巴菲特的启示

不二的 NewsLetter 里谈到了巴菲特的启示,她说:谈起沃伦·巴菲特,我们总聚焦于他如何投资,而对巴菲特「如何实现良好生活」讨论较少。这是被掩埋的宝藏。

文章的核心观点是,多去从事正和游戏,实现鱼与熊掌兼得。巴菲特年轻时做过一段时间的股票经纪人,收入来自销售提成,他保持正直的愿望因此与他的利益冲突。比如,他看好 GEICO 股票的长期价值,推荐给朋友和家人,并且告诉他们最好能持有20年。但这意味着销售只有一次,他无法从中得到更多的佣金。68 岁时,他在演讲中概括道:

股票经纪人像这样一个医生,他让你换药的次数越多,他赚的越多。

他要是给你一种药,把你的病根治了,他只能做成一笔买卖,一笔交易,然后就没了。

如果他能让你相信每天换各种药吃对健康有益,这对他有好处,对卖药的有好处,你会亏很多钱。你的身体好不了,还会破财。

这份工作让他大倒胃口。如果他想多挣钱,他就得成为「黑心大夫」;如果他秉持道德原则,他就无法透过工作实现「成为富翁」的愿望。

当鱼和熊掌不可兼得,巴菲特决定换个游戏。他想要站在客户一边,为客户管理财富,而不是卖股票给他们,这样他的利益就和客户的利益一致。

其实职员和公司的关系也应该是正和游戏,职员通过项目的历练得到能力上的提升,公司通过这些项目为客户提供更好的服务。

文中提到的「非零和博弈」也值得看一下。

iPhone 14 Pro Camera Review: A Small Step, A Huge Leap

Halide 团队带来的 iPhone 14 相机深度解析,从成像质量、广角、微距、虚化、弱光等不同维度与上一代做了对比,得出的结论是:A Huge Leap (巨大的飞跃)。比如这张是作者把相机放到一块石头上 30 秒曝光的结果,太惊艳了。

How to Remember Vocabulary

英语的词汇量很重要,如果词汇量足够的话,看英文内容就不会太吃力。这位老师总结了她记单词的一些诀窍,这些技巧用来记其他内容应该也有不错的效果。

Draw Picture, 这个技巧她是这么用的,将要记的单词「包」在自己的画的画里,比如「donkey」就把这个单词包含在自己画的驴的画中,奇怪点也没关系,反而会印象更深刻。

launched a new project and made $10,000 in the first day.

著名的 Indie Hacker Pieter Levels 上线了一个基于 AI 的头像美化网站,用户上传几张自己的头像后,AI 会自动对它美化,生成不同效果的新头像。上线第一天就入账 $10,000,背后用到的技术是 DreamBooth

普通人离“平庸之恶”有多远

  • 不做恶是困难的,不在于作恶的诱惑,而在于确定自己正确的立场,是个远比大家想象的要难的事情。面对尺度较大的社会,善恶不是个体间面对面的直接影响,而成为制度化的、系统的衍生问题。
  • 有所不为的平凡者,会因为陷入无法确证的正误观念而堕入恶的平庸;置身事外的平凡者,会因为系统对生活的咄咄逼人,而不得不面对恶的平庸;而自顾不暇的平凡者,不仅这个信念可能就是个自我设限的陷阱,还将自己摆放在因为自保而离恶的平庸一步之遥的位置上。
  • 我们几乎可以将“恶的平庸性”当作一种不得不面对的原罪接受下来,并让我们对这种原罪的理解,成为我们真正严肃面对生活的动力。

👍