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
Mon Jun 05 2023
63 min read
Beijing;
这段时间,在github上贡献了一个读取媒体头文件的JS项目,此作者的repos中有很多关于字符编码的库,而且作者很给力,有任何不
懂的问题和想要了解的东西可以给他发issue,热爱讨论,然后我以一个学习者的身份,把关于编码的一些repo fork了下来,顺便和最近正
在读的《隐匿在计算机后的编码》串起来总结一下。
计算机的基础编码结构
集成电路-数据的最小单元
计算机说白了就是一个集成电路(integrated circuit),电路可以形成逻辑,逻辑作为形式上的计算机最小运算单元,我们通常把它称作为布尔值。布尔值慕名思意来源于布尔代数,它是数学家布尔发明了用数学表达逻辑的运算方式😂,
发明了很多年之后,布尔代数才与电路相互结合,然后出现我们现在比较熟悉的逻辑门,触发器,晶体管, 加法器, `继电器 ...
Read more
Mon Aug 15 2022
2 min read
Beijing;
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
Thu Jun 23 2022
26 min read
Beijing;
这段时间一直在想编程本元是什么,有无穷的模块化上层建筑使很多的简单的项目门槛非常低,那么
编程的意义在哪呢?假如有一天机器可以写代码的话,那人的竞争力又在哪呢,不得不思考在过程过程中
我们都在学习什么。
不管什么语言,框架,平台,在开发项目中都离不开团队协作,这也是代码工程的意义所在。人和机器的不同
点在人可以通过配合,分工,完成极其复杂的项目。这个过程是AI取代不了的。实际上编程语言的初衷
就是让人理解机器码的执行逻辑,假如代码的可读性不好,那和机器写代码相比可真就一点竞争力没有了。
怎么写高维护性和可读的代码,看了《Dive Into Design Patterns》这本书之后,有很多想法,
这本书的作者Alexander Shvets 是乌克兰人,从事编程行业很多年,之后改行做了编程教学工作,
教的内容就是如何避免潜在的编程问题,以及代码重构相关的。同时也是这本书的作者。
下 ...
Read more
Wed Dec 15 2021
1 min read
Beijing;
c++ -> Libuv -> V8 -> JS
nodejs 模块类型,有几种,他们之间有什么不同?
核心模块,在内建模块上层封装的js层接口。
内建模块,node内部原生的c++模块实现,这些模块调用了 Libuv 接口。
文件模块, 纯JS模块。
核心模块在启动进程时, 会被引入到内存中,以提高之后的调用效率。
为什么require可以不用声明而直接引用?
在Node中,每个模块都会被一个立即执行函数(IIFE)包裹着,在Node引入执行它们时,会传入一些参数
(function(exports, require, module, filename, dirname) { ...
Read more
Thu Feb 04 2021
1 min read
Beijing;
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
Mon Nov 30 2020
4 min read
Beijing;
苹果为了购买因特尔芯片的成本和统一全平台架构的目的(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
Mon Nov 30 2020
1 min read
Beijing;
此篇文章中所述的内容,未经过源码级的考核,像webpack一样,没有绝对的教材,对频繁改版的chromium也是如此,以下仅凭个人的一些思考,实践,参阅(Chromium官方文档),推导出来的,
所以,内容有可能并不完全正确。
此篇内容主要参考Webkit架构,早期的开源世界中,它被Apple创造出来,之后Google投入大量人力开发人员融入Webkit项目,熟悉webkit代码,
几年后,Google开发者们在这个项目中的提交量占据了一大半,成为了核心维护者。之后他们把Webkit fork 下来,为自己的多进程架构重构, 并更名为Blink(同webkit为浏览器内核),
为什么要fork下来,而不在原有的webkit上做多进程架构欧呢?主要有两个原因,
webkit应用场景和google要发展的方向不匹配,webkit作为一个开源的浏览器内核,提供嵌入式接口(高达几百 ...
Read more
Tue Jun 30 2020
4 min read
Beijing;