好资源和短想法
#杂
我记得大概是去年这个时候,由于前公司要重构一下存储元数据的存储引擎,开始研究怎么实现一个轻量级的存储引擎。
当时想研究一下市面上的B+Tree版本的存储引擎,可是有的项目很大(Innodb、WireTigger等),有的项目就是个玩具,只能演示原理做不到生产级别。这段时间可以说压力很大,印象最深的是当时去北京团建外出到景区,当天凌晨有世界杯亚洲区预选赛澳大利亚对中国,睡不着就一边看代码一边听比赛。
这时候偶然看到的一个精简的2.5版本的sqlite btree库,只有几千行代码,这个简单的实现打开了理解生产级B+Tree实现的大门。
在这之后就是“顺势”看了更高版本的sqlite btree实现,这些故事都写在了:《sqlite3.36版本 btree实现(零)- 起步及概述》。
仅就“生产级B+Tree”实现而言,sqlite的实现虽然还是有各种问题:比如效率不高等,但是都向我展现了总体的实现思路,后面再看这方面的实现也有了基础,比如今年研究了ARIES这篇论文,最近还在看BW-Tree的论文。
现在一年时间过去了,我又开始探索一个新的领域:Jepsen,想在项目里使用上这个项目来验证我们系统的实现,初期仍然跟以往自己独立研究一些问题一样遇到很多困难,因为太多新的知识点没有接触过:Clojure、模型检验(Model checking),等等。
回头来看,很多我后来看来获得技术上很大成长的时候,都是这种独立、深入研究某个领域之后带来的:身边没人请教、自己找答案、深入阅读文档、代码,等等。这样的经历多了以后,对这种压力似乎也感到适应,对压力之后的收益也清楚,甚至对解决这些难题有一些期望了。
我记得大概是去年这个时候,由于前公司要重构一下存储元数据的存储引擎,开始研究怎么实现一个轻量级的存储引擎。
当时想研究一下市面上的B+Tree版本的存储引擎,可是有的项目很大(Innodb、WireTigger等),有的项目就是个玩具,只能演示原理做不到生产级别。这段时间可以说压力很大,印象最深的是当时去北京团建外出到景区,当天凌晨有世界杯亚洲区预选赛澳大利亚对中国,睡不着就一边看代码一边听比赛。
这时候偶然看到的一个精简的2.5版本的sqlite btree库,只有几千行代码,这个简单的实现打开了理解生产级B+Tree实现的大门。
在这之后就是“顺势”看了更高版本的sqlite btree实现,这些故事都写在了:《sqlite3.36版本 btree实现(零)- 起步及概述》。
仅就“生产级B+Tree”实现而言,sqlite的实现虽然还是有各种问题:比如效率不高等,但是都向我展现了总体的实现思路,后面再看这方面的实现也有了基础,比如今年研究了ARIES这篇论文,最近还在看BW-Tree的论文。
现在一年时间过去了,我又开始探索一个新的领域:Jepsen,想在项目里使用上这个项目来验证我们系统的实现,初期仍然跟以往自己独立研究一些问题一样遇到很多困难,因为太多新的知识点没有接触过:Clojure、模型检验(Model checking),等等。
回头来看,很多我后来看来获得技术上很大成长的时候,都是这种独立、深入研究某个领域之后带来的:身边没人请教、自己找答案、深入阅读文档、代码,等等。这样的经历多了以后,对这种压力似乎也感到适应,对压力之后的收益也清楚,甚至对解决这些难题有一些期望了。
#杂
由于最近换了一台Apple M1架构的笔记本,原先Intel架构上的应用全部需要重新安装,花了几天时间基本把常用的软件装齐全了,下面列表做一个简单的记录。
括号中的备注说明如下:
cli:命令行工具。
买断:一次性买断再无后续费用。
年会员:需要每年续费。
* 编辑器:sublime text 4、Beyond Compare(买断)、MacVim
* IDE:vs code
* IM:微信、电报、飞书、QQ
* 终端:wezterm、iTrem2
* 影音播放器:网易云音乐(年会员)、QQ影音
* 输入法:搜狗输入法
* 笔记类软件:typora(买断)、obsidian、flomo(年会员)
* 浏览器:chrome、firefox
* 翻译类软件:有道词典、deepL
* 代码管理工具:git(cli)、fork、Notifier for GitHub(chrome插件,用于接收Github通知)
* 画图工具:OmniGraffle(买断)
* 文档阅读:pdf expert(买断)、MarginNote3(买断)
* 下载工具:迅雷、Downie 4(买断)
* 密码管理:Enpass
* 解压缩工具:Unarchiver
* 截图工具:Snipaste
* 书签管理:Raindrop
* VPN类:Panda、ShadowSocks 客户端
* 图床:Picgo
* 系统监控类:Stats、Tencent Lemon
* 快速启动:Alfred 4
* 软件安装管理:brew、pip
* 其它:tokei(cli,代码统计工具)、wget(cli)、youtube-dl(cli)、hugo(cli,静态博客生成器)、cmake、clang、delta、lnav(cli,看日志工具)、Oh-My-Zsh
由于最近换了一台Apple M1架构的笔记本,原先Intel架构上的应用全部需要重新安装,花了几天时间基本把常用的软件装齐全了,下面列表做一个简单的记录。
括号中的备注说明如下:
cli:命令行工具。
买断:一次性买断再无后续费用。
年会员:需要每年续费。
* 编辑器:sublime text 4、Beyond Compare(买断)、MacVim
* IDE:vs code
* IM:微信、电报、飞书、QQ
* 终端:wezterm、iTrem2
* 影音播放器:网易云音乐(年会员)、QQ影音
* 输入法:搜狗输入法
* 笔记类软件:typora(买断)、obsidian、flomo(年会员)
* 浏览器:chrome、firefox
* 翻译类软件:有道词典、deepL
* 代码管理工具:git(cli)、fork、Notifier for GitHub(chrome插件,用于接收Github通知)
* 画图工具:OmniGraffle(买断)
* 文档阅读:pdf expert(买断)、MarginNote3(买断)
* 下载工具:迅雷、Downie 4(买断)
* 密码管理:Enpass
* 解压缩工具:Unarchiver
* 截图工具:Snipaste
* 书签管理:Raindrop
* VPN类:Panda、ShadowSocks 客户端
* 图床:Picgo
* 系统监控类:Stats、Tencent Lemon
* 快速启动:Alfred 4
* 软件安装管理:brew、pip
* 其它:tokei(cli,代码统计工具)、wget(cli)、youtube-dl(cli)、hugo(cli,静态博客生成器)、cmake、clang、delta、lnav(cli,看日志工具)、Oh-My-Zsh