囧克斯

这里是勾三股四的家

  • 奔四了,写给40岁的自己

    年关将至,写给已经40岁的自己。

    鉴于大家在互联网上认识我大多是因为我的工作,那就先从工作聊起。

    十年时间足以改变很多事情。英国脱欧、川普从胜选到败选再到胜选、新冠、战争、C罗从皇马去了尤文又去了曼联又去了沙特、比特币从两百多美金涨到了五位数、AI 的代名词从 AlphaGo 变成了 ChatGPT。说唱、街舞、乐团、站立喜剧从小众走到了主流。高铁、外卖、电动车进入了平常百姓家。

    遥想十年前,刚过30岁的我还身处杭州,那时的自己逐渐适应了阿里的工作文化和游戏规则,工作是辛苦的,但也是充实的。

    2015年的11月,也就是当年的双十一过后没几天,我代表手机淘宝前端团队连续发布了三篇《对无线电商动态化方案的思考》1, 2, 3。后来,这三篇文章的内容演变成了阿里巴巴的开源项目 Weex,这也算是我个人在阿里时期最被人熟知的一件事。同期,我还加入了一个叫做 Vue.js 的开源项目,也因此结识了它的作者尤雨溪 (Evan You),并与他保持了多年的友谊。十年后的今天,我们两家人都在新加坡生活,真是奇妙。当然比起 Vue 这么多年长足的发展,Weex 的生命周期短暂了许多,我尽力了,也学到了成长了。这也是我十年职业生涯的一部分。

  • 有序退网

    该文章部分内容与我在《代码之外》参与录制的 2024 年终总结内容有所重叠,算是一个文字版的整理。

    直奔主题,经过深思熟虑,我决定开始渐进式“退网”,并分享一些我在这个过程中的思考。

    首先,别误会我,互联网很好——总体上它是的。作为一个标准的从业者,它伴随我从我的第一份实习工作到现在很多年了。我可以自豪的说,我亲身经历并见证了很多互联网改变生活甚至改变世界的高光时刻,并作为参与者与有荣焉。但同时,我也逐渐觉得,自己深陷其中,到了一种过度和对自己不利的程度。

    这次的“退网”更多的是针对一些我个人觉得特别“使人上瘾的 (addictive)”部分,尤其但不仅限于互联网社交媒体Paul Graham 在 2010 年曾经写过一篇关于“加速成瘾”的文章,其中也提到,这个世界客观上就是会变得越来越“addictive”。现在这个加速成瘾的主战场无疑就是互联网。

    当然也不要误会,把东西变得 addictive 总体上也有很多好处,只是要在正确的方向上,且不能过度。

    如果说还有什么次要的东西,那可能是把互联网当做锤子,觉得如果通过互联网可以做那就一定要或最好通过互联网来做的事情,比如社交、学习、获取知识等等。我都根据个人的实际情况做了反思和调整。

    另外完全退网很难也未必真的有意义,我给自己界定了一个范围,希望可以从这个范围开始尝试。

  • 我和 Vue.js 的十年

    本文是我在 VueConf 24 CN 的开场演讲稿,分享我和 Vue.js 的十年的故事。
    文中截图来自我的幻灯片。另外我试着挑战了一下 Paper Mario 的主题风格,希望大家喜欢。

    一转眼,Vue.js 已经十周年了,这同时也几乎是我个人参与 Vue.js、参与开源项目的十年。

    我和 Vue 缘分的开始应该是自己 2014 年在阿里内部创建的一个项目,名字如果没有记错的话叫 lib-noble。这个库算是一个 data observer 的 JavaScript 实现,后来我们管这种东西叫 reactivity API,再后来叫 signals。在我看来大同小异。写了这个库没多久,我就在 GitHub 上发现了 Vue.js,其中数据处理的相关设计和实现都跟我自己写的东西不谋而合。我当时的第一反应是,这个库比我写的好多了,而且还有很多其他功能,比如组件系统、模板编译等等。于是我就开始关注 Vue.js,并一路参与到了今天。

    在这十年里,Vue.js 本身,包括团队,都经历了很多事情。我自己所经历的故事,已经出圈且被大家熟知或调侃的,也许就是自己在 Vue 的第一个 PR (只改了两个空格)、维护中文官网 (今年愚人节我们玩了个“威优易”的彩蛋)、创建了开源项目 Weex 并和 Vue 有一段时间的双向官方合作、以及在 Vue 的纪录片中出镜等等。相关的内容不打算赘述了。这次我主要想分享几则背后发生在 Vue 和我自己身上的小故事。尽可能还原一个更加立体的历经 10 年的开源项目。

  • 写给我的奶奶

    (本文写于 2022 年 11 月)

    大约一周之前,我突然接到父母亲的消息,说九十多岁高龄的奶奶身体突然变得非常不好,感觉很难坚持了,虽然立刻飞回去不太现实,但还是希望可以安排个远程视频,见一面。

    我非常清楚这意味着什么,这一面就是最后一面了。

    隔天早上,我们安排了视频见面。我们上一次见面也是视频见面,当时我们还能相互交谈个几句。这一次,奶奶的身体靠在家人身旁勉强可以坐起来,除了睁大眼睛看着屏幕对面的我,已经动弹不得,也说不出话了。我不确定她还能不能听到我说话,总之我努力说了很多。那一刻,自己心里特别难受——一是不愿看到这一幕,二是悔自己没有办法来得及回去亲自看看或身体力行帮着做点什么。

    除了伤感,我决定写一点关于我奶奶的东西,让更多人认识和记住她。

  • 中文格式化小工具 zhlint 及其开发心得

    介绍要给小工具给大家:zhlint

    zhlint logo

    这个工具可以帮助你快速格式化中文或中英混排的文本。比如常见的中英文之间要不要用空格、标点符号要用全角字符之类的。

    看上去这工具似乎和自己的工作和职业关系不大,但其实也是有一定由来的。

  • vue-mark-display:用 markdown 语法轻松撰写幻灯片

    为大家介绍一个刚刚开源,但其实自己已经使用超过 5 年的小工具:vue-mark-display。你可以用它把 markdown 格式的文本转换成幻灯片并在浏览器中播放和控制。

    开发背景

    我自己工作中经常需要准备各式各样的幻灯片,所以逐渐觉得用 PowerPoint 或 Keynote 来做幻灯演示略微显得有些笨重。这体现在板式和样式设计、文件大小、打开、编辑和播放的方式等很多方面。加上我从事的就是前端开发的工作,对语义化的信息格式非常敏感,深刻的认为,那些你表面上想编辑的“样式”其实是信息的“类型”+“配套的样式”罢了。所以决定用 markdown 外加自己扩展的一些小功能,来撰写幻灯片,并研发了相应的工具,也就是最近开源的 vue-mark-display

    最早这个工具是用 vue v0.10 写的,当时源代码里还有像 v-attr, v-repeat, v-transition 这样的“古董级”语法,而且还在依赖 Zepto。最近准备开源这个项目的时候,我也基于最新的前端知识和技能进行了重构。所以大家看到的是比较新的版本。

    其实在此之前,我也写过很多类似的小工具了,但都没有坚持使用很久,这次开源的 vue-mark-display 我差不多持续使用了 5 年。经历了差不多这 5 年时间,准备过了无数的幻灯片和公开演讲,我想说基于 markdown 以及这些小功能撰写幻灯片真的很酷。如果你也有兴趣试一试用 markdown 为主体来撰写自己的幻灯片,那么不妨了解并体验一下 vue-mark-display

    另外,事实上,如果只是想使用它,你是不需要学习任何关于 Vue 的知识的 —— 文章最后会提供一个不需要 Vue 知识的开箱即用的办法 —— 所以它也对 React、Angular 等社区的同学友好 —— 只要你会写 markdown 和简单的 HTML5 代码,你就可以使用 vue-mark-display 制作出非常精美的幻灯片。

  • 我对技术会议的一些看法

    如题,今年陆续参加了一些技术会议,有些新的感触,尤其是今年第一次尝试多参加了一些境外的会议,有在 HK 的,有在 TW 的,有在 JP 的,感受很不一样,当然也参加了年初的厦门 CSSConfCN 和刚结束的 VueConfCN。另外网上越来越多人在讨论或是质疑参加技术会议到底有什么意义、好的技术会议应该是什么样子的,我也以写这篇博客的方式参与一下。