Oliver Liu

一个充满理想并付诸于行动中的码农,喜欢遨游在计算机世界里,励志于成为一名多财多亿的人

Latest Posts
Computer-Science-University
Don't feel you aren't smart enough About Video Resources Interview Process & General Interview Prep Pick One Language for the Interview Book List Before you Get Started [What you Won't See Cover ... Read more
css之缓动函数
说缓动函数之前呢,先看下一个饿了么的css添加购物车的效果图,这是很多年前我使用纯CSS的bezier函数实现的, 本章主要探索贝塞尔曲线的使用和原理,下图项目的仓库在这里. 用CSS实现这样一个动画,在没有贝塞尔的帮助几乎是不可能实现的,而贝塞尔曲线很少有人关注可以配合CSS实现很多 炫酷的效果,实际上在一些细腻的, 符合真实物理反馈的交互动画上,可以配合选择出不同的物理效果,除了上面的购物车动画效果外,像下面这个滑动的按钮也可以用CSS实现。 <img sr ... Read more
关于编码的总结
这段时间,在github上贡献了一个读取媒体头文件的JS项目,此作者的repos中有很多关于字符编码的库,而且作者很给力,有任何不 懂的问题和想要了解的东西可以给他发issue,热爱讨论,然后我以一个学习者的身份,把关于编码的一些repo fork了下来,顺便和最近正 在读的《隐匿在计算机后的编码》串起来总结一下。 计算机的基础编码结构 集成电路-数据的最小单元 计算机说白了就是一个集成电路(integrated circuit),电路可以形成逻辑,逻辑作为形式上的计算机最小运算单元,我们通常把它称作为布尔值。布尔值慕名思意来源于布尔代数,它是数学家布尔发明了用数学表达逻辑的运算方式😂, 发明了很多年之后,布尔代数才与电路相互结合,然后出现我们现在比较熟悉的逻辑门,触发器,晶体管, 加法器, `继电器 ... Read more
the Influences of learning English for Teens
I.Introduction With the popularization of English in teenagers' education for many years, more and more people have begun to pay attention to the influence of the English language on teenagers' thinking ability. Every language has its own culture, unique charm, and logical structure. For a language, it is used every day in people and was deeply stamped in mind, as you can blurt out, and a gr ... Read more
《Dive Into Design Patterns》 读后感
这段时间一直在想编程本元是什么,有无穷的模块化上层建筑使很多的简单的项目门槛非常低,那么 编程的意义在哪呢?假如有一天机器可以写代码的话,那人的竞争力又在哪呢,不得不思考在过程过程中 我们都在学习什么。 不管什么语言,框架,平台,在开发项目中都离不开团队协作,这也是代码工程的意义所在。人和机器的不同 点在人可以通过配合,分工,完成极其复杂的项目。这个过程是AI取代不了的。实际上编程语言的初衷 就是让人理解机器码的执行逻辑,假如代码的可读性不好,那和机器写代码相比可真就一点竞争力没有了。 怎么写高维护性和可读的代码,看了《Dive Into Design Patterns》这本书之后,有很多想法, 这本书的作者Alexander Shvets 是乌克兰人,从事编程行业很多年,之后改行做了编程教学工作, 教的内容就是如何避免潜在的编程问题,以及代码重构相关的。同时也是这本书的作者。 下 ... Read more
关于语言系统的进化
nodeJS面试问题
c++ -> Libuv -> V8 -> JS nodejs 模块类型,有几种,他们之间有什么不同? 核心模块,在内建模块上层封装的js层接口。 内建模块,node内部原生的c++模块实现,这些模块调用了 Libuv 接口。 文件模块, 纯JS模块。 核心模块在启动进程时, 会被引入到内存中,以提高之后的调用效率。 为什么require可以不用声明而直接引用? 在Node中,每个模块都会被一个立即执行函数(IIFE)包裹着,在Node引入执行它们时,会传入一些参数 (function(exports, require, module, filename, dirname) { ... Read more
Argumentative-essay-final
Does homework actually help students? Author: Oliver Liu Introduction Since 1987, educators around the world have conducted studies to answer a simple question: Does homework help or hinder a student's ability to learn? The answer has not to be solved until now. Some students spend a few hours a night doing what they see as busyw ... Read more
Mac big sur 闪退现象分析
苹果为了购买因特尔芯片的成本和统一全平台架构的目的(Iphone, ipad, mac),自研的ARM芯开始集成到Mac中使用, 从原来的 Intel 64 到 ARM64导致需要系统层软件向上兼容老应用程序的运行,也就是把 Intel64 转换成 符合 ARM-64 架构的指令集。 这个软件由一个 Transitive Corporation 公司为苹果提供动态转换技术,也就是最近发布的 苹果11系统中 Rosetta2 组件的实现。 动态转换技术全称为: “Dynamic birnary translation”, 旨在原体系的芯片架构上翻译成可以在目标架构上运行的代码。所以更新了 Big Sur 系统, 就相当于兼容了ARM架构,也就是自带了这个组件。(如果本身就是intel架构的老机器,默认是不会开启这个组件的)。 对跨平台软件的影响 由于新系统big sur 相较于 ... Read more
chromium多进程架构
此篇文章中所述的内容,未经过源码级的考核,像webpack一样,没有绝对的教材,对频繁改版的chromium也是如此,以下仅凭个人的一些思考,实践,参阅(Chromium官方文档),推导出来的, 所以,内容有可能并不完全正确。 此篇内容主要参考Webkit架构,早期的开源世界中,它被Apple创造出来,之后Google投入大量人力开发人员融入Webkit项目,熟悉webkit代码, 几年后,Google开发者们在这个项目中的提交量占据了一大半,成为了核心维护者。之后他们把Webkit fork 下来,为自己的多进程架构重构, 并更名为Blink(同webkit为浏览器内核), 为什么要fork下来,而不在原有的webkit上做多进程架构欧呢?主要有两个原因, webkit应用场景和google要发展的方向不匹配,webkit作为一个开源的浏览器内核,提供嵌入式接口(高达几百 ... Read more