Rebuild home k8s with containerd

Somethings I need to describe before: Why 18.04? The most stable OS for Rock64, if you choose Raspberry PI nodes, just upgrade to official recommended Ubuntu 20.04 or later.Why containerd?

unicode in JS

写的是unicode in JS,实际in js的部分不多,更多的是unicode原理。 两个重要概念code point:在Unicode空间中,一个具体的字符所在位置code unit:用来编码一个code point的数量,例如UTF8,使用1-4个code unit来编码一个Unicode code point。Unicode now现在的Unicode共占用21个二进制位,它们被分割成了17个plane,每个plane占用16个二进制位。举例几个plane: plane 0: 0x0000-0xFFFF,Base Multilingual Plane (BMP) plane 1: Supplementary

number in Javascript

最近在看《Impatient JS》,熟悉的地方快快略过,看到了JS中的数字,现在来看有: numberbigintnumbernumber很神奇,可以是整数,也可以是浮点数,所以number的实现,其实是浮点数,而且是double类型的浮点数,范围是64个二进制位,符合IEEE 754……以前在看到float的时候基本都会带出来IEEE 754这个标准。这里面具体讲了什么我完全没看过,但今天在《impatient JS》中,简单了解到了一些。 说是64位,实际可用来表示数字的有53位,这53位中还有1位被用作表示符号(正负号);除了53位,剩下的11位被用作了指数部分(科学计数法),范围-1023~1024。 bigintBigint

如何触发Chrome的ERR_HTTP2_FRAME_SIZE_ERROR

本文的最终目的是构造一个支持HTTP2的webserver, 当使用Chrome访问的时候触发ERR_HTTP2_FRAME_SIZE_ERROR,这比单纯写“对”代码更复杂。 日常使用的工具基本都是高层的语言、库,目的是为了简化开发者的使用体验,这些语言、库经过长时间验证,会自动处理各种异常,尽量避免让开发者出错。但这可能会让我们天然的对某些知识了解不够深入,例如写一个RST攻击Demo所需要的网络知识,就比单纯的能写基于socket的C/S通信要更深入、能写一个让JVM崩溃的Java代码就比单纯会写Java要了解的东西更多等等。 ERR_HTTP2_FRAME_SIZE_ERROR这个错误可以从Chrome的dev tools中的Network或者Console中看到,从名字上可以看出是和HTTP2协议有关的错误,Frame是HTTP2中专属的概念,是Http2通信中的最小单位。 Chrome有一个记录更详细日志的机制:chrome://net-export/

pendo, ga脚本的部分原理和this

这篇文章有2个话题——数据收集技术和this. 数据收集技术主要是解析pendo/ga脚本的部分原理;this,就是javascript中的this, 我感觉每年都会从javascript weekly等newsletter中看到几篇文章讲解this, 而且它们都称作是 the last article about javascript this.