Life Lab

Life Lab

Thoughts, stories and ideas.

最近耳机购物记录

很久不更,各种不更,活在自己的圈子里。本来今天在外面很累,很热,饭也没食欲,回来后把作业处理完,突然想记录一下最近买耳机的记录。 上一个耳机是小米的半入耳式耳机,可能现在官方买不到了,能买到的半入耳就是黑鲨游戏耳机了。为啥非得是半入耳?入耳式压迫感太强,塞住耳朵很不舒服,也可能是苹果那款半入耳太习惯了吧。不过小米那款戴坏了,终于有这种把东西用坏再买新的的时候了。有时候很多东西,就想买,但不一定用得够多,慢慢也许就被时间淘汰了,于是又在物色下一个。 最近买了铁三角的半入耳,C200IS,有点挂不住,随后退货了,这个话有点长了。一开始打算买一款可以替换小米的耳机,搜了下京东,看到了JBL监听耳机,就想买个监听吧,我又不听歌什么的,监听更适合我啊,但监听耳机无一例外不带麦克风,我是强烈需要麦克风的,于是就考虑买个专业麦克风配监听耳机吧。 想到了很多年前想买的铁三角监听耳机,好像那时候还是M50X旗舰,现在都有M70X了。想着买了铁三角耳机,再买个对应的麦克风吧,于是就看到了ATR2500X,看着支架什么的很帅,加了购物车,又对比了其他麦克风,看了些哔哩哔哩测评,总之那几天花了很多时间。
4 min read
javascript

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 Multilingual Plane (SMP) plane 2: Supplementary Ideographic Plane (SIP) UTF-x UTF-32,使用32个二进制位表示unicode code point,
1 min read
javascript

number in Javascript

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

如何触发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/,记录下来的JSON文件可以通过这里查看 HTTP2 继续深入这个错误就不得不了解一些HTTP2的基础知识
11 min read