本周轮子
本周我们来实现一个被广泛使用的工具,那就是鼎鼎大名的 husky,几乎所有现代前端项目、以及 Node.js 项目都会接入这个工具,它的用途主要是统一管理项目中的 Git Hooks 脚本,不熟悉该工具的同学也不要紧,下面我们先来简单介绍一下 husky,它到底解决了什么问题,我们为什么需要使用 husky。
本周轮子:《每周轮子之 husky:统一规范团队 Git Hooks》
本周见闻
AI 画画
上周和菜头在公众号分享了一篇文章《新玩具,新瘾头》,里面介绍了一个谷歌的 AI 图像生成程序 Disco Diffusion,它可以根据描述场景的关键词渲染出对应的图像,真的非常惊艳,有兴趣可以玩一下。
从文中借一张图来展示下效果:
文本生成图片
这是谷歌的一个 AI 模型 Imagen,可以根据输入文字生成写实的图片,下面这个弹吉他的猫就是它生成的:
Edge 的 AI 图像增强功能
微软图灵团队发布了一个 AI 模型 Super-Resolution (T-ISR),它可以提高图片的质量,它将应用在 Bing 地图以及 Edge 浏览器中,目前已经在 Edge Canary 中发布,将会在未来几个月推广给用户使用。
附上对比效果:
冒名顶替综合症
冒名顶替综合症是一种心理现象,即一个人怀疑自己的技能、才能或成就,并有一种持续的内在恐惧,害怕被揭穿自己是个骗子。
老实讲,从我开始写博客一直到今天,期间也写过一些较有深度的技术文章,往往这个时候都能感觉到自己知识的匮乏,而当我将这些文章发布到技术论坛时,一方面我自然希望可以帮助到更多人,另一方面也希望可以通过这些文章结识到更多志同道合的朋友,可是每当有人称赞我的文章写得不错的时候,我在开心之余,也隐约担心自己是否承受得起,其实这些文章是我花费了数天晚上才勉强肝出来的,并不轻松,我深知自己并没有他们口中说的那么厉害,甚至很多时候我会忘记自己在文章中写过的知识,但是好处是我可以非常快地重新拾起来,所以为了让自己可以持续地输出对别人有帮助的文章,我需要花费更多的时间在写作这件事情上,其实收益最大的是自己。
一些 tips
没有 Docker Desktop 的情况下运行 Docker
Docker 几乎是每一位开发者都必备的工具,然而 Docker Desktop for Mac 也被无数人吐槽过,现在我们终于可以摆脱 Docker Desktop,使用 Colima 即可在你的电脑上运行 Docker。
不过笔者按照文档上的步骤,遇到了这个报错:
FATA[0000] error starting vm: error at ‘starting’: exit status 1
如果你也遇到同样的问题,可以试试这个操作步骤:
> brew unlink colima # 已经安装的话,先卸载
> brew install --HEAD colima
> colima start --runtime docker
> docker ps # 成功
分享文章
主要版本号不是神圣的
本文的作者是 语义化版本控制规范 的提出者,相信大家对这个规范都不陌生,它规定了版本格式应该为:主版本号.次版本号.修订号。
版本号递增规则如下:
- 主版本号:当你做了不兼容的 API 修改,
- 次版本号:当你做了向下兼容的功能性新增,
- 修订号:当你做了向下兼容的问题修正。
但作者在提出这个规范十年后的今天,发现了一个问题:大家把主版本号的升级看得太重要。
文章主要传递一个观点:主版本号的升级不应该作为一种营销的噱头,只要有 breaking change(重大改变) 时就应该升级,没有例外。
下面聊些不太成熟的观点,在项目的实践中,特别是开源前端组件库,经常会面临一个选择困境:我们不得不对某个 API 做出 breaking change,然而这个 API 仅在少数场景下被使用到,如果严格遵循语义化版本,那我们将要升级主版本号,但是对于用户而言,会认为是整个组件库得到了升级,所以我认为这一点上还是需要根据实际情况做考虑。
有趣的链接
-
Acapela:一个收件箱搞定所有工作通知。
-
uiverse.io:一些开源的 UI 元素,可以直接复制代码。
-
Henry Heffernan - Portfolio 2022:一个惊艳的个人网站。
-
Side Project 指南:一本关于程序员开发 Side Project 指南的小册。
-
Bionic Reading:这是一种英文阅读方式,它认为将每个单词的首字母变成大写后会使阅读效率提高,Reeder 也使用了这个服务。
-
ooooooooooooooooooooooo.ooo | URL Lengthner:输入任意 URL,将它转换为全是 oooo。
-
心理学工具:一个经过学术验证的心理评估工具,如果这段时间感到焦虑、压力大的话可以简单做下测试。
-
Web Browser Engineering:一本教你使用 1000 行的 Python 代码构建一个基本但完整的Web浏览器的书。