Yan Blog

「一只喜欢计算机图形的程序猿」

「知乎」如何证明不可计算的函数比可计算的函数多?

Why is there more uncomputable functions?

这篇文章转载自我在知乎上的回答 严谨的证明的话,可以使用「形式语言」(Formal language)来证明: 在可计算理论和计算复杂度理论中,每个「计算问题」都被描述为一个一个「形式语言」,即字符串的集合。比如对于判断一个图是否是无向连通图这个问题:我们可以写为一个描述所有无向连通图的集合: \[A = \{ \langle G \rangle \vert G \text{ ...

「知乎」如何通俗地解释停机问题?

How to explain the Halting Problem?

这篇文章转载自我在知乎上的回答 我用 Python 伪代码来解释下,我觉得对这个问题有兴趣的应该都是有点编程基础的,所以直接上 code 应该是最容易的。 背景知识 「停机问题」研究的是:是否存在一个「程序」,能够判断另外一个「程序」在特定的「输入」下,是会给出结果(停机),还是会无限执行下去(不停机)。 在下文中,我们用「函数」来表示「程序」,「函数返回」即表示给出了结果。...

「知乎」为什么 CSS 这么难学?

Why I dislike CSS as a programming language

这篇文章转载自我在知乎上的回答 对我来说,CSS 难学以及烦人是因为它「出乎我意料之外的复杂」且让我觉得「定位矛盾」。 @方应杭 老师的答案我赞了:CSS 的属性互不正交,大量的依赖与耦合难以记忆。 @顾轶灵 @王成 说得也没错:CSS 的很多规则是贯彻整个体系的,而且都记在规范里了,是有规律的,你应该好好读文档而不是去瞎试。 「CSS是一门正儿八经的编程语言,请拿出你学C+...

Farewell, Flash. 感谢你,但这一次是真正的永别。

So long, and thanks for all the Flash

本文首发于我的知乎专栏 The Little Programmer,转载请保留链接 ;) 一年半前,我曾和 Flash 作过一次告别。那一次,Adobe Flash Professional CC 被重新命名为了 Adobe Animate CC,宣告着 Flash 作为一个创作工具走到了尽头。 而今天,通过 Chromium 博客 So long, and thanks f...

饿了么的 PWA 升级实践

Upgrading Ele.me to Progressive Web App

很荣幸在今年 2 月到 5 月的时间里,以顾问的身份加入饿了么,参与 PWA 的相关工作。这篇文章其实最初是在以英文写作发表在 medium 上的:Upgrading Ele.me to Progressive Web Apps,获得了一定的关注。所以也决定改写为中文版本再次分享出来,希望能对你有所帮助 ;) 本文首发于 CSDN 与《程序员》2017 年 7...

他是狗,你们便是苟奴隶

在知乎被删帖,我理解知乎。 你说你们做不了什么,我也理解你们。 只是,总要有人,还敢说点反对的声音吧? 只是,不想让这一切,看起来都变得如此理所应当吧? 你说,你们也抗争了 那就站出来,让我们相信,你们还在吧? 我甚至都不需要写出「刘国梁」这三个顶天立地的大字,你们便知道我今天要说什么了。 骂狗官、骂体制、骂 D,骂的人已经够多了。我故是可以再骂,却也深知自己甚至连让他们听...

How does SW-Precache works?

SW-Precache is a great Service Worker tool from Google. It is a node module designed to be integrated into your build process and to generate a service worker for you. Though you can use sw-precache out of the box, you might still wonder what happens under the hood. There you go, this article is ...

「知乎」如何理解 document 对象是 HTMLDocument 的实例?

Why is document an instance of HTMLDocument?

这篇文章转载自我在知乎上的回答 谢邀。 首先要理解的是 DOM 是 API,是一组无关编程语言的接口(Interfaces)而非实现(Implementation)。前端平时常说的 DOM 其实只是浏览器通过 ECMAScript(JavaScript)对 DOM 接口的一种实现。 其次要知道的是,DOM 既是为 HTML 制定的,也是为 XML 制定的。而两者各有一些特异的部...

下一代 Web 应用模型 —— Progressive Web App

The Next Generation Application Model For The Web - Progressive Web App

今年 9 月份的时候,《程序员》杂志社就邀请我写一篇关于 PWA 的文章。后来花式拖稿,拖过了 10 月的 QCon,11 月的 GDG DevFest,终于在 12 月把这篇长文熬了出来。几次分享的不成熟,这次的结构算是比较满意了。「 可能是目前中文世界里对 PWA 最全面详细的长文了」,希望你能喜欢。 本文首发于 CSDN 与《程序员》2017 年 2 月刊,同步发布于 Hux B...

如何客观地评价「小程序」的体验?

Wechat Mini-Program vs. the Web, a UX comparison

本文首发于我的知乎专栏 The Little Programmer,转载请保留链接 ;) 2017 年 1 月 9 号凌晨,看完《星战》回家,发现朋友圈都炸了……原来是「小程序」如约公测(以下简称小程序)。果然贵圈人都睡得晚啊,一个个大半夜了精神得不行。 截图推荐什么的已经漫天都是了,而且连 「推荐小程序的小程序」都已经出现了,我们就直入正题吧,今天笔者不跟你们聊情怀,就聊体验:...