记录下我的学习轨迹。(结果写着写着有点像是技术笔记跟日记的混合了 hhhh)
Twitter 上 @manjusaka.eth 等大佬喜欢写周报,不过我不太喜欢周报的形式。因为周报的标题本身没啥意义,而要看其中的内容却得一个个点进去看,这对我自己回顾过往的学习、工作、生活,体验非常不方便。 我比较喜欢类似「一镜到底」的阅读体验,所以我采用这种单页的方式来记录我的日常。(基于同样的理由,我将博客单页展示的文章数量上限调整成了
1000
)
2023-05-23
- 0xffff 社区想打几个 3D 模型,我又掏出了吃灰几个月的 3D 打印机,发现上次打印时用 PLA 的温度打了 PTEG 材料,把打印头给糊住了。因为打印机摆在地上很难观察到打印头的状况,我调平好几次都有问题,把打印头拆下来才搞明白原因。把打印头加热、用螺丝刀把糊住的 PTEG 材料清理掉,再重新调平好几次,才打出效果不错的 XYZ 测试方块。
- 尝试用红色 PTEG 打印标准尺寸的 World’s Best CSS Developer" Trophy ,等明天看看效果。
2023-05-16
- 玩了玩 Github 上流行的 LLM 本地知识库项目 langchain-ChatGLM 跟 5 月份新开源的 DB-GPT
- langchain-ChatGLM stars 多,但是效果不太行,不太能搜到知识库的内容,而且 ChatGLM-6B 模型的理解能力不太行。
- DB-GPT 效果还不错,但是它的基础模型 Vicuna-13B 太大了,在 RTX4090 上也动不动就爆显存,问不了复杂的内容。
- 打算后续跟进下 DB-GPT 的进展,同时也学习下 LoRa 微调技术,看看能不能通过把个人知识库训练成 LoRa 来降低对显存的需求,或者完成些别的有趣的任务。
2023-05-12
- 昨天没考虑到帖子的流量会下降,目前 upvotes 76,离月榜第一 92 还有点距离,不过现在热度被 Reddit 下调了,估计还需要一段时间才能到达月榜第一的位置。
- 年榜就不太好说了,或许等上了月榜第一后,能持续获得流量,就有机会杀入年榜前十了。
- 这个数值也不需要太在意,总之我写了篇好文章,很多人好评感谢,还反馈给我各种修改意见,我已经很开心了~
2023-05-11
- 我在 Reddit 上的 NixOS 新手入门帖子 的反响非常热烈,轻松杀入 NixOS 话题下月榜前三,再过两天拿下月榜 TOP1 感觉没啥悬念,杀入年榜前十感觉问题也不大。
- 除了一致的好评外,也已经有人开始催更后续内容了…
2023-05-10
- 在 NixOS 中文社区某位群友的建议下,将 NixOS 折腾笔记翻译成了英文,并且在 NixOS Froum 跟 Reddit 上都分享了下
- Reddit 上才 1 个小时就收到了好几个点赞跟评论!兴奋得我晚上睡不着,爬起来根据 Reddit 上的反馈,再次爆肝优化文章内容,搞到凌晨 5 点才睡…
2023-05-09
- NixOS 的文章整理得差不多了,在 0xffff 社区、NixOS 中文 TG 群、苏洋的折腾群、V2ex 跟 Twitter 上都分享了下,收获了许多好评反馈,尤其是 NixOS 中文 TG 群的正面反馈,以及 V2ex 上的评论收藏,让我非常开心~
- 也再次爆肝优化了一波文章内容。
2023-05-04 - 2023-05-07
- 研究使用 nix flake 配置 nixos 系统,nix-config
- nixos 确实好用,但是官方文档太烂了,学起来很费劲,从 nix 笔记提交记录 上看,从 2022/4/21 折腾到现在已经半个月了,才把系统搞到基本可用的状态。
- 有了 nixos 后,底气足了很多,将桌面环境从 i3wm 切换到 hyprland,确实非常丝滑,hyprland 的动画效果非常棒!
- 另外目前遇到最大的坑就是 fcitx5 在 wayland 下,无法在 chrome/vscode 下使用的问题,还没解决,这些中文都是通过 alacritty + vim 写的。因为这个原因,都有点想考虑换成 neovim 了…
- 也将 NixOS 折腾笔记整理了下,发了篇新博客文章。不过内容还有点乱,不太拿得出手。
2023-04-30 - 2023-05-03
- 研究使用 nix flake 配置 nixos 系统,nix-config 发布 v0.0.1
2023-04-27
- The Great Gatsby - 10/41
2023-04-26
- 工作状态上回来了一点,为了在工作时更专注,避免掉习惯性摸手机、刷 Twitter/V2ex/QQ,重新开始使用 「Forest 专注森林」,它是基于番茄工作法的一款 App,每专注工作一次就可以种一颗树,还有许多树种可选。效果真的不错,确实对我专注编程有帮助。
- 我上次集中使用还是在 2017 年了,现在登录账号还能看到当时种的大片银杏,有点感慨。
- 游戏
- 试玩了米忽悠的新游戏「星穹铁道」,还是熟悉的画风跟 UI,制作质量也很高,回合式对战的玩法我本以为会枯燥,不过也还 OK。最重要是动画跟剧情都很在线,总体评价很 OK。
- 不过我试玩的是安卓版,抗锯齿做得比较拉,打算明天用 RTX4090 玩玩看。
- 打 VR 游戏,发现昨天调过优化参数后,RTX4090 跑 beta saber,Oculuse Quest 2 的画质参数全调到最高, 5K 120 帧无压力,相当流畅。想着既然这么流畅,又试了试 Air 模式连接,完全感觉不到延迟,画质稍微掉了一点点,不过把 SteamVR 的动态分辨率改成固定的应该能解决。
- 之前没调 GeForce Experience 参数,效果比这差很多,还有点卡顿,当时就觉得很疑惑,不过后面折腾 Linux 就没怎么玩游戏了…现在才搞明白原来是参数没调优。
- 总体来说 RTX4090 在调整好显卡参数优化的前提下,不论是 VR 还是 3A 游戏,体验都很丝滑、画质清晰,玩游戏贼爽,确实比我之前的 RTX3070 笔记本好太多了。
- 试玩了米忽悠的新游戏「星穹铁道」,还是熟悉的画风跟 UI,制作质量也很高,回合式对战的玩法我本以为会枯燥,不过也还 OK。最重要是动画跟剧情都很在线,总体评价很 OK。
2023-04-25
- 英语阅读
- The Great Gatsby - 9/41
- 最近一个月有点迷茫,状态不对劲,没读啥英语…今天读了两篇 The Greate Gatsby,故事情节都要慢慢回忆…
- 用 RTX4090 玩 Cyperpunk 2077,顶配光追画质(叫啥 onedrive)贼棒,真的非常还原真实环境,在 GeForece Experience 上调了个啥优化参数,帧率得到了很大提升,4K 差不多能稳定在 100 帧,看半天风景。
- 不过 2077 的碰撞检测还是有点 bug…游戏都出来快三年了还卡 bug…
2023-04-24
- Homelab 重新折腾一通后,又打算修复下 Homelab 的 k8s 环境,顺便尝试下 Istio 多集群部署。
- 折腾一整天,用 kubeadm 部署了个 1.27.0 的 k8s 集群,网络用的 cilium,也搞定了 cert-manager
- 死活搞不定 istio 多集群部署(external-istiod 模式,或者叫 primary-remote 模式)。
- 在新集群上部署了个单集群 istio,尝试了下 istio with Gateway API,感觉还不错。不需要手动部署 istio ingressgateway 了,配置好 Gateway 资源后 istio 会自动部署对应的 deployment 和 service。
2023-04-23
- 之前因为做 PVE 虚拟机备份,发现 PVE 的 local 分区默认只有 100G,不够用(当前方案下备份需要临时存储在 local 分区),这次把两台 64G 内存的小主机,local 分区(root 卷)调到了 326G,local-lvm 分区(data 卷)则改为了 633G,目前感觉是个比较好的方案。
- 同时将集群升级到了最新的 Proxmox VE 7.4,想看看能否解决一些遇到的问题。
2023-04-21 - 2023-04-22
- 了解了下 nixpkgs,它最大的优势就是:多版本管理,系统可以随时回退到任意一个版本,杜绝系统被搞乱了还原不了的情况。
- 当然它也有些别的优点:系统可在任何一台机器上还原(可复现)、不存在依赖冲突问题、等等。
- 然后因为尝试在 Endeavour-i3wm 上尝试 sway,发现暂时不咋地,又退回到了 i3wm,然后 firefox 启动就要卡很久,QQ 也莫名奇妙闪退,一怒之下打算换成 NixOS,试试它是不是能帮忙解决这个问题。
- 输出笔记 knowledge/linux/nix 与配置仓库 ryan4yin/nix-config(暂时为私有仓库)
2023-04-17
- 又过去一周,真的啥也没干。
- 我的工作状态已经很久不在线了,各种事情能拖就拖,各种拖沓的工作带来的压力使我的业余学习也变得很懈怠。这段时间业余几乎啥也没干,硬件软件都没搞,网络小说倒是看了不少。
- 天依手办到货,很飒~

洛天依 秘境花庭 常服手办
2023-04-16
- 去听了个 Live House,乐队叫迎春归,青岛的乐队,不过前面许多歌我都觉得一般般,主唱唱功也差了点,全靠架子鼓贝斯烘托。不过末尾几首歌还挺好听的。
2023-04-12
- 主机配件全部到货,花了一晚上装机。这是我第一台 PC 主机,之前只拥有过三台笔记本,玻璃橱柜机箱装出来的效果很惊艳,成就感爆棚!
- 临时装了个鲁大师(娱乐大师)跑了下,排名 99.9604%,也算符合预期,毕竟都选了顶配显卡。
主机配置
机箱展示
机箱展示
2023-04-10
- 安装新显示器,调整房间布局,32 寸 4K 显示器就是爽!新房间布局也有点新鲜感。
2023-04-09
- 受最近 AI 刺激,又研究了一波显卡,从闲鱼二手 P40 P100 一路看到 V100、4090,看完了 ML GPU Comparo Spreadsheet of Doom 后就开始看各种装机方案,然后就被海景房主机(侧透玻璃橱窗)迷住了眼,方向开始转变成怎么装机放老婆手办最养眼…
- 研究了一晚上装机方案,第二天醒来直接全部下单了…
- CPU/GPU 双 360mm 水冷,B760M+I5-13600KF 板 U 套装,七彩虹 RTX4090 24G 水神,32 寸 4K144Hz 显示器等等,林林总总花了接近 26k,刷新我自己的花钱记录了。
- 毕竟买的是 4090,那么除了 AI 之外,我当然也很期待它在 VR 与其他 3A 游戏上的表现。
2023-04-08
- 搞了个 chatglm-6b int4 量化版,本地用我的拯救者笔记本(16G RAM + RTX3070 8G)玩了下,响应速度感觉可以,确实有一定的上下文联想能力,简单的问题也能解答,但是有点不聪明的样子,内容投毒比较严重。
- 感觉当个稍微聪明一点的聊天机器人还 OK,但是仅限玩乐,干不了什么实际的工作。如果使用半精度跑估计会好一些,不过手上只有一张 8G 显存的 RTX3070,跑不动。
- 另外还有个 ChatGLM-130B,根据官方文档描述效果已经接近 GPT-3 了,不过至少也要 4 张 RTX3090 才能跑…贫民只能等 AI 技术继续迭代了。
2023-04-07
- 这几天真的啥都没干,光看网络小说去了。
- 工作越来越懈怠,在 v 站上发了篇帖子 工作快四年了,对工作渐渐失去兴趣,倾诉了我兴趣转移、有点想转行的想法。获得了一些 v 友的支持与建议,并且了解到了「职业倦怠」这样一个现象。回想起来大宇也有这样的现象,在工作三年左右,员工辞职的概率会有一个突增。
- 职业倦怠的定义:你有工作能力,但却丧失了工作动力。
- 如果工作进入了倦怠期 每天都想辞职 你会选择裸辞 暂停下来休息吗?
- 怎么一步一步走出职业倦怠期?
- 我现在的工作可以说是很清闲了,而且现在大环境也不好,因此还是很希望自己能再按部就班地工作一年攒攒钱,同时业余时间系统地学一学嵌入式,然后再考虑转行或者考研。
- 也是是说,还是得把心态摆正啊,不说多么有进取心,至少把本职工作做好吧。
- 听了 wd 佬的建议整了个达尔优 A87Pro 天空轴v3,一番体验这个天空轴v3 手感确实贼爽、声音也小,感觉可能有点类似静电容了(虽然我没用过静电容 emmm)。
- 我毕业以来就 19 年跟 20 年分别买过两把 IKBC 的茶轴跟红轴,茶轴放家里了,红轴一直放在公司用。当时国产轴感觉还不太出名,但是现在我聊键盘的朋友都看不上 cherry 轴了,网上搜了下 cheery 轴也有各种品控下降、轴心不稳、杂音大的诟病。
- 结合朋友推荐,另外看到 v2ex 上聊键盘的朋友也有说天空轴v3 好用的,还在知乎上也看到有人说这个轴不错,于是就按捺不住心思下单了。到手确实很惊艳,甚至让我再一次喜欢上了打字的感觉!打了几篇小鹤练习群的赛文享受这种飘逸的感觉。
2023-03-29
- 买的陆地冲浪板到货了,晚上 11 点半跑到小区外的商业街门口玩到 0 点 40,会一点滑行跟转弯了,不过还不稳当。
2023-03-28
- 整理发布了文章 Linux 上的 WireGuard 网络分析(一)
2023-03-27
- 在想什么时候要不考个 EE 的研究生?
- 一方面是我现在的学历还挺尴尬的,另一方面是我现在对 EE 也比较感兴趣,第三是我现在可以自己供自己读研,不用担心经济问题(前提是不考虑出国,不然我这点工资还真不够…)。
- 我现在还算有点这样弥补自己学历、追逐梦想的机会,等未来结婚生子就真的没那么容易了,或许真的应该好好考虑这个选项。
- 但是这个选择也要考虑到现在的考研难度、手上资金情况、未来就业情况,以及自己是不是三分钟兴趣。
- 总的来说,起码再自学一年硬件,确认了自己的兴趣程度后再考虑这个选项吧。目前得想办法把我对云原生的兴趣再给找回来,现在这状态还挺尴尬的,硬件还没入门,工作也不上心…
- 反驳:学 EE 可能也没必要考研,现在经济不景气考研的人太多了难度大,另一方面学习终究还是考自己,考个普通普通学校没啥意义,好学校又不是那么容易考的。
- 折腾 WireGuard 协议
2023-03-26
- 对用 ESP32 搞一搞 IP-KVM 远程控制产生了点兴趣,研究了一波 USB 协议。
- 发现合宙的 ESP32S3 开发板有个 DVP 摄像头接口,就尝试在上面跑 esp32-camera,
- 首先搞了个 demo,根据 CORE-ESP32-S3开发板原理图 - LuatOS 确定引脚
- 然后就败北了,日志啥的都正常,可 PSRAM 初始化怎么着都失败,找半圈这里说到了 luatos-esp32s3-camera 拓展板 - 立创开源 合宙 ESP32S3 的 PSRAM 跟它的摄像头接口是冲突的,需要额外的转接板…
- 今年以来,业余搞硬件搞到有一点失去方向,对工作有点失去兴趣,久违地又感到了些许迷茫。
- 买了个陆地冲浪板,型号是「YATAGA 八咫乌 SFW06 - 双驱 - 32 英寸」,780 大洋,等到货了。
2023-03-24
- 继续用平衡训练板联系侧身跟换前后脚,能感觉到比昨天有明显进步,而且因为很有意思,也很有动力坚持下去~
- 英语学习连续第三天
2023-03-23
- 被 Copilot X 小小震撼了下,花了 100 美刀买了个 1 年的订阅,价格不贵,希望能切实帮我提升写代码的效率。
- 之前的 ESP32CAM 没玩起来,又新买了块,今天到货试了下,发现同样的配置方法,烧录一切正常了,又换回旧板子,也正常了…看来大概率还是上次跑了
yay -Syyu
更新了内核,但是没重启导致的问题。 - 又坚持学习了两天英语~
- 平衡训练板第三天,开始练习侧身跟换前后脚,保持平衡的难度瞬间大了很多,但是也很有意思。
- 从右脚在后换成左脚在前后,练习时明显感觉到腰部肌肉酸痛。显然是因为我是右撇子,左腿与相关的肌肉缺乏锻炼。
2023-03-21
- 冲浪训练用的平衡板到货了,音箱放上音乐玩这个板子很有意思。如果坚持练,感觉今年还可以去冲几波浪,肯定不会像上次那么狼狈了。
- 矽速科技的几块板子也到货了,花时间把手上已有的矽速板子 demo 全跑了一遍。
- 笔记记录在 electrical-engineering/sipeed
- 上手现在 5 块矽速的板子了,如果算上还没出货的两块 LicheePi4A 那就是 7 块。最近 Maix II Dock 降价还搞得我手痒难耐,但是其实完全没啥需求去买,光手上现有的板子就够我玩好久了…
- 英语学习又鸽了一周多了…
2023-03-19
- 大腿肌肉酸痛,下楼梯是个瘸的。昨晚用筋膜枪按摩了几波,看来没能帮忙缓解乳酸堆积,或者说没筋膜枪就比现在更严重了。
- 买了块陆地冲浪平衡板,在家练练平衡感,今年或许会再去冲个浪~
- 还在 Sipeed 家整了一块入门级 FPGA 开发板——荔枝糖 Nano 9K、一块 M1s Dock、跟一块 RISC-V 的板子 Longan Nano
- 不过它家都是周一才发货,这让我感觉这是家好公司,但同时又觉得好慢…
- 继续读「Linux Device Drivers Development 2nd Edition」
2023-03-18
- 跟公司几位小伙伴约了一波深圳东西冲海岸线穿越。
- 翻了下记录,上次穿越这条海岸线是 2021 年 8 月,时隔一年多了。不过上次只到天文台就沿着大马路下山了,一个是因为我运动得少,太累了,另外也是没发现天文台另一边是海岸栈道。
- 这次是 3 月份,没 8 月份那么热,喝的水少很多,速度也快了很多,三个半小时走完整条海岸线。
- 因为是第二次走,那种被美景震撼的感觉要少一点,不过有一点跟上次感觉一样——风景最好的就是上下天文台的那段路。
2023-03-12
- 跟朋友去游泳,算是今年最剧烈的一次运动了…
- 注:预计下周去深圳东西冲穿越海岸线,那将是一项更大的挑战。去年到玩得贼爽(去年是 6 月份去的,很晒、很热、喝了很多水)。
- 继续学 Linux 驱动开发,读了「Linux Driver Development for Embedded Processors 2nd Edition」跟「Linux Device Drivers Development 2nd Edition」,发现第二本书更新,而且写得更好。
- 了解了一个 Hello World 内核模块是怎么编写、编译、加载、卸载的。
2023-03-11
- 把我用剩的电话卡、以及玩电子的一些元件打包寄给了我妹玩。
- 野火的 Linux 驱动开发教程看了感觉没啥乐趣,不知道从何下手,于是开始读「Linux Driver Development for Embedded Processors 2nd Edition」
- 根据书中内容跨平台编译 Raspberry Pi 4 的 Linux 内核失败,换成跟着 Cross-Compiling the Kernel - Raspberry Pi Documentation 编译,一次成功,使用 5900HX 全量编译总用时 6 分钟多一点。
2023-03-10
- 折腾好久,终于编译成功了鲁班猫的 Linux 固件。
- 官方建议用 Ubuntu 18.04 作为编译环境,一开始我在 Arch Linux 上用 Ubuntu 容器跑编译,但是因为内核太新了(6.3)导致装各种包都得重新编译,python 相关的东西全是跑单线程编译,慢得吐血。好不容易装完,它又需要 qemu 虚拟化,容器里跑这个貌似有毛病。
- 还有个问题是,使用百度云下载的离线 SDK 跟着官方文档走,可能是 Github 代码有过 force push,导致
repo sync -c
总是会报错,但是不影响编译,只是用不上最新的代码,可以先忽略。 - 于是改成在 Homelab 上跑 Ubuntu 18.04 虚拟机,8 核 16 线程全给它的情况下,完成一次全量编译也要 25 分钟,速度慢的一些点是一些中间步骤只能用上单核,以及许多下载安装包相关的工作得看网速情况。
2023-03-09
- 买的野火鲁班猫 0 无线版到了,这是野火基于 RK3566 的一块开发板
- 它的设计类似树莓派,但是开放的资料非常全,包含 SoC 原厂的各种文档、SDK 驱动开发包、核心板封装库,还提供许多免费的在线文档,内容包含 Linux 内核编译部署、Linux 驱动开发、嵌入式 QT 开发等等
- 读完了「The Moon and Sixpence」
2023-03-08
- 买的 MAIX-III AXera-Pi(爱芯派)跟 Maix Zero M0s 到货,晚上简单玩了玩爱芯派,M0s 看了点资料得用博流智能提供的 SDK,后面再折腾。
- 可能是送的 32G TF 卡 IO 不行,这块板子的 NPU 感觉性能还可以,但是 CPU 跟 IO 都有点拉,跑个
pip3 list
都要卡老半天。 - 为了快速编译,根据 ax-pipeline 文档配了下本地交叉编译工具链(没用 docker),没啥坑,编译速度也挺快的。
- 可能是送的 32G TF 卡 IO 不行,这块板子的 NPU 感觉性能还可以,但是 CPU 跟 IO 都有点拉,跑个
2023-03-07
- 最近接触荔枝派相关的东西比较多,就研究了一波 Sipeed 公司的所有产品,做了个笔记 electrical-engineering/sipeed
- 心动了,下单了 599 大洋的 MAIX-III AXera-Pi AX620A(爱芯派) + 21.9 大洋的 Maix M0s MCU.
- 又觉得 MCU 玩了不少时间了,想进阶搞 Linux 驱动开发,爱芯派看上去不太合适,又下单一块 214 大洋的野火鲁班猫 0 无线版。
- 跟妹妹聊了下,她正在学 Python 跟 C 语言,而且对电子也挺感兴趣的,于是整理了一份手上多余的万用表、面包板、杜邦线、传感器、显示屏、MCU、SBC 等材料,打算找时间寄回家给她玩。
2023-03-02 - 2023-03-06
- 翻出好久前买的 TFT 显示屏,折腾用 ESP32 驱动它。
- 整理了一波嵌入式相关的社区论坛、博客公众号等,主要是自己玩缺点意思,想找些志同道合的朋友交流~
- 发布文章EE 入门(二) - 使用 ESP32 + SPI 显示屏绘图、显示图片、跑贪吃蛇
2023-02-28
- 闲鱼 290 大洋买的 One Plus 5 6G+64G 到货了,CPU 是 Snapdragon 835,刷了 Ubuntu Touch 系统简单玩了下,有点意思。
2023-02-22 - 2023-02-25
- 搞定了 Stable-Diffusion-WebUI Docker 容器,简单玩了玩效果比较拉。然后抄了些网上的提示词,效果确实很惊艳。还试玩了 sd-webui-controlnet,画出来的人物确实跟 controlnet 参考图非常相似,很强。不过玩了一波又没啥兴趣了,不太想花很多精力去折腾它。话眭如此,下一篇文章确实可以考虑试试用 AI 配图。
- 今年刚开年,各大公司就都开始搞 AI,资本开始入场。AI 绘画的 ControlNet 模型又给这个方向带来全新的变化,可以预见 AI 在未来几年很可能逐渐取代部分中低端工作。
- 今年过去两个月了,这两个月都没怎么学英语…
2023-02-21
- 折腾一晚上终于用 STM32 点亮了 TFT 液晶屏,以及搞定了使用 printf 打印日志到串口。
2023-02-16 - 2023-02-20
- 180 大洋买的 ESP-Drone 到货,玩了一晚上直接机翼折损…而且即使在室内也很不稳定不好操控,感觉是因为飞控算法不行或者芯片性能太弱。
- 学了一波 ESP-IDF 编程,发现封装得比较彻底,只需要调上层接口就行,整了整 WS2812 彩灯控制,代码简单,也很有意思。
- ESP-IDF 的文档虽然也挺多,可学起来没啥方向感。于是又开始跟野火 STM32 HAL 库的教程,学了一波发现 STM32 比 ESP32 要复杂很多,STM32 HAL 更接近底层,学起来有很多地方一知半解,但是感觉学会了进步也会更大。
- 在用 STM32 HAL 整 TFT 显示器,目前还未成功…
- 2/18 在深圳南头古城跟 0xFFFF 线下约了一波茶会,谈天说地随便聊了聊。
- 还整了一波本地跑 Stable-Diffusion-WebUI Docker 容器,遇到点问题,我 RTX 3070 8G 跑到 5G 后内存就不涨了,日志也没任何更新,暂时放弃折腾。
2023-02-15
- 看上了 esp-drone 这个项目,为了轻松入门,直接在淘宝上买了一套 esp-drone 的散件打算自己组装,花了 180 大洋(感觉自己折腾的话估计只要 100,不过效果不好说)。
- 翻出了之前买的两块 esp32 开发板,开始学习 vscode + esp-idf 进行 esp32 程序开发,发现它用到的技术确实比较杂(C + CMake + Kconfig + Python),门槛比 STM32 要高,不过对我而言还 OK。
- 用 ESP32 整了个 WS2812 跑马灯,比较有意思~
2023-02-11
- 研究 Homelab 备份与数据同步方案,写了点笔记 数据备份与同步策略
- 研究了下 Linux 远程桌面方案:SSH X11 Forwarding 跟 xrdp,意外发现在客户端是 Linux 的情况下,SSH X11 Forwarding 配置与使用居然如此简单而且效果也非常好!只需要改一行 sshd 配置,客户端直接
ssh -X user@host
就 ok 了~ - 研究在 orangepi5(rk3558s) 上跑 AI 任务,写了点笔记 demos_rk3588
2023-02-10
- 重新研究了下 Proxmox VE,更新了之前写的 Proxmox 使用指南
- 发现 Windows Server 跑的 NAS 数据传输还是不太快,晚上整了一波 Promox VE 的 PCIe 直通想把 USB 控制器直通给 Windows,结果完全失败…
- 输出半成品笔记 Proxmox PCI 直通.md
2023-02-09
- datacenter 版的 win server 2022 有毛病老是挂掉重启,换了 standard 版重装系统
- 为了用上 windows 的 smb/iscsi 黑科技,我不得不考虑把存了 2T 数据的 btrfs 盘改成 ntfs/refs 文件系统
- 研究了一波 refs 发现不太行,而且 linux 完全不支持这个系统,有风险,还是决定用 ntfs
- 首先考虑把 btrfs 磁盘挂载进 wsl2,再用 rsync 同步到 ntfs 盘,结果新装的 wsl2 又有毛病,
wsl --mount
报错… - 第二个方案成功了——两个盘都挂载到 ubuntu 虚拟机用 rsync 拷贝到 ntfs 磁盘。
- 但是拷贝时发现 linux 的 ntfs 驱动性能不行,将就着用了。
- 睡前想到另一个方案:直接用开源驱动把 btrfs 挂在 win server 下再对拷,据此查到了 winbtrfs,但是查了下据依云等大佬说,比较灵车,我又不敢用了。
- 朋友表示 btrfs 用 winbtrfs 挂为只读在 windows 上 copy,可能速度会好很多(喷的就是 ntfs 的 Linux 驱动)。
2023-02-08
- 最近买的 Orange Pi 5 到手玩了两天了,确实有点意思。
- 其核心 RK3558S 还有 NPU,我找了 rockchip 官方 demo rknpu2 玩了玩,挺有意思的。
- 瑞芯微官方的 rknn-toolkit2 好像得安装在 x64 PC 上,模型得用它进行转换后才能跑在 rk3558s 上面,具体还没研究。玩板子顺便还能玩一玩 AI,挺不错~
- UM560 炸掉的 asgard 固态 2023/2/7 换新到货了,装好机后重新加入 PVE 集群,重建挂掉的 k3s 集群,调整 NAS 架构,又更新相关的笔记,反正一番折腾。
- 确定改用 Windows Server 2022 DataCenter 跑 NAS 系统,因为它的 SMB 协议很多黑科技,速度快。硬盘盒就直接映射到这台 Windows Server 里面。
- 一个盘给 Windows 当 SMB 硬盘用,用了 ReFS 文件系统
- 另一个盘绑定到 wsl2 给 docker 容器用,仍然决定用 btrfs 文件系统
- 遇到一个问题是 windows server 2022 因为没嵌套虚拟化,装不了 hyper-v,一番查找发现,将 vm cpu 类型从 kvm64 改为 host 就解决了
- 另一个问题是 wsl2 ubuntu 无法启动,通过 WSL/issues/5440 中提到的方法解决了——创建
~/.wslconfig
,通过它禁用 wsl 嵌套虚拟化功能。 - 再一个问题就是通过 wsl2 访问 btrfs 等 linux 系的文件系统
- 根据官方文档 在 WSL 2 中装载 Linux 磁盘,通过
GET-CimInstance -query "SELECT * from Win32_DiskDrive"
查询磁盘 ID,再通过wsl --mount \\.\PHYSICALDRIVE2 --bare
挂载即可. - 注意事项是,必须以
--bare
裸磁盘的方式挂载进 wsl2 中,再手动在 wsl2 中通过sudo mount /dev/sdb1 xxx
的方式挂载磁盘,否则会报错。(这个文件系统挂载,重启后大概会消失,还得研究下怎么搞成自动挂载)
- 根据官方文档 在 WSL 2 中装载 Linux 磁盘,通过
- 仍然没找到英语学习的节奏,年后基本没学几天英语。
- 搞硬件的热情又上来了,特别是 RK3558S 这颗 SOC 感觉挺好玩的样子,加了 OrangePi5 的群见了市面(群友们玩得都挺有意思)。
2023-02-03
- 折腾 Homelab 时,主力节点 UM560 固态翻车了,是才用了三个月的 Asgard 512G SSD,颗粒是长江存储的。走京东售后了
- 上次翻车是 2022-11-02 炸了根光威弈 Pro 1T,这也没隔多久啊…
2023-01-30
- 健身 30mins: day 2
2023-01-29
- 过年期间放下了所有的学习,测了词汇量也停留在了 6500,今天开始恢复学习
- 更新 Learn English Again 这篇文章,并在 0xffff 社区发贴分享
- 买的健身器材到了,现有设备瑜伽垫、握力器、脚蹬拉力器、弹力健身棒。没计算啥卡路里,简单定下了每天运动 30mins 的小目标,等坚持一个月再看看体重有无改善吧,现在感觉有点虚胖。
- 健身 30mins: day 1
- 玩了玩几样健身设备,感觉还挺有意思的。练习强度也不大,不累,算是体验阶段。后续再慢慢加量。
- 英语阅读
- The Moon and Sixpence - 23/36
- 英语单词与听力练习
- 一点英语 270 天英语学习 - 145/270 (漏打卡 62 天)
2023-01-14
- 跟 0xFFFF 社区的朋友们约饭,账单金额也很讨喜:666
- 想清楚了一个问题:其实经历曲折一点,对个人的心态是有帮助的。经历太过一帆风顺了,后期反而很可能遇到瓶颈
- 我觉得我搞技术的职业生涯发展这么顺利,跟高中、大学期间的这么多曲折经历,关系挺大的
- 之前也在跟人的一些沟通中提到过一点——「我在学校时负面情绪就已经爆棚了,刚工作时虽然起点贼低,但是相比在学校时心理压力小太多了,反而感觉到获得了解放。工作上的负面情绪对我而言可能就像毛毛雨,而做自己喜欢的事带来的成就感则是我在学校时从未体会过的。这种从业前期的经历使我更在意成就感、同事的认可而非某些负面情绪。」
- 古人总结过这个叫「塞翁失马,焉知非福」,现代也有很多人叫「吃亏是福」。
2023-01-11
- 一晚上没接告警,工作真告一段落了。
- 然后就是失去了继续学习英语、折腾其他东西的东西,感觉真的需要停一下,修养一段时间,恢复下被新冠、咳嗽、以及 K8s 升级这个大任务消耗掉的精气神。
2023-01-10
- 又一次完成 K8S 集群升级,虽然还是跟去年一样鸭梨山大,写了好多小脚本做各种升级处理,还加了四五个小时班,搞到 11 点…但总体上比 2021 年那一次顺畅多了,一次完成。没去年那么多加戏——升级回滚好几次,API 可用率还各种抖动。
- 这次升级这么顺利,我的个人经验是其一,内部平台的多集群支持是其二,今年我做的网关的改造降低了流量迁移难度是其三,最后同事也仍然跟去年一样为我提供了重要帮助。话不多说,感恩各位同事。
- 再立个 flag,2023 年我要推动公司的 K8s 集群升级流程迭代,告别「依靠个人经验,一路做各种骚操作解决各种意料之外的疑难杂症,最终完成升级」的「石器时代」,实现半自动化。
- 突然想到,十多万 QPS 的流量迁移,好像有点像是所谓的「给飞行中的飞机换引擎」,瞬间变得高大上了。
- 抗过今晚,明天再收个尾,2022 年的工作就告一段落了。好像心中的一块石头落了地。
2023-01-06 - 2023-01-08
- 跟同事交流后对工作与个人的成长有了些新的感悟,结合之前与领导聊过的个人职业发展,感觉人生也是各种 trade-off 啊。
- 回想我在大宇这两年,第一年的工作其实很不顺利,没找到方向,被 leader 推着往前瞎走,到年底的时候发现,之前做的事因为兼容性问题要全部推翻…感觉随时要提桶跑路。leader 说过几次组里我的适应速度最慢,工作上一直没磨合好。
- 真的有运气的成分,各种原因年底本来领导属意由另一位同事执行的 EKS 升级工作,因为他有其他事忙不过来,又交给了我(我之前已经做过一次升级,出了问题回退了)。在年底终于硬着头皮把它搞定了,这拯救了我去年年底的绩效。
- 晚上跟朋友聊天吹水时想到一点,「博客评论,本质上也是社交。你给人家评论,人家也会回访,看到好的文章也不介意评论一句。」所以许多生活博客评论数是最多的,这说明博主花了很多精力在维系这个圈子。就我的体验看,适当的博客社交感觉还挺不错的。
- 回顾了一下很久前做过的心里评测记录,有一点比较重要的我一直没改掉:「过度分享」,我好像一直比较喜欢分享自己的种种,但如果过了某个界限,也并不是一件好事。
- 还是要把握住核心,说话前多动下脑子想下倾听者的感受,少说点废话,也少分享些别人不感兴趣的内容。
2023-01-05
- 最近看到两个 ext4 文件系统相关的帖子,知识点刚好能串起来,都跟 ext4 文件系统的 htree 这个 B 树索引有关:
2023-01-02
- 英语阅读
- The Moon and Sixpence - 15/36
- 英语单词与听力练习
- 一点英语 270 天英语学习 - 118/270 (漏打卡 36 天)
- 词汇量测试:新的一年,测了一下词汇量,测了三次选了结果低的一次,词汇量为 6583
2023-01-02 词汇量测试结果:6583 词
2022-12-19 词汇量测试结果:6300 词
2022-11-17 词汇量测试结果:5600 词
2022-10-18 词汇量测试结果:5100 词
- 电子电路
- 3D 打印机折腾了几天,暂时放下了。
- 电子电路的话,跨年前后这几天学完了《51 单片机自学笔记》的汇编部分,然后直接开始通过野火的视频教程学 STM32,跟着写了一些 C 代码挺有意思的。
- 输出内容有两个仓库:learn-8051-asm 与 learn-stm32f103c8t6
8051 汇编 - 数码管显示 2023
8051 汇编 - LED 编舞...
8051 汇编 - 数码管动态显示秒数
- 简单看了下 ESP32/ESP8266 开发发现用的是 C++,感觉可能得花一两天时间学下 C++ 的 Class 相关逻辑,不然代码不好懂。
- 另外也在考虑玩一玩 STM32 Linux 驱动开发以及 Rust 嵌入式开发,这两个大概是新的一年希望点亮的技能了。
哦还有连续三年蝉联我年度歌手的天依同学,截图放这里纪念一下:

我的网易云年度歌手
2022-12-25
- 英语单词与听力练习
- 一点英语 270 天英语学习 - 110/270 (漏打卡 29 天)
- 电子电路
- 在焦急地等待大半天后,晚上 3D 打印机「ELEGOO Neptune 3 Pro」终于到货了,折腾了一波,很好玩(
- 继续通过我的摇摇棒学习《51 单片机自学笔记》
- 白天退了烧,但是到了晚上又开始低烧了,新冠确实比一般感冒要折磨人一点…
2022-12-24
- 英语阅读
- The Moon and Sixpence - 8/36
- 英语单词与听力练习
- 一点英语 270 天英语学习 - 109/270 (漏打卡 28 天)
- 电子电路
- 又下单一批元器件,另外斥巨资 1499 买了一台 3D 打印机「ELEGOO Neptune 3 Pro」,预计明天到货
- 因为之前的摇摇棒刚好是用的 STC89S52 单片机,开始通过它学习《51 单片机自学笔记》。
- 这本书用的是 keli 语法汇编,一番折腾搞定了用 linux platformio 编译上传书中的汇编代码,成果放在了 learn-8051-asm,后续持续更新。
- 考虑到折腾面包板很容易忘记电路接线,打算画点原理图,一番搜索决定研究下开源跨平台工具 KiCAD
2022-12-20
- 英语阅读
- The Moon and Sixpence - 6/36
- 英语单词与听力练习
- 一点英语 270 天英语学习 - 105/270 (漏打卡 25 天)
- 电子电路
- 找到 platform-intel_mcs51/issues/47 这个 issue,根据它的描述,解决了上周摇摇棒(使用的 51 单片机)烧录卡住的问题
- 焊接了一个指尖陀螺套件,这也是我第一次焊接贴片元件,贴得歪歪扭扭的,不过工作正常,效果很惊艳~很好玩 emmmm
- 工作
- 这两周主要是落地了 Nginx TLS 加密,将 TLS 加密从 AWS NLB 上移到 Nginx + cert-manager,降了一波成本。
- 另外预计下周执行 EKS 容器集群版本升级,仍打算使用稳妥的「新建集群」方式,开始搭建调试新集群。
2022-12-19
- 英语阅读
- The Moon and Sixpence - 4/36
- 英语单词与听力练习
- 一点英语 270 天英语学习 - 104/270 (漏打卡 25 天)
- 词汇量测试:又过去了一个月,本月因为玩上了 Homelab 跟电子电路,漏打了很多卡,但是前面厚积薄发,测出的词汇量相比上个月上涨约 700 词,到了 6300
2022-12-19 词汇量测试结果:6300 词
2022-11-17 词汇量测试结果:5600 词
2022-10-18 词汇量测试结果:5100 词
- 电子电路
- 回顾了下我目前短暂的电子电路入门史,2022/12/1-2022/12/8 开始玩 ESPHome 智能家居,2022/12/11 买了一堆焊接套装、塞车底盘等各种套件,开始正式玩电子电路…到目前满打满算 19 天。
2022-12-18
- 英语学习
- 鸽了…
- 电子电路
- 焊一个特斯拉线圈套件时,一个功率三极管跟一个功率 MOSFET 管引脚插太深,散热片跟卖家展示图的安装方式不一样了。然后就开始拆焊,但这两个元件都好大一块金属特别难拆,最后三极管成功拆焊,MOSFET 管的引脚被我掰断了…直接导致我一整天都不想焊任何东西了…
- Linux
- 因为不想焊电路板了,就打算搞一搞闲置许久的笔记本。旧的 OpenSUSE 用了一年多,用出了很多毛病,顺便就打算换个 Linux 发行版。
- OpenSUSE Twmbleweed 的毛病细数如下:
- 在 Nvidia 独显模式下无法启动,但是我用 Windows 打游戏时又希望开独显模式…
- 关机基本上都是关不掉了,得强制关机…
- KDE 桌面也各种毛病
- x11 对高分屏的缩放支持很垃圾,各种缩放不一致。换成对缩放支持比较好的 plasma wayland 又各种 bug。
- 桌面各种外观组件,都给人一种很脆弱的感觉,不论是高仿的 Windows 还是 MacOS,都只是样子货。实际一使用就能感觉到使用流畅度差 Windows/MacOS 太多了(主要是动画差,很生硬)。
- OpenSUSE Twmbleweed 的毛病细数如下:
- 试用了一圈,考虑到对国产软件的支持(Arch AUR 仓库)、Nvidia 显卡支持,以及桌面高分屏支持,最终选择了 Endeavour 系统,直接使用 i3wm 窗口管理器,目前体验良好。目前体验总结如下:
- 可以使用鼠标,也能使用快捷键,可以像 tmux 一样调整多窗口布局,或者全屏,总体挺方便的。我目前是鼠标跟几个好记的快捷键结合使用。
- 有些组件如关机菜单、dmenu 等页面仍然完全没有缩放,还没搞明白怎么调。不过应该可以调大。
- 启动跟关闭都很快,OpenSUE 下系统无法关机的问题消失了。
- 因为听说 sway 对 wayland 的支持比较好,性能更高,对缩放的支持也更好,试安装了 endeavour 社区的 sway 桌面版本,发现 sway 根本无法启动…一番调研发现是 sway 不支持 nvidia 闭源驱动,使用参数强制启动 sway 后系统完全没缩放,鼠标图标都完全不显示,暂时放弃了。打算等明年 sway 的 vulkan api 支持 stable,再来试试。
- 因为不想焊电路板了,就打算搞一搞闲置许久的笔记本。旧的 OpenSUSE 用了一年多,用出了很多毛病,顺便就打算换个 Linux 发行版。
2022-12-16
- 英语阅读
- The Unlikely Pilgrimage of Harold Fry - 100/100 (补读 15 天)
- 凌晨一点低烧(腋温 38)睡不着,看完了这本书的最后一段。全书 9W 词不算多,但是 100 天却感觉这么长。读完还是挺感慨的。小说的内容很不错,值 5 颗星。
- 想起去年 12 月,凌晨在高铁站看完保罗奥斯特的《月宫》,而此时此刻,今年 12 月,我在凌晨发着烧看完了《The Unlikely Pilgrimage of Harold Fry》。再次清晰地理解到,一年又过去了啊
- The Unlikely Pilgrimage of Harold Fry - 100/100 (补读 15 天)
- 英语单词与听力练习
- 一点英语 270 天英语学习 - 101/270 (漏打卡 24 天)
- 电子电路
- 安装好了淘宝 28 块钱买的四自由度模板机械臂,拿昨天写的遥控小车代码改了改逻辑,使用树莓派实现了蓝牙手柄遥控机械臂。不过机械臂钳子的舵机被我弄坏了,夹不了东西 emmm
- 焊接好了淘宝 23.5 元买的行走机器人套件,虽然确实能正常前进后退,但是前进/回退的切换间隔有点长,调了半天没搞明白怎么调电位器能缩短它的间隔时间。当然显然我也还没明白它的电路图原理,只是单纯照着 PCB 板标注把元器件焊接上去了而已,隔几天再研究下这个电路图,了解下各个元器件的功能,以及电路如何工作。

在薄荷阅读上读完的第一本英语原版书
2022-12-15
- 英语阅读
- The Unlikely Pilgrimage of Harold Fry - 99/100 (补读 15 天)
- 英语单词与听力练习
- 一点英语 270 天英语学习 - 100/270 (漏打卡 24 天)
- 学了八分钟,然后就 0 点了…所以没打到卡
- 一点英语 270 天英语学习 - 100/270 (漏打卡 24 天)
- 电子电路
- 给昨天组装的树莓派四驱小车,用 pygame 写了七十多行代码,接入了 Xbox One 蓝牙手柄控制,实现了童年时的梦想——拥有一台遥控赛车!
- Xbox One 蓝牙连接部分参考了 Setting up Xbox Controllers on the Raspberry Pi,pygame 代码参考了 How to use an Xbox Controller with your Robot
- 花了一个多小时,快速翻完了这两本书剩下的内容,补全了硬件领域的一些知识。不过我很清楚自己想要了解什么,所以不太关注书中的代码细节(因为大概率用不上,不如自己写 emmm)。
- Learn Robotics With Raspberry Pi
- Learn Robotics Programming, 2nd Edition
- 在社区空地上发现两个报废的氛围灯,把灯带拆回来,给手办柜做了一个暖色调顶灯~
- 给昨天组装的树莓派四驱小车,用 pygame 写了七十多行代码,接入了 Xbox One 蓝牙手柄控制,实现了童年时的梦想——拥有一台遥控赛车!
2022-12-14
- 英语阅读
- The Unlikely Pilgrimage of Harold Fry - 98/100 (补读 15 天)
- 电子电路
- 组装搭建了一台树莓派四驱小车,用 gpiozero 控制,虽然代码超级简单,但我是第一次玩硬件,感觉好有意思!
- 元件:树莓派 4B + 面包板 + 面包板电源 + 移动电源 + L9110S 四路直流电机驱动板 + 四驱小车底盘
- 使用的连接线:母对母/母对公杜邦线 + USB 公对公数据线
- 这一套去掉移动电源跟树莓派,总成本 40 大洋
- 准备了一个八颗电池串联的电池盒,但是感觉用一次性电池玩这个太浪费了,所以换成了移动电源。
- 后面还可以试试接入蓝牙手柄控制、接入摄像头等传感器,感觉可玩性挺高的。
- 组装搭建了一台树莓派四驱小车,用 gpiozero 控制,虽然代码超级简单,但我是第一次玩硬件,感觉好有意思!
2022-12-13
- 英语阅读
- The Unlikely Pilgrimage of Harold Fry - 97/100 (补读 15 天)
- 电子电路
- 网上再查了下烙铁头优化方法,跟 0xffff 群友讨论了下,将烙铁头上锡、上松香,然后在湿润的高温海绵上各种摩擦,折腾了好一番后,成功将氧化物去除。
- 毕竟这个发热芯是一体的,贵,舍不得直接当成耗材(用钢丝球或者砂纸暴力去氧化)…
- 另外就是发现这么用,还挺费高温海绵的,感觉得多买几块。
- 同时群友表示铜丝球好用,以及贵的焊材能省不少心,又想下单一波了…
- 发现烙铁头才到手两天,虽然刀尖的氧化物去掉了,但是上面也开始氧化了。群友表示只要日常使用的刀尖没黑就没毛病。
- 看了许多「烙铁头(又称焊咀)使用与保养方法」,整理到了我的个人笔记中
- 网上再查了下烙铁头优化方法,跟 0xffff 群友讨论了下,将烙铁头上锡、上松香,然后在湿润的高温海绵上各种摩擦,折腾了好一番后,成功将氧化物去除。
2022-12-12
- 英语阅读
- The Unlikely Pilgrimage of Harold Fry - 96/100 (补读 15 天)
- 英语单词与听力练习
- 一点英语 270 天英语学习 - 97/270 (漏打卡 21 天)
- 电子电路
- 网友改装的 PD 供电 L245 焊笔(兼容 JBC245 烙铁头)到货,焊接了我的第一块电路板(洞洞板),毕竟第一次,卖相显然不咋样…不过能够 work 哈哈
- 玩着玩着,发现烙铁头变黑了…
- 原因之一是我测试了几次空烧状态下会不会休眠,这个看起来都正常。
- 主要原因很可能是我使用高温海绵擦拭烙铁头时没加水,用力擦拭时把烙铁头表面整坏了…
- 根据网上资料,如果在干燥的高温海绵上清洁烙铁头,会使烙铁头受损而导致不上锡。
- 给高温海绵加水后,试用了网上一些除氧化层的方法,在海绵上擦拭、上松香、上焊锡,但是都没能把氧化层去掉,它不沾锡。
2022-12-11
- 英语阅读
- The Unlikely Pilgrimage of Harold Fry - 95/100 (补读 15 天)
- The Moon and Sixpence - 2/36
- 英语单词与听力练习
- 一点英语 270 天英语学习 - 96/270 (漏打卡 20 天)
- 发现背单词确实比英语阅读更难坚持,读故事更容易坚持一点…
- 另外就是最近沉迷搞电子…
- 电子电路
- 玩上瘾了,又买了大几百块钱的各种工具、器件
- 焊接工具套装、各种开发版、电子元件包、七八个各种 ESP 开发版/模块、四驱小车套件 + 机械臂套件
- 为了练习焊接 + 学一些电子电路基础,在淘宝「电子爱好者之家」上买了许多初中级的焊接套件
- 各种其他相关工具:耐高温硅胶垫、螺丝磁性收纳垫等等
- 以及玩电子后发现租房桌子不够用,淘宝补了一张 80cm * 60cm * 75cm 的方桌,专门用做电子工作台
- 大学学电子工程的前同事(现在在搞 C# 开发)过来玩,感叹仿佛看到了当年自己寝室的景象,也是摆满各种元器件 emmm
- 烧坏一个 1117 稳压管,搜索相关资料时发现宝藏 UP 工科男孙老师,从硬件入门到晶体管、dcdc 模块设计、示波器,都有讲。
- 进一步找到了 爱上半导体
- 玩上瘾了,又买了大几百块钱的各种工具、器件
2022-12-08
- 英语阅读
- The Unlikely Pilgrimage of Harold Fry - 92/100 (补读 14 天)
- The Moon and Sixpence - 1/36
- ESPHome & Home Assistant
- 之前买的 DHT11 传感器一直只有温度读数而且还高了室温 10 多摄氏度,湿度读数一直为 0. 网上怎么查都查不到相关资料,今天把它的蓝色塑料壳拆掉,随便擦了擦里面的面板后,瞬间两个读数都有了,而且运行一段时间后,温度也渐渐地接近室温了
- 看起来就是里面有啥看不见的脏东西,或者就是塑料外壳本身有问题。
- 拆掉外壳并清理后,又跑了大概 10 分钟等待数值稳定,温度仍然偏高接近 2 摄氏度,不过这在它的误差范围内。湿度比米家传感器的读数低了 9% 左右。
- 对传感器吹一口气,温度跟湿度也会立马大增,看起来是 work 了,只是精度不够高,而且把壳子一套上温度立马就涨好几度…
- 用 ESP32-C3 开发版接上了之前买了但一直没用上的 MP-135 气体传感器与 GY-302 数字光强度传感器
- GY-302 效果挺不错
- MP-135 一直检测不到它的模拟信号,只有 2 元的数字信号输出正常,用烟一熏或者酒精喷雾来一点,都会立马设为高电平,而且传感器的绿色指示灯也会亮起。
- 之前买的 DHT11 传感器一直只有温度读数而且还高了室温 10 多摄氏度,湿度读数一直为 0. 网上怎么查都查不到相关资料,今天把它的蓝色塑料壳拆掉,随便擦了擦里面的面板后,瞬间两个读数都有了,而且运行一段时间后,温度也渐渐地接近室温了
2022-12-07
- 英语阅读
- The Unlikely Pilgrimage of Harold Fry - 91/100 (补读 14 天)
- 全国开始放松管控,出了疫情防控新十条规定,12306 也发公告火车站不再要求查验核酸。
- 转眼间「精准防控」就在全国铺开了,大家对之后的经济复苏的预期都更乐观了,但是短期对感染新冠的担忧加强了。
- 我也在京东上买了两个温度计,红外跟口腋温度计各一个…以及打算买点发烧止疼药(貌似都推荐对乙烯基氨酚),网上仍然很难买,打算这周去药店看看。
2022-12-06
- 晚上再次研究昨晚遇到的开发版问题
- 发现只要把显示屏断电,wifi 就能正常连接,一连接显示屏,wifi 连接就会报错 auth expired…
- 另外只要一连接红外发射器,系统就无法启动,也没有任何日志…把红外显示器拔掉,系统就正常了…
- 跟 ChatGPT 讨论了下,它虽然没给出具体思路,但是提到的总线、传输频率,让我突然意识到,我的红外发射器跟显示屏的走线,都是直接从 ESP8266 模块下面经过的…可能是这造成了干扰。
- 改了一下面包板的布局跟走线,就一切正常了,看来信号线如果经过核心模块,很可能使 ESP8266 无法正常工作…
2022-12-05
- 研究了一波时下流行的最强对话 AI ChatGPT,确实牛逼。虽然还有很多投毒信息,但是总体来讲已经比 copilot 等过去见过的 AI 强了一个级别,就像是看到了强人工智能的曙光。
- 晚上打算把 ESP8266 这块开发版用树莓派组个系统,但是怎么搞都有问题。
- 系统启动后无法连接 wifi、接上红外发射模块后就内存泄漏导致系统无法启动等等,坑都被我踩了个遍…
- 没解决睡觉去了
2022-12-02 - 2022-12-04
- 英语阅读
- The Unlikely Pilgrimage of Harold Fry - 88/100 (漏打卡 10 天,已补读 8 天)
- 薄荷阅读读满 80 天赠送的实体书到货了,回看下过去近三个月的阅读,收获良多,也感慨坚持之不易。主要我的兴趣点经常变化,近一两个月折腾 Homelab 跟智能家居,漏打了很多天的卡…
- 英语单词与听力练习
- 一点英语 270 天英语学习 - 89/270 (漏打卡 15 天)
- ESPHome
- 搞定了显示模块、红外空调遥控模块
- (一直对搞电子电路很感兴趣,但是没想到我是这个时间点,从玩智能家居开始真正进入这个方向)
- 朋友带了焊台过来帮我把两个传感器引脚焊上了,顺便教他搭了个 hugo 博客部署到了 github pages 上。
- 玩得兴起又新买了一波传感器、 ESP32/ESP8266 开发版、四驱小车底盘、4 自由度机械臂等等,打算玩玩遥控车+遥控机械手。
- 还研究了一波电烙铁吸锡器…先记录了下相关信息,后面如果继续发烧下去估计就得买了…
- 哦还有一个值得记录的就是最近 ChatGPT 开放访问,我的微信群、Twitter、关注的公众号相关文章与讨论,这个智能程度,真的有种「未来已来」的感觉了。我当前的饭碗还端稳多久?如何避免被淘汰?或许该重新考虑下这些问题了。
2022-12-01
- ESPHome 开发版传感器套装到货,首先把两个开发版都刷上了 ESPHome 固件
- ESP8266 一次成功
- ESP32-C3 默认配置编译失败说 Arudino Framework 不支持此开发版,调整 Arudino Framework 及
platform-espressif32
的版本到最新版后解决,并将解法补充到了搜到的 issue 上:ESP32-C3 Arduino Core 2.0.0 - ESPHome
- 英语阅读
- The Unlikely Pilgrimage of Harold Fry - 85/100 (漏打卡 10 天,已补读 5 天)
- 一点英语 270 天英语学习 - 86/270 (漏打卡 14 天)
2022-11-30
- 买的米家智能家居设备到货,玩了一晚上的小爱音箱跟摄像头…
- 英语
- The Unlikely Pilgrimage of Harold Fry - 84/100 (漏打卡 10 天,已补读 5 天)
- 玩小爱音响跟摄像头,再次把一点英语打卡给鸽掉了…
2022-11-29
- 因为装了个 Home Assistant 后一直闲置,一时兴起开始了解如何把它玩起来,结果从 Home Assistant 一路看到小米米家,再看到 ESPHome…
- 输出相关文档 homelab/Home Automation.md
- 买了一堆米家相关的智能家居设备(智能音箱、动感灯带、各种传感器等等),以及 ESPHome 相关开发版、传感器、面包板、万用表啥的…打算体验下
- 英语
- The Unlikely Pilgrimage of Harold Fry - 83/100 (漏打卡 10 天,已补读 5 天)
- 晚上查智能家居相关资料搞太嗨了,把一点英语打卡给鸽掉了…坚持打卡不断真的好难啊…
2022-11-28
- 考虑自己写一些简单的 dashboard 或者简单的工单系统、服务管理平台
- 了解了一波低代码开发平台
- 好处:开发简单
- 缺点:UI 自定义比较困难
- @zgq 给推荐了一套轻量级、上手简单的解决方案:Alpine, Tailwind, Deno, SQLite 我的本地服务四件套
- 了解了一波低代码开发平台
- 顺便阅读了 limboy 的 应该成为专才还是通才
- 核心要点是「要在某个特定领域做到 Top 非常困难,掌握大量不同技能不是解决之道,而应该多考虑如何将技能进行有效组合,技能的有效叠加大有裨益。」
- 跟网友沟通后确认,Windows 可以将 SMB/WebDAV/ISCSI 协议共享挂载为网络硬盘,并绑定一个盘号!
- 很久之前我 smb 挂载没成功,就一直以为只能挂载 iscsi 硬盘…
- 重新梳理了一遍 NAS 相关的知识点,放在了 homelab/Network Attached Storage 里面
2022-11-27
- 英语阅读
- The Unlikely Pilgrimage of Harold Fry - 81/100 (漏打卡 10 天,已补读 5 天)
- The Time Machine - 30/30
- 读完了,内容想象力丰富,新奇有趣,也学到很多熟词生义、新词新表达。
- The Moon and Sixpence - 0.5/36
- 英语单词与听力练习
- 一点英语 270 天英语学习 - 82/270 (漏打卡 12 天)
- 一点英语已经漏打卡 12 天,基本都是 2022/11 月漏的。主要原因一是搞 Homelab,二是搬家、跟亲戚朋友聚会…
- 整理发表文章「Proxmox Virtual Environment 使用指南」
- OpenMediaVault 的 ISCSI 插件(tgt) 性能太差,研究了一波使用 Windows Server 2022 搭建 ISCSI + SMB 服务,看看是否能跑满我的 2.5G 带宽。
2022-11-25 - 2022-11-26
- 晚上去东莞松山湖跟高中同学聚会,车跑在高速上,旁边是城市远眺的夜景,还在下雨。朦胧中远眺的城市夜景,对久居城市,并且鲜少夜间出行的我而言。这样的景色显得很科幻。
- 然后跟几位同学打麻将打到半夜三点多…
- 第二天一起吃完饭,送读博的同学回工作地点,远远眺望了下他所在的大科学工程「中国散裂中子源」,感觉很高大上。
2022-11-20
- 英语阅读
- The Time Machine - 27/30
- 在朋友的帮助下搬家,最重的书都是朋友帮我搬上楼了,结果我仍然累得不行…相当尴尬…
- 新租房开通了电信 1000M 宽带,家庭网络体验感直线上升。
2022-11-18 - 2022-11-19
- 英语阅读
- The Unlikely Pilgrimage of Harold Fry - 73/100
- The Time Machine - 25/30
- 英语单词与听力练习
- 一点英语 270 天英语学习 - 74/270
- 11/19 下午找了一圈房子,定了个 2000 一月的(包管理费),离坪洲站 50 米
- 租房价格明显比去年低了很多,感觉跟今年经济不景气有关,很多人离开了深圳
2022-11-17
- 英语阅读
- The Unlikely Pilgrimage of Harold Fry - 71/100
- The Time Machine - 24/30
- 英语单词与听力练习
- 一点英语 270 天英语学习 - 72/270
- 跟 RC(NoneBot/CQHTTP 作者)聊了聊,互相加了个小社群。
- 沟通中梳理了下我今年对「高质量社群」的一些总结:社群的最大好处是能互相提供不一样的角度去看世界,互相提供价值。
- 我今年算上 RC 的小群,一共加了四个感觉对我比较有帮助的群聊:
- 年初的时候加了「十年之约 QQ 群」,见识了五花八门的写博客的网友,其中比较触动我的有经历坎坷的 @叶开,有做 H 站被抓进牢的博友,还有很多搞安全的、写纯生活内容的博友,感觉很有意思。
- 但是因为感觉更多的是开拓视野,内容对我帮助不大,却很容易让我分心,退过四次群了(每次退完又想加回去 emmm)
- 第二个是「苏洋的折腾群」,苏洋的入群审核很严格,他会评估你跟折腾群互相之间能不能提供价值产出、你是否足够开放真诚,来决定是否接受加群邀请。群里大都是从事技术行业的工作党或者技术爱好者,群聊内容比较偏硬件、运维,比较偏工程,质量很高,对我很有帮助。
- 第三个是 https://0xffff.one 的 QQ 群,最初是因为发现 0x0001 在非常认真的做这个站点,而且社区帖子质量很高,所以加的群。群里应该有许多学生党,而且主题也是刷国外名校的公开课,所以聊得会更偏基础些,比如 6.S081、MIT 6.824、CS-144 等等,质量也很高。
- 0xffff 社区在深圳也有不定期的线下聚会,上周参加了一次感觉很棒~
- 第四个就是今天加的 RC 的小群了,主要是围绕 nonebot 生态聚集起来的,同样是各行各业、各个年龄段、各个学历层级都有,氛围也很好~
- 跟我自己的小群比较类似,我的群最初是围绕小鹤音形输入法建立起来的一个程序员交流群,慢慢地就变成一个输入法圈子的程序员交流群,建立也有 5 年多了,人不多,活跃的人中,大家互相都很熟。聊天内容则是啥都有,代码、输入法、乐器、跑步、考试,反正想聊啥就聊啥咯。
- 年初的时候加了「十年之约 QQ 群」,见识了五花八门的写博客的网友,其中比较触动我的有经历坎坷的 @叶开,有做 H 站被抓进牢的博友,还有很多搞安全的、写纯生活内容的博友,感觉很有意思。
- 使用 Test Your Vocabulary 做了一次词汇量评估,发现相比上个月 10/18 的测试,词汇量上升了大概 500 词。效果显著!
- 而且明显发现测试中的很多词都是最近一个月刚学的词,其中好几个还忘记含义了(哭)。
- 之前定的目标词汇量增加速度为:每天约 20 个单词,即一个月新增 600 词。估计是因为这个月搞 Homelab 鸽了好几天,导致词汇量上升速度不达预期。
- 画外:不得不说,这个测试感觉真的很准。
2022-11-17 词汇量测试结果:5600 词
2022-10-18 词汇量测试结果:5100 词
2022-11-13
- 英语阅读
- The Unlikely Pilgrimage of Harold Fry - 67/100
- The Time Machine - 22/30
- 英语单词与听力练习
- 一点英语 270 天英语学习 - 68/270
- 跟 0xFFFF 社区线下约饭,聊了到学英语、业务逻辑、搞 infra、国内国外等等,体验很好~
- 一起聊的伙伴们各行各业都有,嵌入式 Linux、数仓、研究生
2022-11-12
- 搞机
- 搞了台 OpenWRT 虚拟机作为软路由,使用了恩山论坛很火的省心固件,效果很好
- 搞了个 OpenMediaVault 虚拟机,配置好了 SMB 文件夹共享、ISCSI 游戏盘、filebrowser 浏览器访问等等,体验很好(但是配置修改很慢,filebrowser 还有 Bug,总感觉有机会自己用 docker-compose 搞一套可能用着更爽些,缺点是要付出比较多的时间成本)。
- GTR5 主机的 1T 固态掉盘了,基本每次开机 20mins 就会掉盘,插上显示器显示内容为
nvme nvme0: Device not ready; aborting reset, CSTS=0x1
- 还好不是主力机,没存重要数据,把虚拟机都迁移到 UM560 后,直接给错误截了个图,京东申请了售后
- 搞机搞到鸽掉了英语
2022-11-09
- 英语阅读
- The Unlikely Pilgrimage of Harold Fry - 63/100
- 英语单词与听力练习
- 一点英语 270 天英语学习 - 64/270
- 也快年底了,趁着做 Review 写 OKR,顺便梳理下我今年的工作,除去参与日常的成本分析与管控、运维工作外,主要有如下这些:
- 2022Q1(两个月) - 搞 HTTP 迁移到 gRPC 的支持方案,帮助业务方迁移到 gRPC 协议,流量成本与延迟的下降非常明显
- 2022Q2(两个月) - 改用 AWS karpenter 做 EKS 离线计算集群(EMRonEKS)的扩缩容,使集群快速缩容,降低成本
- 2022Q3(两个月) - 主要在做网关优化:
- 将运行在虚拟机上的 Nginx 网关容器化,迁移到 EKS 中。一是为了实现快速扩缩容,二是缩短 Nginx 到服务的流量链路,节约成本
- 使用 go 语言写了个 sidecar 处理 nginx 的配置 reload、日志上传到 s3 等工作
- 使用 AWS NLB 取代 AWS ALB,结果是 Nginx 的 TCP 连接剧烈增长,导致 nginx reload 的影响很大,做了很多内核 TCP 连接相关的参数调优、以及 Nginx reload 相关的调整
- 利用 CloudFront 作为边缘网关,回源到 NLB,实现 DTO 流量的缩减,同时寻求降低时延
- 此方案会带来 CloudFront 的请求成本剧烈上涨,只有在有请求减免协议的情况下才有省成本的可能
- 注意仅 GET/HEAD 接口的回源流量才免费,所以此方案不适用于大量使用 POST/PUT 等方法的接口
- 发现在使用纯 HTTP 回源时,将 CloudFront 用做 API 接口的边缘网关能显著降低时延
- 将运行在虚拟机上的 Nginx 网关容器化,迁移到 EKS 中。一是为了实现快速扩缩容,二是缩短 Nginx 到服务的流量链路,节约成本
- 2022Q4(三个月)- 仍然是在做网关优化
- 验证了在 Nginx 上做 TLS 加密的可行性:使用 cert-manager 申请与管理 TLS 证书,并在 Nginx 上实现 TLS 加密,使用 sidecar 处理证书的轮转
- 使用 APISIX 搭建 APP 端数据上报网关,以帮助 Data 团队自建数据分析平台,取代当前的神策。
- 峰值接近 6W QPS,由于经验不足,APISIX 网关跟 Data 的数据解析器都问题频出,跟 Data 花了很多精力去排查问题、调优参数。投入的时间远超预期…
- 继续将流量大的接口迁移到 Q3 做的容器化网关,并添加前置 CloudFront 边缘网关,达成成本节约。期间发生两次失误,损失数千美刀
- 2022-08-08 Post Mortem 1: 我在迭代 staging 环境配置时未意识到它与 prod 环境共用了同一个 EC2 安全组,导致容器化网关的线上流量归零 2h。因为仅配置了 Nginx 可用率告警,无流量时可用率仍然是 100%,完全未触发告警规则…直到我下班路上才猛然想起这回事,在地铁站里紧急修复…
- 问题之一是 prod 环境与 staging 环境使用了同一个 EC2 安全组,没有做隔离;问题之二是仅配置了可用率告警,缺失 QPS 剧烈波动的告警
- 2022-09-16 Post Mortem 2: 迁移旧 Nginx 配置时没仔细审查旧的 Nginx 配置,导致流量改成走 CloudFront 后服务获取到的客户端 IP 实际为 CloudFront IP。但是服务可用率正常,业务侧也未配置相关告警指标,所有人无感知。直到第二天运营发现此问题,并沟通快速修复
- SRE 侧:问题根源是 SRE 未形成 Nginx 配置的 Check & Review 规范,导致很多事情全凭个人经验与发挥。
- 表面原因:旧配置使用了
proxy_set_header X-Forwarded-For $remote_addr;
,而正确的配置应该是proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
- 表面原因:旧配置使用了
- 业务侧:问题根源是迁移时只关注了服务可用率,未关注核心业务指标
- 表面原因:业务服务缺乏客户端 IP 相关指标与监控告警
- SRE 侧:问题根源是 SRE 未形成 Nginx 配置的 Check & Review 规范,导致很多事情全凭个人经验与发挥。
- 2022-08-08 Post Mortem 1: 我在迭代 staging 环境配置时未意识到它与 prod 环境共用了同一个 EC2 安全组,导致容器化网关的线上流量归零 2h。因为仅配置了 Nginx 可用率告警,无流量时可用率仍然是 100%,完全未触发告警规则…直到我下班路上才猛然想起这回事,在地铁站里紧急修复…
- 2022Q5(三个月) - 继续推进网关优化,取得预定的成本收益
- 识别到 AWS ALB/NLB 的流量成本中是包含 TLS 握手的流量的,而握手时为了最大兼容性,服务端通常需要将证书的整个证书链发送给客户端,造成大量的流量成本
- 使用单域名证书、ECC 公钥、证书层级短的证书、TLS1.3 session 复用,均可帮助缩减 TLS 握手的流量成本。
- 测试调研,确认在 Nginx 上做 TLS 加密比使用 AWS NLB 提供的加密具有很大优势,能进一步降低 TLS 握手流量成本,以及 TLS 数据处理费用(NLCU)
2022-11-08
- 内存条到货,买了两根内存条,将 GTR5 5900HX 扩容到了 64G 内存,之前装的 32G 内存则换到 UM560 上。
- 加完内存后计算发现,GTR5 512G 的固态硬盘不够用了,于是把笔记本里给 Windows 游戏用的 1T 固态拆出来放在了 GTR5 5900HX 上,600G 的游戏本来想备份到硬盘盒,后来嫌备份太慢直接不备份了…
- 堂弟过来喝酒聊天,又花了时间搞机器,结果又把英语学习给鸽了…明天绝对不鸽!
2022-11-07
- 很久以前我编辑
/histoy
这个页面就很卡顿,而且 backspace/enter 经常彻底失去作用,今天定位到了这个问题- 一开始我以为是 vscode 的问题,试了 vscode#28737 中的参数发现没任何作用。
- 今天想到只有编辑我的博客项目时才卡,进一步地,只有编辑
/history
页时才卡,而这个页面有 1200 多行内容,所以猜测是 markdown 插件的性能问题。搜索找到了 vscode-markdown#969 - 根据上述 issue 中的性能问题定位文档,我在 vscode running extension 中开了下性能录制,发现时间全花在 httpyac 上了,把它 disabled 掉问题就解决了…
- 英语阅读
- The Unlikely Pilgrimage of Harold Fry - 62/100
- 发现坚持每天学英语真的是一件相当难的事
- 之前学到 40 天的时候,我觉得自己已经差不多养成每天学习的习惯了。可国节庆回家那天就忙到把学习给忘了,之后 SRE 小组出去聚餐又给忘了一次,第三次是最近一周迷上搞 Homelab,又漏打了两三天的卡。
- 现在的总体进度是 62 天,漏打卡 5 天。算上之前在薄荷阅读上打了 7 天卡,一共有 69 天了。
- 上次测词汇量是 10/18,感觉本月 11/18 可以再测一次,应该又涨了几百。
2022-11-04 - 2022-11-06
- 家庭服务器规划:ryan4yin/knowledge/homelab
- HDMI 视频采集卡跟另一台主机均到货,开始搭建家庭服务器环境~
- MINISFORUM UM560 踩坑记录:
- 首先遇到的问题是, 主机无法启动,风扇啸叫,视频采集卡无输出。
- 用电脑试了下确定采集卡无问题,挨个插拔后定位到是内存条的问题,重新插拔后解决。
- 然后遇到的是,家里没有键盘…打算拿 PC USB 接口模拟键盘输出,发现还挺麻烦。
- 一番研究确定使用 debian preseed 模式自动化安装,然后再在 debian 上安装 Proxmox VE 虚拟化系统,曲线救国。
- 因为我的笔记本是 openSUSE,直接跑 debian-headless 的 Makefile 各种报错,手动用 zypper 安装各项依赖,遇到 genisoimage 报错
option '-e' is ambiguous;
- 换了好几个 OBS 源的 genisoimage 都没解决问题,最后在 stackoverflow 上找到解决方法 - 写了一个 10 来行的 bash 脚本作为 wrapper,问题解决。
- 镜像终于打出来了,但是在写入之前我用 qemu 测试,又遇到坑:每次都卡在设置 Root 密码这一步
- 重新使用 debian 官方提供的
example-pressed.cfg
改了一份preseed.cfg
,发现就能正常提示我,接下来需要 ssh 进去进行后续设置了。 - 其中关键修改可能是添加了
d-i netcfg/wireless_wep string
这一行,因为 UM560 是带 WIFI 6E 网卡的…
- 重新使用 debian 官方提供的
- 又是一番折腾,还额外安装了 clash 进行安装加速,终于给 UM560 装上了 Debian 并进一步装上了 Proxmox VE
- 首先遇到的问题是, 主机无法启动,风扇啸叫,视频采集卡无输出。
- Beelink GTR5 AMD Ryzen 9 5900H 踩坑记录:
- 使用同样的流程安装,每次都卡住…
- 猜测原因是 GTR5 是双 RJ45 接口,
preseed.cfg
需要做针对性调整,但是又调了两个小时,还是没解决… - 主要问题是主机没有串口,我也没串口连接线,显示器啥都不显示,根本看不到安装卡在了哪…
- 可能的解决方法:
- 直指本质:买一个键盘或者借一个键盘…
- 就要折腾:路由器上能看到 GTR5 的主机 IP 是
0.0.0.0
,也能看到 MAC 地址,说明 ARP 协议已经通过了,但是卡在了 DHCP 协议这里。或许可以在 DHCP 服务器上做些文章,只要 IP 分配成功了,应该就能直接通过 ssh 协议连接上去试试了。 - The Hardest Way:再研究下 PXE 网络装机,但是感觉大概率遇到同样的问题…
- 折腾到第二天早上 7 点多还没解决,最后京东下单了一个键盘…
- MINISFORUM UM560 踩坑记录:
- Proxmox VE 踩坑记录(一年多没用了,把以前踩过的坑又踩一遍…)
- 详见官方文档 Network Configuration -Proxmox VE
- Linux Bridge: 即网络桥接,虚拟机与外部主机共享网络
- 默认情况下 PVE 会将 IP 地址、网关、掩码都配置在 eno1 物理网卡上
- 首先先记下 eno1 网卡的参数,并将其 IP 地址、网关、掩码三个参数清空掉
- 然后新建网桥 vmbr0,将之前记录的 eno1 网卡的 IP 地址、网关、掩码都配置在此网桥上,bridge-port 填 eno1
- 点击应用配置即完成创建
- 新手常见问题(仅在 debian 上装 PVE 时才会发生,测试发现直接使用 iso 安装无此问题):
- 未清除 eno1 网卡参数,导致创建 vmbr0 时提示无法将 bridge-port 设为 eno1
- 未清除 eno1 网卡参数,导致用错误的参数创建好 vmbr0 后,由于底层 ARP 协议混乱,整个外部局域网都出现网络时好时坏的情况。
- 路由模式:其实仍然是创建一个 Linux Bridge,不过我们通过配置可以把它当成二级子路由器用,准确的说这种模式叫「Proxy-ARP Transparent Router」
- 此功能目前无法通过 UI 配置,必须命令行改配置才行。需要在 eno1 网卡上设置 ip_forward 跟 prox_arp 相关参数。
- 因为路由模式不修改内外网的 IP,这要求在外部网络的路由表中添加子路由器的网段配置。
- 详见官方文档,此模式的实际玩法待测试,上述均属我的猜测。
- NAT 网关模式:路由模式仅工作在 L3 网络层,而 NAT 更进一步,使用 Iptables 将 IP 与 L4 的端口一并做了修改。
- 好处是内部网络就跟外部网络完全隔离了,安全性啥的更高。而且不需要额外修改外部网络的路由规则。
- K3s 问题
- 在 raspberrypi 上遇到 Fail running on Raspberry Pi Ubuntu 21.10 这个问题,跑了下
sudo apt install linux-modules-extra-raspi
再重启问题就解决了。 - 新版本 k8s 需要指定 ingressClassName,但是 k3s 默认没有创建 ingressClass : [Create by default traefik ingressClass when creating a cluster](https://github.com/k3s-io/k3s/issues/556
- 在 1.25 版的 k3s 集群上安装 victoria-metrics-k8s-stack 时,operator 一直报错,排查日志发现是
policy/v1beta1
被废弃导致的,顺手提了个 PR fix: bump victoria-metrics-operator’s version to 0.15.*
- 在 raspberrypi 上遇到 Fail running on Raspberry Pi Ubuntu 21.10 这个问题,跑了下
2022-11-03
- 英语阅读
- The Unlikely Pilgrimage of Harold Fry - 57/100
- The Time Machine - 21/30
- 英语单词与听力练习
- 一点英语 270 天英语学习 - 58/270
- 上班:大数据服务遭遇性能瓶颈,发送 kafka 延迟高涨。
- 因为节点没安装 node-exporter 没法看监控,手动跑了一堆 sysstat 相关的命令分析网络 IO、磁盘 IO,以及一堆其他命令分析 TCP 连接、CPU 利用率等等,都很正常…(再次确认 node-exporter 有多么方便…)
- 最后通过 kubectl-flame 画火焰图,定位到是启用了 gzip 压缩耗时很长。改成不压缩后估算发现 kafka 带宽顶不住全部流量,最后改成 lz4 压缩算法解决,平衡了客户端压缩性能与贷款消耗。
- 同时也了解到 alibaba 开源的 arthas 也能做同样的工作。
- 折腾硬件
- 买的 mini 主机 MINISFORUM UM560 到货了,装好固态、内存条后,想到自己没有显示器…装机很麻烦
- 研究了一下 Proxmox 网络装机,感觉太麻烦,放弃该方案。
- 想着利用上手上的平板或者笔记本显示屏,一番研究后在京东下单一根 80 块的 1080p HDMI 转 USB/type-c 视频采集卡,输出 UVC 内容。
- Windows/Linux/Mac 均可通过 OBS Studio 播放或录制此卡输出,实现将笔记本作为显示器的功能。
- Android 可安装 USB OTG camera 或者 USB Camera,同样能把手机或者平板当成显示器用,或者实现视频录制。
- 如果再补充一根 type-c 转 HDMI 线,就能实现录制 Android 设备的输出了。
- 把采集卡插 PC 上,就能把平板或者另一台笔记本当成副屏使用,很期待解锁此项新玩法~
- 买的 WIFI6 双频路由器 中兴 ZTE AX5400Pro+ 到货了,简单体验了一把,感觉还行。
- 打算后续拿它当主路由,再在 UM560 上开个 openwrt 虚拟机当旁路由。
- 实现很简单,改下主路由 DHCP 分配的默认网关 IP 即可。
- 买的 mini 主机 MINISFORUM UM560 到货了,装好固态、内存条后,想到自己没有显示器…装机很麻烦
2022-10-29
- 发现了老板的博客 我的时光记忆,记录了 2013 年到 2021 年每一年的年度总结。
- 显然现在能说,老板年初对 2022 年的看法太乐观了,年初的计划已经随着这次裁员一起被推翻。
- 本来去年年底的时候感觉自己在大宇站稳了脚跟,可现在又感觉到迷茫了。
2022-10-27 - 2022-10-28
- 英语阅读
- The Unlikely Pilgrimage of Harold Fry - 51/100
- The Time Machine - 17/30
- 英语单词与听力练习
- 一点英语 270 天英语学习 - 52/270
- 跟朋友及同事聊了聊近况,网关技术、Web3,以及个人发展
- 大宇方向与团队结构调整,送走了很多人,包括去年带我一起冲浪的算法大佬。
- 这短短两天,真的走了好多超强的大佬啊,其中很多在公司都呆了四五年了,当然也不乏才进公司不到一年的新人。第一次遇到这种场面,难免有些 emo
- 翻了翻公司的邮件组,emo 之余,也能感觉到公司早期的时候,内部氛围真的很好,互相分享韩语、日语、设计技能。
- 因为一些意外,发现了大宇前 FE Leader 的博客,读了 [Review] 2020,对做开源项目有了些新的感悟。
2022-10-23
- 看了些动态规划算法相关的文章,感觉很有意思
- 动态规划详解进阶
- 动态规划之四键键盘
- 起因是群友「山」想要使用动态规划算法,基于「编码表」自动分析出句子的「最短理论编码」。
- 目前打字领域许多拆字工具、赛码器,底层实际都是基于「前缀匹配」+「按词长降序搜索」这样的思路进行句子的编码分析,但这样只能搜到一个此框架下的「相对最优解」。
- 举个例子,使用小鹤码表时,前缀匹配思路下,只能搜到「我想 想象 一下」这种拆分,但实际上「我 想想 象 一下」才是「理论最优解」,比前一种拆分要短一码。
- 通常来说用「相对最优解」来拆分也够用了,因为这种边际情况应该不多,所以问题也不大。
- 不过如果追求完美,那大概就得学学「最短路径算法」,直接暴力搜索的思路大概如下(输入为一个中文句子):
- 从句子第一个字符出发,首先从码表中找到这个位置所有可能的编码,它们就是下一跳的所有节点,并计算出到这些节点为止的行进路线、总的码长。
- 从上述所有节点出发,再去找到所有下一步所有可能的编码,同样计算出当前行进路线、总的码长。
- 这样递归直到句子迭代完毕
- 最终计算出总码长最短的路线,就是最短路径,它的编码就是「最短理论编码」。
- 基于「动态规划」去优化「最短理论编码」算法,关键点在于它的「重叠子问题」是哪个?
- 英语阅读
- The Unlikely Pilgrimage of Harold Fry - 46/100
- The Time Machine - 9/30
- 英语单词与听力练习
- 一点英语 270 天英语学习 - 47/270
2022-10-19 - 2022-10-20
- 英语阅读
- The Unlikely Pilgrimage of Harold Fry - 43/100
- The Time Machine - 4/30
- 英语单词与听力练习
- 一点英语 270 天英语学习 - 44/270
- 在英语学习规划中补充了 Cambly/Lingoda 等口语练习站点
- 在「一点英语」上过一遍 96 个单词,大概需要 90mins 的时间,另外在薄荷英语+知米阅读上还需要花差不多 40mins
- 发现最近英语学习成了我业余生活的主旋律,每天花大概 130mins 在英语学习上,基本上工作日没有任何时间去学习 Linux 跟 TCP/IP 了
- 同时「下班没事干综合征」跟「网络小说成瘾」也被英语学习治好了…
2022-10-18
- 英语阅读
- The Unlikely Pilgrimage of Harold Fry - 41/100
- 感觉薄荷英语小程序做得不太行,一番查找发现了价格更亲民,小程序也做得更好的「知米阅读」,花 199 买了它的年费会员。并且开始在「知米阅读」上看《The Time Machine》这本书。
- 英语单词与听力练习
- 一点英语 270 天英语学习 - 42/270
- 使用 Test Your Vocabulary 做了一次词汇量评估,发现相比去年词汇量上升了大概 400 词(隐约记得去年测试大概是 4700 左右)。说明最近的单词跟阅读学习,效果显著,有点成就感~
- 目标词汇量增加速度:每天约 20 个单词,再用 5 个月的时间完成 8000 词的目标。
- 也不能忽视「熟词生义」跟「词组」学习,这个主要通过「薄荷阅读」跟「知米阅读」来补充。
- 英语语法可以再放一放,等词汇量上来,后面再一次性补齐短板。
2022-10-17
- 英语阅读
- The Unlikely Pilgrimage of Harold Fry - 40/100
- 英语单词与听力练习
- 一点英语 270 天英语学习 - 41/270
- 英语语法
- 《英语语法新思维——初级教程》 - 8/366
2022-10-15 - 2022-10-16
- TCP/IP Illustrated, Volume 1, 2nd Edition 读完第一章 - 进度 31/920
- 我以前听说这本书是 TCP/IP 圣经,一直望而却步,这次实际一读发现,第一卷还挺简单直观的
- 跟 0xFFFF 社区的朋友交流,积累了一点有价值的讨论:记 QQ 群里一次关于日常笔记、学习规划、学习节奏的讨论
- 打游戏学英语,玩了玩 Genshin Impact 跟 Deemo 2,体验挺不错的。
- The Unlikely Pilgrimage of Harold Fry - 39/100
- 一点英语 270 天英语学习 - 40/270
2022-10-13
- 跟网友们分享自己做 /history 跟 /now 这两个页面的经验。
- 我是从入职新公司开始,尝试在博客上做 /now 页面的,灵感来源于其他博友的 /now 页面。一开始直接断更了 5 个月,因为不知道写啥。到了今年 2 月份才慢慢找到感觉。
- 写得多了发现自己的 /now 变成了单纯的流水账,缺少规划。就将 /now 的内容改成了「当前进展 + 学习规划」,而历史记录则拆分到了 /history。
- 当然有内容可写肯定不是这个 /history 的功劳。更多的是因为找到了学习状态,学的东西多了,做的东西也更有意思了。另外日常读到看到一些内容,我也会尝试去做一些深度思考,跟朋友探讨交流,而不是一笔带过。如果觉得其中一些较长的探讨内容有价值,我会临时粘贴到手机记事本上,晚上再把它们整理到这个 /history 页面。
- 如果发现其中一些想法有成文的价值,我会考虑把它们进行增补,形成一篇博客发表出来。最近的「Learn English Again」跟「刻意练习」两篇文章,就都来源于我跟朋友的群聊记录。
2022-10-12
- 英语
- The Unlikely Pilgrimage of Harold Fry - 35/100
- 一点英语 270 天英语学习 - 36/270
- 重新读了一遍恶魔奶爸分享的词典文章,在平板上用欧路词典配置好了所有双解词典、英英词典、搭配用法词典、词根词缀 vocabulary builder。确实很好用。
2022-10-11
- 调研市面上的开源笔记软件,主要有双向链接、多维表格两大类。
- 我的需求:
- 能使用 git 来管理笔记版本
- 使用 markdown 等流行文本格式编写笔记内容。
- 听说双链很牛逼,所以希望希望支持双链
- 希望能像 notion 一样,拥有更灵活的排版格式
- 希望能导出成静态站点
- 最后我选择了 logseq,因为多维表格类的笔记软件目前没有特别出彩的,而且它的存储格式是个问题——markdown 的特性太弱不足以支撑多维表格的特性。而且 logseq 进阶可以用 emacs org mode,虽然没用过但是听说是功能更丰富的排版格式。
- logseq 能直接导出成站点,但是目前还不支持自定义导出站点的样式(默认的暗色主题有点丑…)
- 我的需求:
2022-10-06 - 2022-10-08
- 英语
- The Unlikely Pilgrimage of Harold Fry - 31/100
- 一点英语 270 天英语学习 - 32/270
- 打 galgame 学英语(剧情吸引人,日常用语跟某方面的词汇量也很丰富…)
- 找英文 galgame 了解到一个黄油社区 f95zone…
2022-10-05
- 英语
- The Unlikely Pilgrimage of Harold Fry - 28/100
- 一点英语 270 天英语学习 - 29/270
- 打 galgame 学英语(剧情吸引人,日常用语跟某方面的词汇量也很丰富…)
- Linux/Unix 系统编程手册(上册) - 进度 296/572
- 完成了习题 12-3
2022-10-04
- 英语
- The Unlikely Pilgrimage of Harold Fry - 27/100
- 一点英语 270 天英语学习 - 28/270
- 打 galgame 学英语(剧情吸引人,日常用语跟某方面的词汇量也很丰富…)
- 看完了《赛博朋克:边缘行者》
- 剧情比较狗血,不带脑子看还是很爽的。
- 赛博朋克世界底层人民的反抗,结局是血淋淋的,主角跟女二都直接没了。
- 豆瓣上一条评语我很认同:浪漫、残酷、疯狂。
2022-10-01 - 2022-10-03
- 英语
- The Unlikely Pilgrimage of Harold Fry - 26/100
- 一点英语 270 天英语学习 - 27/270
- Linux/Unix 系统编程手册(上册) - 进度 296/572
- 看完了 I/O 缓冲、文件系统、目录跟链接,而文件属性、拓展属性、ACL 不太感兴趣,就走马观花看了看。
- 完成了 12 章的习题 1 跟 2,不太熟悉 C 语言,还是有点费劲的。
2022-09-30
- 英语
- The Unlikely Pilgrimage of Harold Fry - 23/100
- 一点英语 270 天英语学习 - 24/270
- Linux/Unix 系统编程手册(上册) - 进度 190/572
- 完成第 12 章 /prod 文件系统与 uname 系统调用,明天做下习题。
2022-09-29
- 国庆回家度假
- 英语
- The Unlikely Pilgrimage of Harold Fry - 22/100
- 一点英语 270 天英语学习
- 回到家后,忘记了打卡。虽然早就知道连续打卡 270 天很难,不过还是很错愕,居然在第 23 天就断掉了。
2022-09-26
- 英语
- The Unlikely Pilgrimage of Harold Fry - 19/100
- 一点英语 270 天英语学习 - 20/270
- Linux/Unix 系统编程手册(上册) - 进度 174/572
- 略读了「进程凭证」、「时间」「系统限制与选项」三章,因为对其内容不太感兴趣,跳过了习题。
- 第 12 章讲 /proc 我比较感兴趣,明天读
2022-09-24 - 2022-09-25
- 英语
- The Unlikely Pilgrimage of Harold Fry - 18/100
- 一点英语 270 天英语学习 - 19/270
- 试了下每天靠通视频语料背 80 个单词(包含复习每日复习),花了 100 分钟,难度略高。暂时改成 50 个明天试试看。
- American Pronunciation Workshop 美语发音教程 - 一周目 2/16
另外在 twitter 上看到了 待业五年后的找工作经历 这篇文章,读完之后,敬佩之余也想到一个问题:「如此专注在某一个很小的领域,在世俗意义上到底能取得多大的成功?」
这位文章作者毕业五年一直没找工作,开源项目也仅仅专注于 Flask 开发跟写各种布道的文章、书籍。 从绝大部分公司普通公司的角度来讲,他的技术栈显然是不合格的,Java/Go 性能都秒杀 Python,Flask 你懂的再多也没用。 也因为这个原因,作者面了这么多公司,最终没几个拿到 offer.
但是作者确实取得了名望。 他的书写得不错,在技术圈里广受好评。 还组织过两场国内 PyCon 技术大会,技术圈内小有名气。 还运营了 hello-flask 社区,并且长期参与 flask 的开发维护,Github 跟 Twitter 上都有上万 followers.
而且现在,他也确实凭借自己的能力进了外企(即使有 90% 的职位都拒绝了他)。
感觉这位作者的经历,是我此前从未发现的一条出路,虽然这条出路很窄,他的成功也很难复制。
我目前从中学到两点:
- 得把英语学好(我正在做这件事)
- 专注一个子领域深耕,才是提升技术能力跟影响力的捷径!啥都想学的结果只会是不断上赶着追逐别人创造的知识,啥都不精。
2022-09-23
- 英语
- The Unlikely Pilgrimage of Harold Fry - 16/100
- 一点英语 270 天英语学习 - 17/270
- American Pronunciation Workshop 美语发音教程 - 一周目 1/16
- 多抓鱼上下单了《English Grammer In Use》跟《赖世雄经典英语语法》,语法几乎全忘光了,这次打算补一补语法
- z-library 上下载了《Key words for fluency》前两本书,因为发现自己口语经常不太会表达自己的想法,打算靠这个补补看
2022-09-21
- 英语
- The Unlikely Pilgrimage of Harold Fry - 14/100
- 一点英语 270 天英语学习 - 15/270
- APISIX 504 问题
- 周会同步,同事提示我 node-exporter 的 network traffic 部分就有列出 nf_conntrack 表的监控。但是因为环境问题,我跑 APISIX 这批机器刚好没整这个监控…再次确认了完善的监控功能的重要性
- 调整 nf_conntrack 相关参数后,问题暂时解决了。但是接下来遇到 TCP 连接数无法超过 65535 的问题,导致 504 报错…
- 按理说我 nginx 有两个 worker,
worker_connections
也设置到了 65535,至少应该也能撑住 65535 * 2 的连接数量? - 发现 alloc : orphaned : timewait 三类 TCP 连接数的比值大概为 66% : 13% : 21%,
dmesg
命令能看到很多这样的错误:TCP: too many orphaned sockets
- 搜索一番确定 orphaned 连接太多一般有两种可能:一是 tcp 连接的内存用尽导致无法为新连接分配内存,二是 TIME_WAIT 导致的 orphaned 连接。所以解决方法是调整 tcp 内存相关参数,启用 TIME_WAIT reuse
- 按理说我 nginx 有两个 worker,
- 读了一点《深入理解 Linux 网络》这本书,因为这两天搞 APISIX 网关,深刻意识到自己对相关知识缺乏了解
2022-09-20
- 英语
- The Unlikely Pilgrimage of Harold Fry - 13/100
- 一点英语 270 天英语学习 - 14/270
- Moon Palace, by Pual Auster - 10.6%
- APISIX 504 问题
- 上周给这个 case 提了个 issue 到 APISIX 社区,但是官方给出的思路并无参考价值。
- 今天晚上左思右想,最可能还是 TCP/IP 协议栈有问题,网上搜了下「丢包 504 超时」,然后根据找到的流程排查了一下,第二个排查项直接命中,就是 nf_conntrack 满了导致的问题!
- 就好像是找到了正确的房门钥匙是「丢包 超时 排查」,困扰我好几天的问题,瞬间就找到了突破口。
- 此问题相关的笔记,我后续会在 Linux 504 超时丢包问题解决思路.md 更新
2022-09-18
- 沉迷学英语…
- 薄荷英语 100 天阅读一本英文书 - 11/100
- 一点英语 270 天英语学习 - 12/270
- Moon Palace, by Paul Auster - 6.5%
- 完成 TLPI 第 5/6 章的习题
- 习题告诉我 longjmp 是个大坑,能不用千万别用,出错的现象太诡异了。
2022-09-15 - 2022-09-17
- 沉迷学英语…
- 薄荷英语 100 天阅读一本英文书 - 10/100
- 一点英语 270 天英语学习 - 11/270
- Moon Palace, by Paul Auster - 4.2%
- 最近一直在跟薄荷英语的原版书课程《The Unlikely Pilgrimage of Harold Fry》,就想再次挑战下自己直接去读英文原版书。结果发现 Paul Auster 的《Moon Palace》意外地好读,生词很少,读得很流畅。
- 然后又陆续试了下《Sophie’s World》、《Majo no Tabitabi(魔女之旅)》,难度都不高,只有《Tasogare-iro no Uta Tsukai(黄昏色的咏使)》生词偏多,读着费劲。
- 阅读了几篇介绍向量数据库与相似度检索技术的文章,写得非常简洁直观
- 大概介绍了基于倒排索引的传统文本检索方式的缺点,以及基于向量的相似度检索如何对其形成降维打击,以及如何用简单的几行 Python 代码,实现基于向量的相似度检索功能。
- 向量数据库入坑指南:聊聊来自元宇宙大厂 Meta 的相似度检索技术 Faiss
- 向量数据库入坑:传统文本检索方式的降维打击,使用 Faiss 实现向量语义检索
2022-09-13 - 2022-09-14
- 学英语
- 完成 TLPI 练习题 4-1 与 4-2,节奏是每天晚上完成一个习题
- 有点慢,不过毕竟是起步阶段,也能接受。
- 习题 4-1 主要考察如何读写文件,如何使用 getopt 函数解析命令行参数
- 习题 4-2 主要考察如何读写含有空洞的文件,主要就是遍历缓存空间,并使用
lseek
跳过空洞部分的写入操作。
2022-09-12
- 学英语
- 看了 TLPI 作者的演讲 Kernel Recipes 2022 - Once upon an API
- 以 prctl 为例介绍了 Linux 中一个 API 的错误设计如何影响到 Linux 的其他部分,而且因为缺少文档,也没人维护,其中部分问题直到十多年后才被发现。为了兼容性,这些错误的设计就成了永远不可能被修复的 bug
- socket api 中有一些错误设计已经在 Linux 中存在了近 40 年,这类错误设计给 Linux 系统编程造成了太多的痛苦。
- 还有 inotify api、cgroup v1,都是错误设计的典型,它们产生了很多作用,但是考虑的问题都过于片面,由此引发了许多问题。
- 介绍了可用于避免这些 API 错误设计的一些方法。
- 看了 TLPI 作者的演讲 An introduction to control groups (cgroups) version 2 - Michael Kerrisk - NDC TechTown 2021
- 主要介绍了 cgroup v2 的历史,演示了如何使用 cgroup v2 进行 cpu/pid 限制,以及如何使用嵌套 cgroup v2 进行更细粒度的资源限制。
- 发现 cgroup v2 跟目前内核领域最火的 eBPF 也有些交互,有点意思。
- TLPI 作者做了很多 cgroup/namespaces/capability model/seccomp 的演讲,可以在 Conference presentations - man7.org 中找到,有时间再看看其他的。
2022-09-11
- 学英语
- Linux/Unix 系统编程手册(上册) - 进度 136/572
- 这本书的主要内容就是在介绍 Linux 的各种 C 语言 API,跟想象中的还是有些不一样。(我以为可能像《深入理解 Linux 内核》一样,还会讲内核的一些实现细节。)
- 也能感觉到 Linux 中也存在相当多的历史包袱,比如说一个文件描述符复制就有
dup()
dup2()
dup3()
三个函数可用,大文件读写的支持也有好几种实现方式,另外标准 API 中错误值返回方式也存在一些特例需要记忆。总之就是很多地方都有补丁的痕迹,Linux 在不断地进化,许多旧的 API 会慢慢被弃用,新的 API 也会被不断地添加。
- 也能感觉到 Linux 中也存在相当多的历史包袱,比如说一个文件描述符复制就有
- 虽然不是很有趣,但是还挺好读的,进度已经差不多 1/4 了。不过今天跳过了所有习题,打算明天把跳过的习题都做一遍(不然读了过两天就忘了,等于没读)
- 这个月或许能把这本「上册」读完,并且完成对应的练习题。
- 这本书的主要内容就是在介绍 Linux 的各种 C 语言 API,跟想象中的还是有些不一样。(我以为可能像《深入理解 Linux 内核》一样,还会讲内核的一些实现细节。)
- 迭代了一波旧文章,修改了几个 typo,调整了部分内容使其更易理解。
- 发现今天距离这份 history 记录的开始时间刚好一年半,犒劳自己一顿?emmmm
2022-09-10
- 「英语流利说 懂你英语 A+」的 AI 语音太枯燥,放弃继续该课程,卸载了「英语流利说」。
- 继续「一点英语」、「薄荷阅读」学习打卡
- 参与开言英语的 WeMeet 英语角,又遇到了 Felix,跟几位 partners 聊得很开心~
- 主要交流了如何通过各类电影、电视剧等材料去学习英语。明确的一点就是单纯为了娱乐看美剧,对学英语的帮助是很小的。
- 关键就是重复听,一直到不看字幕能听懂的程度,还可以去领会其中词组、语法、句式的用法。
- 下午到晚上在 Discord 的中英交流 Chatting Room 里泡了大半天,很多英语还听不太懂,但是氛围很好,聊得很舒服。
- Linux/Unix 系统编程手册(上册) - 进度 72/572
2022-09-05 - 2022-09-09
- 「一点英语」、「英语流利说 懂你英语 A+」打卡
- 2022-09-08 开始在「薄荷阅读」上阅读《一个人的朝圣》英文原著,体验甚佳~
2022-09-04
- 完成文章 Learn English Again
2022-09-03
- 试用了常见的各种英语学习软件,做了一些笔记
- 为了提升阅读能力,购买了薄荷阅读 199 块钱 100 天会员,选的书是《一个人个朝圣》
- 各个软件都做了一波能力测评,我目前的英语水平应该属于 CEFR 框架的 B1 到 B2 之间,其中最差的是语法跟口语交流能力,其次是词汇量。
- 各英语学习软件使用体验(仅体验了匹配我当前水平的课程)
- 流利说挺好用的,价格是 198 元 / 每月
- 一点英语 APP 测出的水平测评偏高,但是它基于各种视频资料的学习过程真的做得很有趣~ 但是价格也比流利说贵了很多。
- 开言英语是专业外教录制的视频课,体验也还不错,价格比流利说略高一点,2598 元一年。
2022-09-02
- 偶然发现手机桌面上有一个安装了好久但是一直没用过的 APP 英语流利说,顺手用它测了下自己的英文水平
- 流利说把英语分成 7 个 Level,它评价我属于 Lv.5。五个评级维度中我的发音是最好的,口语是最差的。而词汇量大概在 5000 这个档位(我觉得如果算上我懂的计算机名词可能会更高些 emmmm)。
- 测出的结果跟我的自我感觉基本吻合,之前有跟 AWS 工程师做过几次英语沟通,发现我的口语勉强可以支撑日常技术沟通,但是感觉很费劲,原因显然是口语基本没怎么练过。而我的发音之所以好,主要是大三的时候专门跟着奶爸推荐的《赖世雄美语音标》、《American Spoken English》等资料练习过。
- 深入探索了下英语流利说这个 APP,花 49 元买了一个月的个性化学习计划,还给分配微信学习社群跟班主任,每天坚持 30 到 60 分钟。第一天体验这个学习计划,感觉确实跟我比较契合,而且也不枯燥,打算坚持一个月试试。
- 我学英语的目的:听说能力(日常对话)、阅读各类英文资料、写英文博客。
- 听说能力(日常对话):已经测过非常差了,亟待提升。
- 阅读:目前可以无障碍阅读大多数编程相关的博客跟文档,但是我对自己的阅读速度以及词汇量还不够满意。
- 写作:语法这么差,词汇量又低,而且高中后基本就没怎么练过英文写作,我的写作能力显然还有很大的提升空间。
- 英语流利说「懂你英语 A+ 学习计划」34 课 - 进度 1/34
2022-08-31
- 排查与解决了博客的一个隐藏 bug,记录下排查的思路与流程(省略了其中一些探索性的、方向不正确的步骤)
- 朋友反馈站点评论系统登录异常,我着手排查
- 通过 firefox devtools 定位到是点击登录后被重定向到了错误的页面
- 进一步确认是 utterances 的登录按钮上的 redirect url 参数有问题
- 在 DoIT 主题的 issues、代码中寻找 utterances 相关逻辑,未发现问题
- 尝试在 utterances issues 中搜索关键字 redirect,找到 https://github.com/utterance/utterances/issues/474
- 定位到是页面跳转时仅做了局部刷新,未更新 header 中的 canonical link 导致的问题。
- 进一步排查到 DoIt 主题使用了 PaperStrike/Pjax 做页面局部刷新,目的是提升性能
- 阅读 Pjax README 发现它的初始化代码格式为
new Pjax({...})
,尝试在主题中搜索关键字new Pjax({
,找到对应的代码块 - 找前端的朋友给了个 canonical link 的 CSS 选择语法,使用该语法修改主题,测试发现问题解决
- 提 PR 给这个 Hugo 主题的 github 仓库: https://github.com/HEIGE-PCloud/DoIt/pull/709
- 总共用时大约 1h
- 逛 @Bensz 的友链时,发现 APISIX高级路由之通过Body参数转发请求 - 张戈博客这篇文章,它为我正在解决的一个问题提供了非常优雅的思路——使用 apisix
route
的filter_func
功能,真的是意外之喜~
2022-08-28
一直很疑惑,我站点的访客数一直是起起伏伏,但是站点的流量却越来越高。而且流量是平缓地上涨,也不像是有人在恶意刷我流量。
之前没有做过详细的排查,不过觉得估计是跟图片啥的有关吧,把图片全换成了 webp,体积下降约 80%。 但是发现图片这波优化对流量没有任何帮助,流量还是在缓慢上升…
今天跟朋友讨论时,突然发现居然是 index.xml
在跑我的流量,我之前一直以为这个地方显示的是 index.html
首页,就没觉得它有问题…
最后确认这个是我站点的 RSS Feed 文件,也就是 RSS 订阅造成的。 我全站现在一个月也就大概 80G 流量,其中接近 90% 都是这个 RSS Feed 跑出来的 —_—||
排查之下发现是之前为了 RSS 订阅的体验,把所有文章的内容都嵌进去了,导致体积有 2.8M,可能因为订阅量越来越多,以及 RSS 订阅的周期性拉取,导致数据量一直在涨。
解决方法:
做了一波修改,现在只将最新的 15 篇文章内容嵌入到 RSS 里,其他文章只给个标题跟原文 URL,使 RSS Feed 文件的大小降到了 700K,暂时应该不用担心 Vercel 流量用光了…
2022-08-25
- 根据 APISIX 官方建议,使用
priority=-1
跟proxy_next_upstream
实现了请求的 fallback 功能,赞一个。- 直接使用 k8s service FQDN 作为 node host 了,因此实质是通过 APISIX + kube-proxy 实现的功能,kube-proxy 负责在 pods 之间做四层负载均衡,负载测试也很正常。
- 在上游服务挂掉的情况下,所有请求都会首先尝试请求默认服务直到超时,这会导致延迟暴增,所以建议尽量调低 APISIX upstream 中的几个超时时间。
- 在使用 APISIX 的 proxy-mirror 插件时也遇到了超时的问题,mirror 服务器挂掉导致请求延迟暴增,原因是未调整 proxy-mirror 插件的超时时间,所有请求都会卡在 mirror 请求这里,一直等待完 60s… 将 proxy-mirror 插件的超时时间调整为
300ms
后解决了这个问题。
2022-08-25
- 有个 HTTP 请求失败后 fallback 到备份服务器的需求,想写个 lua 插件来支持它,在 Github 上咨询 APISIX,聊了两天官方一直建议我看看这个
nginx_next_retry
,之前一直感觉不太合适,APISIX 的文档也语焉不详,但是今天研究了一波 Nginx/OpenResty 的官方文档,好像又有戏 hhhh- https://github.com/apache/apisix/discussions/7773
- 重点有二,一是设置
proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504 http_403 http_404 http_429 non_idempotent;
,二是设置 node 的priority=-1
- 重点有二,一是设置
- 也思考了一波,这类需求很特殊的专用网关,到底应该用 Envoy 还是 APISIX/OpenResty,还是说自己写一个…
- https://github.com/apache/apisix/discussions/7773
- 了解 zig 语言时,读到一篇写得很好的现代化 C 使用体验,写得很好
2022-08-21
- 为了练习 C 语言,使用 ffmpeg 完成了一个 video2ascii 项目
- 项目地址 video2ascii-c
- 花了较长时间研究 Makefile 语法跟 clang 的参数,然后又花了很长时间熟悉 ffmpeg 的 api
- 目前已经集齐用五种不同语言实现的 video2ascii 工具,除了 C 语言是调用的原生 API 外,其他语言都是使用 ffmpeg/opencv 的 wrapper 实现的。
2022-08-20
- 读完 The ANSI C Programming Language
- 笔记:C 语言笔记
- 明天写几个小程序练练手,比如 video2chars 哈哈
- C 语言补完了,开始读 Linux/Unix 系统编程手册 - 进度 56/572
- 挺好读的,慢慢来感觉了~
2022-08-19
- Nginx 网关的 TLS 加密:打算换一个思路,用 APISIX 搞个网关再测一波。下周搞搞看吧
- 晚上读完了《在峡江的转弯处 - 陈行甲人生笔记》
- 这本书写得极好,作者分享的洞见非常契合我,感觉于我是很有益的。
- 文字中的感情相当丰富,有人在豆瓣上评论说为此感觉到不适,可我觉得这才是真性情,如此丰富的感情其实正说明了作者的感性,以及对生活的态度。因为看到这样亮眼的光芒而难以直视的人,或许只是因为待在黑暗中太久了(如果是大四颓废的我读这本书,大概就会是这个感觉吧)。
- 在这里,我也用书中一句话来回答一下 2017 年 2 月 6 日写下「山岭就像时间一样看不到边,翻过了一座又是一座,这又是一种更大的痛苦」的我,告诉他我现在的想法是「脚下虽有万水千山,但行者必至。」至于我是不是在说空话,事实胜于雄辩,就让时间来证明吧。
2022-08-18
- 尝试上线 Nginx Gateway 的 TLS 加密功能,使用了 Google Public CA 提供的三个月有效期 TLS 证书
- AWS NLB 上观察到大量连接被 Client Reset,tcpdump 抓包后通过 wireshark 分析,确认是大量的 TLS 握手在
Change Cipher Spec
这一步后,被客户端强制 RST。正在到处查 TLS 握手的资料… - 奇怪的是,TLS 加密功能放量到 0.5% 左右后,各项 QPS、可用率、延迟等指标都没啥明显的变化,客户端上报的业务指标也正常,就好像 RESET 对业务没任何影响一样…
- 本地压测一切正常,无法复现这个 RESET 问题
- 还有一个问题是,发现 cert-manager 给出的证书文件包含了域名证书、中间证书、根证书,导致 TLS 握手阶段发一个证书给客户端直接用了 4000 bytes… 有点费流量…
- AWS NLB 上观察到大量连接被 Client Reset,tcpdump 抓包后通过 wireshark 分析,确认是大量的 TLS 握手在
- 听歌,看着《江城》,我意识到一件事——多记日记跟笔记,这样到了想要写些有意思的文字的时候,就能发现手边已经有了大量的一手资料,或者发现自己在这方面的积累还很少,或许现在还不是时机。
2022-08-17
- 阅读《在峡江的转弯处 - 陈行甲人生笔记》 - 进度 153/278
- 第五记「密歇根湖上有一千种飞鸟」,其中有些言行我敬佩不已,有些瞬间让我唏嘘感叹,有些经历我感同身受。
- 备考清华以及在清华两年学习生涯的描写让我惊觉自己已经工作三年多了,正好仍然是一人吃饱全家不饿的状态,得益于良好的公司文化跟领导带团队的风格,我工作闲暇时间好像也不少,也一直想在业余时间进行一些针对性的学习,提升自己的专业能力跟英文能力。看在大佬们在这个年纪都这么努力的份上,我也应该再加一把劲吧!
2022-08-16
- 阅读《在峡江的转弯处 - 陈行甲人生笔记》 - 进度 36/278
- 读完了第一记「我和我的母亲」,很久没有这样被感动过了。
- 2022 年已经过去三分之二,回过头看看这份记录,发现自己确实还是学了不少东西的。值得肯定,周末犒劳下自己~
2022-08-11 - 2022-08-14
- 拿 VISA 信用卡开了个 Azure 云的试用账户,研究了一波。
- 给 https://thiscute.world 加了个 Azure 的 Front Door 作为 vercel 的前置 CDN,发现效果出奇的好!现在站点访问速度跟国内服务器基本没差了,即使缓存不命中,回源速度也特别得快!
- 不过价格也比较感人,也只有试用阶段才舍得用。
- 据说 Azure CDN (Microsoft Standard) 在国内虽然比 Front Door 差一点,但是速度也要强过 CloudFalre/CloudFront,试用期之后可以试试。
- 算了下 Azure CDN 一个月可能也就 10 刀出头,数据即使丢在 Azure Blob Storage 对象存储里,以我不到 1G 的总数据量一个月才不到 1 刀,完全可以接受。
- 堪称免备案站点加速方案中的战斗机!
- 给 https://thiscute.world 加了个 Azure 的 Front Door 作为 vercel 的前置 CDN,发现效果出奇的好!现在站点访问速度跟国内服务器基本没差了,即使缓存不命中,回源速度也特别得快!
- 选 Azure 本来只是因为工作天天接触 AWS/GCP,想试用下全球排名第二的 Azure 是个啥感觉,结果意外发现它的国际 CDN 在国内这么快。
- 当然 Azure 的坑也多,我遇到的有
- 资源的删除操作存在各种延迟。比如列表还显示该资源,点进去又提示 not available,提示删除失败,但是点进页面资源又已经没了…
- Azure CDN 的坑
- 不支持通过 CNAME 绑定根域名,这一点官方没有任何文档说明,但是根据这个博客,实际上可以通过添加值为
cdnverify
的 CNAME 记录到cdnverify.<endpoint-name>.azureedge.net
,就可以解决这个报错…但是即使这样解决了报错信息,仍然存在一个问题——Azure CDN 现在不再给根域名提供 TLS 证书服务,也就是说 HTTPS 没戏了… - HTTPS 证书的申请与部署、配置的修改速度特别的慢。
- 但是 Azure CDN 的上述这些毛病 Azure Front Door 都没有!Azure Front Door 唯一的缺点就是太贵(这或许是我自己的缺点…)
- 不支持通过 CNAME 绑定根域名,这一点官方没有任何文档说明,但是根据这个博客,实际上可以通过添加值为
- 目录是用的 Active Directory,原生的多租户设计,但是感觉真的好难用啊,跟 AWS/Alicloud 的设计区别很大。
- 所有资源都是 uuid 这一点,感觉不太友好。
- 删掉了一个旧 CDN endpoint 后,又建了一个跟之前名字一样的 endpoint,结果创建成功了,但是页面到处报错 s[’@odata.type’] is not a function
- 2022-08-16 更新:这个 bug 持续四天了,而且我测试站点的 http 端口目前仍然报错… 我怀疑是 rules engine 配置错了,但是这个页面也挂了,现在没办法修改,简直离谱。
- 不得不说 Azure CDN 是我用过的稳定性最差的 CDN,要不是国内速度确实快,我就直接弃坑了…
- CDN 如果把源站改为 custom origin,会有五六分钟的时间疯狂报错 404,之后又莫名其妙地恢复…
- 收费:Azure 的大部分资源价格跟 AWS 相差无几,都是「平民止步」的定价策略。
- 而且 AWS/Azure/GCP 的出网流量、跨可用区流量都是额外计费的,不像国内云厂商,云服务器跟网络带宽可以绑在一起买。
- InfoQ 翻译了一篇文章 为了追求速度,我们测试了全球所有的 CDN,测试了全球的 CDN 速度,画出了一张全球速度最快的 CDN 厂商分布图。其中显示 Azure 的确是中国区域最快的 CDN(仅比较了国际 CDN 服务商,不包含国内)。
- 试用了通过 Github Action azcopy 将站点上传到 Azure Blob Storage,发现上传太慢了,居然跑了 4mins+,权衡之下还是决定先使用 Vercel 作为 CDN 源站,免费而且部署比 Azure Blob Storage 快多了。
2022-08-06 - 2022-08-07
- 整理与补充今年 5 月份做的学习笔记《分布式数据库的一致性问题与共识算法》,并发表到博客中
- 极客时间《OpenResty 从入门到实战》
- 目前市面的网关产品中,性能、可定制性、稳定性三者兼得的仍然只有 openresty
- 基于 OpenResty 的 APISIX 有丰富的插件,支持插件热加载与配置动态更新,还有实验性的多语言插件支持,长远看或许也是一个很好的选择。
- 新兴的 envoy 等主推 wasm 插件的网关,性能仍然不如 openresty。另外 envoy 虽然也支持 lua,但是它的 lua 环境没有任何预置的 library,远不如 openresty 这样开箱即用
- 我目前判断,新兴的 envoy/traefik 等网关的优势在于配置语法简单、支持动态配置。但是如果需要写一些复杂的流量处理逻辑,openresty 仍然是最佳选择。
- openresty 仍然是最流行的 CDN/软 WAF/边缘网关,在绝大多数公司的网关/CDN 中,都有 openresty 的身影。
- 目前市面的网关产品中,性能、可定制性、稳定性三者兼得的仍然只有 openresty
2022-07-28
- 研究了一波 Nginx 的配置调优
- 关键点:
reuseport
aio
http2
tls1.3
- 相关文章:
- 关键点:
2022-07-26
- Misaka 大佬在 twitter 上回复说,ambassador 可能最后会发现都不如 Istio 一把梭
- 仔细想了下还真挺有道理…毕竟都是 Envoy,而研究一圈发现 ambassador 好像也没比 Istio 多很多功能。目前就看到个不太用得上的 OpenAPI 支持?
2022-07-25
- 今天研究了下 CNCF 中的 API 网关
- 目前发现 ambassador 的文档是比较不错的,我关心的点(Istio 集成、HTTP/3、Gateway API)都有写到,值得研究一波。
- 目前就找到这么两个 Istio 网关的潜在替代品:ambassador 跟之前研究过的 APISIX
- 其他的网关项目有的是功能上不太契合、有的是性能差了点、还有的是不够成熟度或者活跃度不够。
2022-07-23 - 2022-07-24
- Nginx Gateway 进展
- 在 AWS NLB 上添加 TLS 终止,遇到 AWS NLB 的 TLS 流量费用高、而且 Nginx 无法通过
X-Forwarded-Proto
判断客户端协议的问题- 解决方法:使用 cert-manager 在 Nginx 中进行 TLS 终止,AWS NLB 改为纯 TCP
- 需要注意在 Nginx 上配置使用 OCSP stapling 等 TLS 性能优化手段,并淘汰掉旧的 TLS 协议与 ciphers.
- 在 AWS NLB 上添加 TLS 终止,遇到 AWS NLB 的 TLS 流量费用高、而且 Nginx 无法通过
- 研究了一波 cert-manager 通过 ACME 申请权威证书,并绑定到 Istio IngressGateeway 或者其他网关上
2022-06-29 - 2022-07-22
- 实施网关优化方案,使用 Go 语言写了一个 Nginx Gateway 控制器
- 目标:
- 将目前运行在虚拟机上的 Nginx 搬到 K8s 中运行,通过 Istio Sidecar 接入服务网格,并取代掉当前的 Istio IngressGateway 网关
- 使用 AWS NLB 作为 Nginx 的前置负载均衡器
- 功能:包含 Nginx 配置同步与 Reload、AccessLog 日志文件的收集与上传
- 使用 kubernetes/client-go 监控 configmap/pod 的变动
- watch 接口不会处理网络问题,失败会直接断开连接,实践中不建议直接使用它!
- 更建议使用 informer,这是一个带缓存的接口,底层是使用 watch 接口 + 队列实现,而且会自动处理网络问题(自动重连),也提供接口强制更新本地缓存
- 体验:
- 是第一次用 Go 语言写项目,体验还不错,编译期检查跟语法提示比 Python 强多了
- 遇到的问题与解决方法
- Nginx 无法解析 K8s 内部域名
- 解决方法:在
http
配置块中添加resolver kube-dns.kube-system.svc.cluster.local valid=10s;
即可,另外所有 k8s 域名都得使用 FQDN 形式,因为 Nginx 不会使用搜索域配置!
- 解决方法:在
- 客户端 Host 透传:改用
X-Forwarded-Host
,而原Host
Header 仅供 Istio/Nginx 用于流量管理。同时在流量走到 Istio SIDECAR_OUTBOUND 时,再通过 Envoy 参数host_rewrite_header: X-Forwarded-Host
将 Host rewrite 回来。 - 安全组问题:为了获取客户端 IP 需要在 NLB 上启用客户端 IP 透传,但是这样会导致流量被内网安全组拒绝!
- 解决方法:在 Nginx 所在的 EC2 上添加安全组,允许公网 IP 访问其 http/https 端口即可
- 使用 aws-load-balancer-controller 绑定 IP 模式的 NLB,发现 pod 被重新调度会导致请求超时!
- 相关 issue: pod termination might cause dropped connections
- 解决方法:在 pod 上设置 350s 的 preStop 以及对应的 terminationGracePeriodSeconds,确保所有请求都能被正常处理!
- Nginx 注入 Istio Sidecar 后,响应头里带了些
x-envoy-
开头的不必要 headers- 解决方法:参见 Istio 去除响应 Headers
- Istio Sidecar 性能很差,Nginx 与 Sidecar 的 CPU 比值接近 1:2.3
- 解决方法:为 pod 添加 annotation
traffic.sidecar.istio.io/includeInboundPorts: ""
,即可禁用掉 Istio Sidecar 的 inbound 流量拦截。
- 解决方法:为 pod 添加 annotation
- AWS NLB 跨可用区负载均衡会收跨区流量费
- 解决方法:关闭跨区负载均衡功能,不同可用区的 Nginx 使用不同的 Deployment+HPA+PDB,就是都独立进行扩缩容。
- Nginx 无法解析 K8s 内部域名
- 目标:
- 2022/7/20,Leader 告诉我,我上半年的表现出乎他的意料,综合表现上看,得到的绩效评价是 S,第一次拿 S,还是挺开心的。
- 我的优点:
- 善于观察与思考,真正做到了目标驱动,积极挖掘各种可能性。
- 善于将优秀前沿技术落地并取得价值,能够不盲从、玩的转、有落地。
- 我的优点:
2022-06-22
- The ANSI C Programming Language - 83/236
- 快速过一遍语法
2022-06-16 ~ 2022-06-17
- 研究云上网关及 Kubernetes 集群的网络架构优化方案
- 从之前的「多云+多集群网络方案」,先简化为各集群互相独立的网络方案,之后再往多集群、多云等方向去迭代(迂回策略)。
- 将遗留的 Nginx 网关直接移到 K8s 集群内,并注入 Sidecar 以接入 Istio 服务网格,由 Sidecar 帮助 Nginx 实现集群内的服务发现、流量切分、多集群支持等能力。好处是遗留的一堆 Nginx 配置基本不需要什么改动,改造难度低,收益明显(动态扩缩容的 Nginx、更短的网关链路、更简洁的配置)。后续还可以逐渐切换到新的 API 网关提升可维护性。
- Nginx 可以通过云服务商提供的 L4 负载均衡(如 AWS NLB)暴露到公网,也可以自建 keepalived 高可用方案(自己整个 Pod 动态注册控制器,或者搞套静态的节点组都行),不过要注意跨区流量,网关最好是每个可用区单独部署一套,互相隔离。
- 相当于暂时使用 Nginx+Sidecar 彻底取代掉 Istio 的 IngressGateway。讲道理 Istio 的 IngressGateway 功能还是有点弱
- 等这个方案实施后,我们可能会考虑使用 APISIX/Traefik 或其他基于 Envoy 的网关来取代掉这个容器化后的 Nginx。目的是提供更简单的网关配置方法,当前写 Nginx 配置的方式还是不太友好。
- 从之前的「多云+多集群网络方案」,先简化为各集群互相独立的网络方案,之后再往多集群、多云等方向去迭代(迂回策略)。
2022-06-13
- Linux/Unix 系统编程手册(上册) - 进度 21/572
- 感觉最近学东西有点随心所欲,东一榔头西一棒槌,感觉自己还在找方向吧。不过 Linux 跟 Kubernetes 开发这两件事应该能坚持下来。
2022-06-11
- 《语言学的邀请》- 进度 68/288
- 感觉解答了一些我以前的对人类的一些疑惑
- 《Intimate Relationship》 - 14/449
- 读了文化对亲密关系的影响
- 跟堂弟大谈如何怀揣理想,平实生活,一点点地进步。 谈我们这一代,我想不必悲观也不必绝望,我们的未来由我们自己创造。 有学术大佬们走在学术前沿,有技术高手们工作在工程一线,我们也完全有能力去做一些有价值的事情,赚更多的钱,也帮助更多的人。
2022-06-10
- 读完了《在生命的尽头拥抱你-临终关怀医生手记》
- 读这本书时,我也在持续回忆我的爷爷奶奶。很难去说明我从这本书中读懂了啥,本质上我只是想从这本书中找到一些慰藉,顺便了解下「死亡」,大概确实部分达成了目标。
2022-06-09
- 买了一千多块钱的书,最近陆续到货了,现在还差一本《我的青春恋爱物语果然有问题——原画集》
- 多买了一本罗翔老师的《圆圈正义》,打算送给堂弟
- 阅读了《Intimate Relationships》的第一小节
- 了解了人类社会性动物的本质,这可以用进化论解释——越社会性的个体存活率越高,基因也越容易传续。
- 亲密关系的建立是很容易的,「你是我的唯一」更多的是一种浪漫的说法,只是「因为刚好遇到你」而已。
- 一旦建立了亲密关系,我们就会抗拒这份亲密关系的解离。当亲密关系遭遇危机时,我们会茶不思饭不想。
- 在 Youtube 上搜了下 Intimate Relationships,找了几个相关的 TED Talks 看了看。
- 还找到 UCLA 一个比较老的课程:Intimate Relationships: Undergraduate Lectures at UCLA,可以跟书一起看看。
2022-06-08
- 折腾一晚上博客的 Hugo 跟 DoIt 主题
- 发现本地生成出的站点,mermaid 跟 music 两个插件的问题莫名其妙修复了,怀疑跟今天跑了一波
brew upgrade
有关 - 但是云上 github action 跟 vercel 都还有问题,同样的命令同样的 hugo 版本,本地生成的静态文件 mermaid 跟 aplay 正常加载,云上生成的就有问题,也是醉了…
- 发现本地生成出的站点,mermaid 跟 music 两个插件的问题莫名其妙修复了,怀疑跟今天跑了一波
2022-06-05 ~ 2022-06-06
- 观看 KubeCon + CloudNativeCon 2022 中我比较感兴趣的部分
- 主要关注与当前工作相关的点:多云管理、多集群(karmada)管理与应用部署、跨集群网络(Istio)、API 网关
- 有一些收获,但是都是比较浅的,只能提供个别方向的一些思路,主要还是得靠自己探索。
- 研究了一波 dapr,理念很先进,但是发现很多功能都还处于 alpha 阶段,不太适合向业务侧推广,继续观望吧。
2022-05-30 ~ 2022-06-02
- 研究跨云应用部署方案,如 karmada/kubevela
- 以 karmada 为代表的多集群 Deployment/Service 管理,需要一个控制面集群+多个子集群
- 配置只往控制面集群部署,karmada 负责按配置在子集群中创建或更新对应的资源
- 以 karmada 为代表的多集群 Deployment/Service 管理,需要一个控制面集群+多个子集群
- 研究多云+多集群网络方案
- 以 Istio 为代表的多集群服务网格,部署模型之一也是控制面集群+多个子集群
- 配置只往控制面集群部署,istio 会将配置下发到数据面的 sidecar 与 gateway,完成相应的网络配置
- 其他的如 karmada 等也集成了一些集群间的网络打通方案,但是感觉都还不太成熟
- cilium 的 service mesh 也是一个潜在的多云 k8s 网络方案,但是还处于 beta 状态,有待观望
- 以 Istio 为代表的多集群服务网格,部署模型之一也是控制面集群+多个子集群
- 研究云上 L4/L7 层网关的开源/商业方案
- 如 L4 的 dpvs/katran 与 L7 的 APISIX/Traefik/Contour,以及 AWS Gateway LoadBalancer
- 暂时认为云上 L4 还是直接使用云服务商的方案最合适,没必要自己搭
- L7 为了支持多集群切量,同时尽量缩短链路,目前感觉使用 Istio 最合适
- 研究各跨云网络方案(L7 负载均衡(ADC)、SD-WAN、WireGuard、服务网格等):
- 一是多云之间相互隔离,但是长远看不太现实
- 二是多云使用不冲突的 CIDRs 作为它们的 VPC 网段,然后使用 VPN 把多云网络直接串起来
- 三是直接在多云上搭建一套 overlay 网络,完全屏蔽掉不同云之间的网络差异
- 仅针对 k8s 的方案主要是 kilo,基于 wireguard 直接通过公网实现 overlay 网络,但是感觉时延很可能难以接受,还是得用 VPN 才行。
- 整个云通用的方案目前只有部分供应商在做,而且不开源,有 vendor lock-in 的可能,而且不清楚封装出的具体效果如何
2022-05-29
- 动手学深度学习 - Pytorch 版 - 14.3%
- 学习第二章:预备知识
- 微积分:复习了单变量函数的微分(导数) => 多变量函数的偏微分,单变量函数的斜率 => 多变量函数的梯度(梯度,即函数 $f(x)$ 关于输入向量 $x$ 的所有偏微分组成的一个向量)
- 深度学习模型的训练,即搜索出使损失函数的值最小的模型参数。而梯度下降是应用最广泛的一种损失函数优化方法。
- 梯度下降,即始终朝着损失函数的梯度值下降的方向进行模型参数的搜索
- 深度学习中的多元(变量)函数通常是复合的,而链式法则 $\frac{dy}{dx} = \frac{dy}{du} \frac{du}{dx}$ 使我们能够微分复合函数。
- 自动微分:为了计算梯度我们必须要对函数进行求导,而手工求复杂函数的导数不仅容易出错,而且函数的更新也过于繁琐。深度学习框架通过提供自动微分能力解决这个问题。
- 实际上,深度学习框架会构建一个计算图(computational graph)用于跟踪所有数值是由哪些操作生成的,有了这个计算图后,我们还可以通过数值反向去更新每个参数的偏导数,这被称为反向传播(backpropagate)。
- 自动微分的另一个好处是,即使输入函数是一个由代码定义的黑箱,根本不清楚它的具体表达式,仍然可以通过反向传播自动计算出它的微分。
- 概率论:
- 采样
- 随机变量的分析方法:联合分布、条件分布、Bayes 定理、边缘化、独立性假设
- 概率分布的关键特征度量方式:期望、平方差/标准差
- 微积分:复习了单变量函数的微分(导数) => 多变量函数的偏微分,单变量函数的斜率 => 多变量函数的梯度(梯度,即函数 $f(x)$ 关于输入向量 $x$ 的所有偏微分组成的一个向量)
- 学习第三章:线性神经网络
- 线性回归模型是一个简单的单层神经网络,只有输入与输出两层
- 学习了「从零开始实现线性回归」的一小部分
- 学习第二章:预备知识
2022-05-28
- 动手学深度学习 - Pytorch 版 - 10.6%
- 学习第二章:预备知识
- 通过搜索 cheat sheet + 《Python for Data Analysis》学了下 Numpy/Pandas/Matplotlib 的使用方法
- 复习线性代数
- 学习第二章:预备知识
2022-05-24
- 动手学深度学习 - Pytorch 版 - 7.8%
- 完成第一章前言,了解了深度学习是机器学习的一个分支,机器学习的用途、分类,深度学习的简单原理及优势,近十年此领域的爆炸式发展
- 监督学习、无监督学习、强化学习
- 音视频数据生成领域的重要方法:GAN
2022-05-24
- 分布式系统与区块链
- 极客时间《分布式协议与算法实战》 - 40%
- AI
- 被 ACE 深度学习歌声合成激励到了,花了近两个小时简单学了点吴恩达的机器学习课程、微软的 ML for beginners,李沐的《动手深度学习》
- 明确了目标是「快速学习,暂时只是为了玩一玩」,确定我应该通过《动手深度学习 - Pytorch》入门。
2022-05-24
- 极客时间《分布式协议与算法实战》 - 36%
2022-05-22 ~ 2022-05-23
- 学习 分布式系统的一致性问题与共识算法 并记录笔记
- 极客时间《分布式协议与算法实战》 - 22%
2022-05-20
- 学习极客时间的《深入剖析 Kuberntes》 - 100%
- 学完后第一次做测验,拿了 50 分,陷入自我怀疑 emmmm
- 容器运行时
- Kubelet 控制循环
SyncLoop
绝对不会阻塞,任何长时间任务都会创建新的 goroutine 来异步执行 - CRI 的接口非常简单宽松,给予了底层容器运行时足够大的自定义空间
- Kubelet 控制循环
- 云原生的发展方向
- Kubernetes 的强大之处:声明式 API 和以此为基础的控制器模式、将「政治」与「技术」拆分开的社区运作模式
- Kubernetes 生态与传统 PaaS 的区别:Kubernetes 提供了基础设施层能力(编排、调度、资源管理等),使得其上的 PaaS 可以专注于应用服务和发布流程管理这两个最核心的功能,开始向更轻、更薄、更以应用为中心的方向进行演进。从而 Serverless 开始蓬勃发展
- Serverless 的本质:高可扩展性、工作流驱动、按用量计费
- 「云原生」是一个使用户能低心智负担的、敏捷的,以可扩展、可复制的方式,最大化利用“云”的能力、发挥“云”的价值的一条最佳路径。
- 学习分布式系统的一致性问题与共识算法 并记录笔记
- 一致性问题的核心是「ACID 理论中的事务一致性」,与「CAP 理论中的数据一致性」
- 数据一致性又分为强一致性与弱一致性,而弱一致性的最低限度就是最终一致性:数据最终会一致(再低就永远不会一致了)
- 最终一致性太模糊,具体实现上往往会最加上一些限定,得到许多一致性模型:读自己写一致性/写后读一致性、单调读一致性、前缀一致性、线性一致性、因果一致性
- 一致性问题的核心是「ACID 理论中的事务一致性」,与「CAP 理论中的数据一致性」
2022-05-19
- 学习极客时间的《深入剖析 Kuberntes》 - 87%
- 简单学习了 CRD + Controller 的编写,包含 Informer 机制等。不过内容太老了,还是之后看 Programming Kubernetes 再详细学吧。
- K8s API 资源的组织方式为
api/<apiGroup>/<GroupVersion>/<Resource>
,yaml 中的apiVersion
为<apiGroup>/<GroupVersion>
,而Kind
的值就是<Resouce>
- Pod/Node/configmap 等几个核心资源的
<apiGroup>
为空,因此可以直接省略掉 - 其他核心资源都是以功能分类的,都有
<apiGroup>
属性
- Pod/Node/configmap 等几个核心资源的
- RBAC 是以 Role 为授权的基本单位,
Role
的规则会指定用户对不同 apiGroups/Resources/resourceNames 可以执行哪些动作verbs
- apiGroups/Resources 属性跟前面介绍的 API 资源的组织方式是完全对应的,但是 Resources 需要使用复数形式,如
pods
/configmaps
/nodes
- 如果是核心资源如 Pod/Node,则
apiGroups
应该设为空字符串apiGroups: [""]
- apiGroups/Resources 属性跟前面介绍的 API 资源的组织方式是完全对应的,但是 Resources 需要使用复数形式,如
- RoleBinding/ClusterRoleBinding 有两个部分:
subjects
被作用者,以及roleRef
,用于声明这两者之间的绑定关系subjects
被作用者可以是集群内的 ServiceAccount,也可以是外部定义的对象如User
User
在集群中是一个不存在的对象,它的认证需要一台外部系统
- RBAC 中还存在
Groups
用户组的概念- 比如任意名字空间中所有 serviceaccount 的用户组,名称为
system:serviceaccounts:<Namespace名字>
- 每个 serviceAccount 的全名为
system:serviceaccount:<Namespace名字>:<ServiceAccount名字>
- 我们可以在 subjects 中填写一个用户组,为整个用户组内所有的 ServiceAccount 授权
- 比如任意名字空间中所有 serviceaccount 的用户组,名称为
- Kubernetes 中默认已经内置了多个 clusterrole,可通过
kubectl get clusterroles
查看- 开发测试时,我们可能会经常用的一个 clusterrole 就是
cluster-admin
,这个 role 拥有整个集群的最高权限,相当于 root,非开发测试环境一定要谨慎使用它。 view
/edit
这两个 clusterrole 分别拥有整个集群的查看/编辑权限
- 开发测试时,我们可能会经常用的一个 clusterrole 就是
- Kubernetes 存储
- 存储的两个绑定阶段:
- 第一阶段(AttachDetachController,运行在 kube-controller-manager 中),K8s 将 nodeName 传递给存储插件,插件将数据卷 attach 到该节点上
- 第二阶段(VolumeManagerReconciler,运行在 kubelet 中),K8s 将 dir 传递给存储插件,插件将数据卷挂载到该目录下(如果是新数据卷还会提前格式化该卷)。
- 云上 K8s 存储的一个缺陷:无法跨可用区调度。如果你通过 affinity 强制把一个 p8s 调度到别的可用区,因为它的数据卷不在目标可用区,这会导致它无法被调度,卡在 Pending 状态。
- 学习了已被废弃的 FlexVolume 的实现方式,以及它的替代者 CSI
- 以 csi-digitalocean 为例,学习了一个 CSI 插件的实现原理
- 存储的两个绑定阶段:
- Kubernetes 调度
- 根据容器的 requests/limits 参数,k8s 将 Pod 分为三种类型:BestEffort Burstable Guaranteed
- 在因为资源不足而触发驱逐 Evection 时,会按 BestEffort => Burstable => Guaranteed 的顺序进行驱逐
- 当 Pod 中所有容器的 requests/limits 都相等的时候,Pod 的 QoS 等级为 Guaranteed
- 如果这时容器的 cpu requests 为整数值,K8s 会自动为容器进行绑核操作,这可以大幅提升容器性能,常用在在线应用场景下
- 疑问:如果 istio sidecar requests/limits 不相等,但是应用容器是设的相等的,这种情况下是否会执行绑核操作呢?
- Pod 的优先级与抢占机制
- 首先创建不同优先级的 PriorityClass,然后为 Pod 指定 priorityClassName
- 调度失败的 Pod 会被放到 unschedulableQ 中,这会触发调度器为这些调度失败的 Pod 寻找牺牲者的逻辑
- 基于优先级与抢占机制,创建一些优先级为 -1 的占位 Pod,可以实现为整个集群预留一部分资源。这种方法被称为「Pod 空泡」资源预留法。
- Device Plugin: 负责管理集群中的所有硬件加速设备如 GPU/FPGA 等
- Device Plugin 只能基于「数量」进行调度,无法进行更复杂的异构调度策略,比如「运行在算力最强的节点上」
- 日志与监控:对我来讲,没什么新东西
- 容器运行时
- gVisor - 在用户态重新实现了一遍 Linux ABI 接口、网络协议栈,启动速度跟资源占用小。但是工程量大,维护难度大,对于系统调用密集的应用,性能会急剧下降。
- kata containers: 据说是性能比较差,运行了一个真正的 Linux 内核与 QEMU 虚拟设备实现强隔离
- aws firecrackers: 跟 kata containers 的思路一致,但是使用 rust 实现了自己的 vmm,性能更高
2022-05-15
- 了解到 2021 年是区块链投资大涨的一年,总投资涨了 7 倍多到了 252 亿美元,NFT 更离谱直接从 2020 年的 37m 涨到 4802m 美元,感觉确实非常有前景
- 分两次从币安转了 0.01 ETH + 0.05 ETH 到 Ethereum,币安收了固定手续费 0.0016 ETH * 2
- 购买 ENS 域名 thiscute.eth 10 年并设为我的主域名,花了约 0.027 ETH,算上 gas 费一共花了 0.0321 ETH 也就是 67 刀
- 给自己再次整了一个 mirror.xyz 账号,有了 ENS 就是爽。
- 但是发现我现有的几个域名如 thiscute.world,其实可以直接通过 DNSSEC 导入到 ENS,感觉血亏 0.027 ETH…
- 阅读郭宇最近写的《Web3 DApp 最佳编程实践指南》
- 晚上去测核酸的路上还参与了他开的一个 twitter space 聊 web3 开发,发言的很多大佬,很多干货。
- 也明确了,目前区块链还处于战国时代,百家争鸣
- 再次确认今年学习路线,精简与调整之前年度的计划(之前的计划太多了搞不定,而且当时没排区块链)
- 先学好分布式原理与算法这块
- 然后是 Kubernetes 编程,同时结合极客兔兔的几个教程深入学习 Go
- 深入学下 Go 语言底层
- 搞一搞区块链
- 学习 C 语言
- 通过 TLPR 学习 Linux 系统
- 通过 CS144 系统学习计算机网络
2022-05-14
- 阅读 Web 3.0:穿越十年的讨论 - 知乎 系列内容,了解 Web 3.0
- 阅读 dcbuild3r/blockchain-development-guide,了解如何进行区块链开发
- 我把这个 guide 完整过了一遍(后面关于自我提升、社会影响力啥的仅走马观花看了看),真的好长的一篇文章啊。
- 很多干货,现在我对搞区块链开发要学的东西,认知更清晰了。
2022-05-12
- 迭代博客内容《关于 NAT 网关、NAT 穿越以及虚拟网络》- 90%
- 真的低估了 NAT 网关与 NAT 穿越技术的知识量,又折腾了一个晚上,文章还没完成…
- 5/9 的时候我就觉得文章已经完成了 90%,结果今天又折腾了一晚上迭代了大量内容,现在感觉文章的进度还不到 90%…越学发现自己懂得越少
2022-05-11
- 学习极客时间的《深入剖析 Kuberntes》 - 53%
- 学习了 NetoworkPolicy、kube-proxy 的实现原理,其实都是用 iptables 实现的,原理挺简单的。
- 不过 kube-proxy 很早就支持了 ipvs 模式,它在大规模场景下比 iptables 性能更好一些。但是 AWS EKS 目前官方仍然并不支持 ipvs 模式,打开可能会有坑。
- 极客时间《分布式协议与算法实战》 - 4%
- 过了一遍常见共识算法的名字:两阶段提交、Try-Confirm-Cancel、Paxos、ZAB、Raft、Gossip、PBFT、PoW、PoS、dPoS
- 过了一遍上述共识算法的特性:是否支持拜占庭容错、支持哪种程度的一致性、性能、高可用性
- 了解了一些区块链相关公司的方向,区块链开发岗位的要求
- 还研究了一波性能测试工具:grafana/k6
2022-05-09
- 学习极客时间的《深入剖析 Kuberntes》 - 48%
- 复习了 Linux 虚拟网络接口以及容器网络原理、学习了 CNI 网络插件的原理
- 学习了两个 underlay 网络实现:flannel 的 host-gw 模式实现原理、calico 基于 BGP 的实现原理
- calico 在跨 vlan 时需要使用 IPIP,学习了相关原理
- 完成博客《关于 NAT 网关、NAT 类型提升、NAT 穿透以及虚拟网络》- 90%
- 简单研究了 Go 的 STUN/TURN/ICE 库,以及 coturn server
- 简单学习了零知识证明的应用,zk-SNARKs,区块链混币服务,以及拜占庭将军问题
2022-05-08
- 完成博客《关于 NAT 网关、NAT 类型提升、NAT 穿透以及虚拟网络》
- 已发布,但是还有些细节需要填充,另外还需要补些示意图
2022-05-06
- 学习极客时间专栏《深入浅出 Kubernetes》 - 37%
- 主要学了下 Pod 的结构、名字空间共享等细节信息,这部分我以前只了解个大概
- 集群安装、Deployment、StatefulSet、Service 这几个部分我都已经比较熟了,走马观花看了看。
- 粗略过了下目录,其中对我而言最有价值的,应该就是容器网络、调度器、容器运行时
2022-05-05
- 学习极客时间专栏《深入浅出 Kubernetes》 - 20%
- Kubernetes 与其他败北的编排工具比,最大的优势在于它的设计思想:
- 从更宏观的角度,以统一的方式来定义任务之间的各种关系(最底层是 Pod 与 PV,之上是各种控制器、亲和反亲和、拓扑扩散、自定义控制器,网络侧有 service,底层网络插件等等),并为将来支持更多种类的关系留有余地(开放、强大的自定义能力催生出了丰富的生态)
- 基于状态的声明式配置,由控制器负责自动达成期望的状态
- Kubernetes 与其他败北的编排工具比,最大的优势在于它的设计思想:
- 研究 FinOps 与 kubecost,总结工作上的经验,完成一篇 Kubernetes 成本分析的文章 - 100%
2022-05-02
- 学习Go语言动手写Web框架 - 进度 20%
2022-05-01
- 研究 FinOps 与 kubecost,完成一篇 Kubernetes 成本分析的文章 - 50%
2022-04-26 - 2022-04-28
- 学习极客时间专栏《深入浅出 Kubernetes》,复习容器技术(Namespace/Cgroups/rootfs)
- Docker 最核心的创新:
- 将 rootfs 打包到镜像中,使镜像的运行环境一致(仅与宿主机共享内核)
- 使用 Dockerfile 描述镜像的打包流程,使构建出的镜像可预期、可重新生成
- Docker 最核心的创新:
- 2022-04-28 调薪结果出来了,突然觉得身心都有点累了,有点惆怅。总之还是继续努力吧,技术才是我的核心竞争力,少管他什么妖风邪雨。
2022-04-25
- 完成了 19 年创建的 go 项目:https://github.com/ryan4yin/video2ascii
- 失眠,半夜随便翻了翻,把《Go 程序设计语言(英文版)》走马观花过了剩下的一部分,算是完成了一周目
- 阅读 Programming Kubernetes - Developing Cloud Native Applications - 进度 7%
- 主要是通过案例讲解 CRD Operator Controller 等 Kubernetes 编程技术
2022-04-24
- 阅读《Go 程序设计语言(英文版)》 - 进度 90%
- 目前还剩两章未读:反射 reflection 与底层编程 unsafe/uintptr
2022-04-22 - 2022-04-23
- 阅读《Go 程序设计语言(英文版)》 - 进度 72%
- 主要完成了 goroutines/channels 以及「并发与变量共享 sync」两个章节
2022-04-21
- 多抓鱼买的一批新书到手了,大致读了下几本书的前几页。
- 目前比较感兴趣的有:《复杂》、《陈行甲人生笔记》、《原则 - 应对变化中的世界秩序》、《这才是心理学》
- 打算首先读《复杂》
- 使用 kubernetes/autoscaler 实现集群弹性扩缩容
- 发现社区的这个工具(简称 CA),确实没 aws 出品的 karpenter 好用。
- CA 自身的实现很简单,主要是依靠 AWS ASG 实现扩缩容。
- 而 EKS 的 NodeGroup 说实话做得太垃圾了,底层 ASG 的很多功能它都不支持,一旦创建很多参数(VPC 参数、实例类型、等等)就无法通过 EKS NodeGroup 变更了。如果越过 EKS NodeGroup 直接修改底层的 ASG 配置,它还会提示「Degraded」说配置不一致,真的是无力吐槽。
2022-04-20
- 《在生命的尽头拥抱你-临终关怀医生手记》 - 进度 73%
- 使用 aws/karpenter 实现集群弹性扩缩容
- 已上线 prod 环境,目前给 EMR on EKS 集群专用。
- 更新 /now 页面以及 knowledge 的内容
2022-04-18
- 研究使用 aws/karpenter 实现集群弹性扩缩容
- 阅读《Go 程序设计语言(英文版)》 - 进度 53%
- 第 7 章「接口」读了一半,大概 22 pages,预计明天能完成
- 《Operating Systems - Three Easy Pieces》
- 读到 Introduction 一章,行文真的很有趣,看 projects 也有深度,决定了要把这本书看完,把习题做好。
- OSTEP 后面的部分会涉及 vx6 源码,这要求比较深的 C 语言知识以及 x86 汇编知识,不过这些可以在学到的时候,再做补充。
- 在需要用到的时候,学习 CSAPP 的 x86 汇编部分会是一个比较好的补充。
2022-04-17
- 阅读《Go 程序设计语言(英文版)》 - 进度 7/13
- 《在生命的尽头拥抱你-临终关怀医生手记》 - 进度 61%
- 重新整理书单,放到 /now 页面中
- 学习 NAT 原理知识
2022-04-15 ~ 2022-04-16
- 阅读《Go 程序设计语言(英文版)》 - 进度 5/13
2022-04-14
- 阅读《Go 程序设计语言(英文版)》 - 进度 4/13
2022-04-13
- 阅读《Go 程序设计语言(英文版)》 - 进度 3/13
2022-04-10
- 学习 3D 引擎的使用,简单试用了 unity3d 与 unreal engine 5.
- 确定学习方向:先学学 UE5 蓝图入个门,然后试试把 MMD 模型导入到 UE5 做做动画,中间也会简单接触下 Blender.
- 感受:UE5 挺不错的,尤其是它还提供 VR 编辑模式,手上的 Quest 2 又能派上用场了
- 输出文档:3D 图形相关
- 阅读《Go 程序设计语言(英文版)》 - 进度 2/13
- 第一章「导览」大概过了下 Go 的关键特性:完善的工具链,丰富的标准库,goroutine, channel
- 第二章主要讲程序结构,包含变量、类型声明、指针、结构体、作用域、包与文件结构等等
2021-04-08 - 2021-04-09
- 学习区块链技术 Web3.0
- Mastering Ethereum - 以太坊入门
- 进度:100%
- 跳过了智能合约代码相关的内容,因为代码比较老了,新版本的 solidity 有了许多新变化。
- Youtube - Solidity, Blockchain, and Smart Contract Course – Beginner to Expert Python Tutorial
- 这个视频及相关的 Github 仓库,包含一些区块链可视化以及相关的介绍,更适合学习完理论后,实战合约编写
- 区块链技术指南: 《Docker - 从入门到实践》作者的新书,内容同样简洁易懂,侧重介绍原理及知识面,非常棒。
- Mastering Ethereum - 以太坊入门
2021-03-26 - 2021-04-01
- 学习区块链技术 Web3.0
- Mastering Ethereum - 以太坊入门
- 进度:7/14
- 这书适合用于学习理论,solidity 开发相关的内容可以跳过,即 7/8 两章
- Youtube - Solidity, Blockchain, and Smart Contract Course – Beginner to Expert Python Tutorial
- 这个视频及相关的 Github 仓库,包含一些区块链可视化以及相关的介绍,更适合学习完理论后,实战合约编写
- Mastering Ethereum - 以太坊入门
2021-03-23 - 2021-3-25
- 阅读《在生命的尽头拥抱你-临终关怀医生手记》
- 在 Manager 的帮助下申请职级晋升(初级 => 中级 SRE)
- 再一次认识到我自己写的文字有多么随意… Manager 帮我提炼补充后,文字变得言简意赅,精确客观,瞬间高大上档次了。
2021-03-22
2021-03-15 - 2021-03-19
- 学习 Envoy,完成 Envoy 笔记
2021-03-11 - 2021-03-14
- 《写给开发人员的实用密码学》
- 完成第七篇「非对称加密算法」的 ECC 部分,并为 RSA 部分补充了部分 Python 代码
- 将去年写的文章《TLS 协议、TLS 证书、TLS 证书的配置方法、TLS 加密的破解手段》改写并补充内容,改名为《写给开发人员的实用密码学(八)—— 数字证书与 TLS 协议》
- 为第五篇「密钥交换」补充了 DHKE/ECDH 的代码示例,另外还补充了 DHE/ECDHE 一节
- 此系列文章的其他小修改与润色
- 业务大佬在 gRPC 的基础上再添加了 gzip 压缩,TX 流量再次下降 80%+
- 侧面说明以前业务侧对 HTTP 的用法是多么豪放 emmmm
- 周末上 gzip 压缩功能,业务大佬太肝了啊…
2022-03-09
- 发布《写给开发人员的实用密码学》系列第七篇:非对称加密算法,但是暂时只完成了 RSA 部分
2022-03-07 - 2022-03-08
- 跟推荐系统大佬一起将服务从 HTTP 切换到 gRPC,效果立竿见影,服务流量下降 50% ~ 60%,延迟下降 30% ~ 50%
- 提升了服务性能,降低了 AWS 跨区流量成本
2022-03-05 - 2022-03-06
- 发布《写给开发人员的实用密码学》系列的第六篇:对称加密算法
2022-03-01
- 深圳疫情形式严峻,开始居家办公
- 整理润色后,发布《写给开发人员的实用密码学》前五篇的内容
2022-02-19 - 2022-02-25
- 阅读 Practical Cryptography for Developers,同时完成我的密码学笔记
- 起因是想学下区块链技术,结果发现课程一开始就讲加密哈希函数的基本性质,就决定先搞一波密码学。
- 完成了《写给开发人员的实用密码学》前五篇的草稿。
- 研究 istio 的 gRPC 支持与监控指标
2022-02-17
- 发现我们的 EKS 集群主使用的是 AWS Spot 实例,这类实例的 c6i/c6g 性能与价格差距并不高,做 ARM 化的 ROI 貌似并不高
- 发现对 aws 的 RDS/EC2-Volume/Redis 等资源进行全面评估,删掉闲置资源、缩小实例/集群规格,可以轻易节省大量成本(说明以前申请资源时风格比较豪放 2333)
- 继续迭代个人博客
2022-02-07 - 2022-02-16
- 迭代我的独立博客 https://thiscute.world
- 添加「阅读排行」页,定期从 Google Analytics 同步数据
- 从博客园迁移部分有价值的文章到独立博客
2022-01-08 - 2022-01-16
- 购入 Synthesizer V + 青溯 AI 声库,简单调了几首歌试试,效果非常棒。
- 也调研了下歌声合成领域目前的进展,试用了免费的移动端软件 ACE 虚拟歌姬,渲染效果真的媲美 CNY 999 的 SynthV AI 套装,不得不感叹 AI 的效果真的强啊。
2022-01-01
- 了解 APISIX/Nginx/Envoy 中的各种负载均衡算法,及其适用场景、局限性。
2021-12-12
- 练习二个半小时轮滑,学会了压步转弯技术
- 无聊,但是又啥都不想干,耽于网络小说…
- 感觉有点现充了,感觉需要找个更明确的、能给人动力的目标
- 做个三年的职业规划以及生活规划?
2021-11-21
- 轮滑:复习前双鱼、前剪、前蛇,尝试侧压步、倒滑
2021-11-08 - 2021-11-12
- 将上次 EKS 升级过程中,有问题的服务迁移到 1.21 的 EKS 集群,直接切线上流量测试。
- 复现了问题,通过 JFR + pods 数量监控,确认到是服务链路上的个别服务频繁扩缩容导致的,这些服务比较重,对扩缩容比较敏感。
- 测试在 HPA 中添加 behavior 降低缩容速率,同时添加上 PodDisruptionBudget 以避免节点回收导致大量 Pod 被回收,经测试问题基本解决。
- 遭遇 AWS EKS 托管的控制平面故障,controller-manager 挂了一整天。现象非常奇怪,又是第一次遇到,导致长时间未排查到问题。
- 确认问题来自 HPA behavior 的 Bug
- 储存于 etcd 中的 object 仅会有一个版本,透过 apiserver 读取时会转换成请求的 autoscaling API 版本。
- autoscaling/v2beta2 scaleUp 及 scaleDown 对象不能为 null,并在其 Kubernetse 代码可以查看到相应的检查机制。
- 当使用 autoscaling/v1 时,v2beta2 版本中的相关对象字段将作为 annotation 保留,apiserver 不会检查 ScaleUp/ScaleDown 的 annotation是否为 non-null,而导致 kube-controller-manager panic 问题。
- 我们可以使用 v1 或 v2beta2 创建一个 HPA 对象,然后使用 v1 或 v2beta2 读取、更新或删除该对象。 etcd 中存储的对象只有一个版本,每当您使用 v1 或 v2beta2 获取 HPA 对象时,apiserver 从 etcd 读取它,然后将其转换为您请求的版本。
- 在使用 kubectl 时,客户端将默认使用 v1(
kubectl get hpa
),因此我们必须明确请求 v2beta2 才能使用这些功能(kubectl get hpa.v2beta2.autoscaling
) - 如果在更新 v1 版本的 HPA 时(kubectl 默认用 v1),手动修改了 v2beta2 功能相关的 annotation 将 scaleUp/scaleDown 设为 null,会导致 controller-manager 挂掉.
- 确认问题来自 HPA behavior 的 Bug
2021-10-23
- 跟公司冲浪小分队,第一次玩冲浪,最佳成绩是在板上站了大概 6s…
2021-10/11 - 2021-10-19
- 将 EKS 集群从 1.17 升级到 1.21(新建集群切量的方式),但是遇到部分服务迁移后可用率抖动。
- 未定位到原因,升级失败,回滚了流量。
2021-09-13 - 2021-09-17
- 学习极客时间《10X程序员工作法》
- 以终推始
- 识别关键问题
- ownership
2021-09-02 - 2021-09-11
- EKS 集群升级
- 了解 EKS 集群的原地升级的细节
- 输出 EKS 集群原地升级的测试方案,以及生产环境的 EKS 集群升级方案
- 学习使用 kubeadm+containerd 部署 k8s 测试集群
- 涉及到的组件:Kuberntes 控制面、网络插件 Cilium、kube-proxy、coredns、containerd
2021-08-31 - 2021-09-01
- 思考我在工作中遇到的一些非技术问题,寻找解法
- 效率:如何在没人 push 的情况下(没有外部压力),维持住高效率的工作状态(早早干完活下班它不香么?)。
- 建立有效的「自检」与「纠错」机制
- 自检:
- 列出目前已知的「异常」和「健康」两类工作状态,每日做一个对比。
- 每日都列一下详细的工作计划,精确到小时(预留 1 小时 buffer 应对临时需求)。
- 自检:
- 建立有效的「自检」与「纠错」机制
- 沟通:遇到问题(各种意义上的问题)时,及时沟通清楚再继续推进,是一件 ROI 非常高的事。否则几乎肯定会在后面的某个节点,被这个问题坑一把。
- 目前的关键目标是啥?存在哪些关键问题(实现关键目标最大的阻碍)?我最近做的主要工作,是不是在为关键目标服务?
- 如何把安排到手上的事情做好?
- 思考这件事情真正的目标的什么?
- 比如任务是排查下某服务状态码有无问题,真正的目的应该是想知道服务有没有异常
- 达成真正的目标,需要做哪些事?
- 不仅仅状态码需要排查,还有服务负载、内存、延迟的分位值,或许都可以看看。
- 跟需求方沟通,询问是否真正需要做的,是前面分析得出的事情。
- 思考这件事情真正的目标的什么?
- 效率:如何在没人 push 的情况下(没有外部压力),维持住高效率的工作状态(早早干完活下班它不香么?)。
这些问题都是有解法的,关键是思路的转换。
2021-08-28 => 2021-08-29
- 容器底层原理:
- linux namespace 与 cgroups
- linux 虚拟网络接口 macvlan/ipvlan、vlan、vxlan
2021-08-19 => 2021-08-23
- 阅读 rust 语言的官方文档:the book
- 边读文档边做 rustlings 的小习题
- 目前完成了除 macros 之外的所有题
- 遇到的最难的题:conversions/{try_from_into, from_str}
- 使用 rust 重写了一版 video2chars
2021-08-12 => 2021-08-16
- Linux 的虚拟网络接口
- Linux 的 netfilter 网络处理框架,以及其子项目 iptables/conntrack
2021-03-11 => 2021-08-09
- 入职大宇无限
- 学习 nginx - openresty - apisix
- 工作中,在自己负责的领域,建立起 ownership
- 学习新公司的工作模式:OKR 工作法
- 学习新公司的思维模式(识别关键问题)
- 如何从公司的角度去思考问题,找到我们目前最应该做的事情
- 从以下角度去评价一件事情的重要性
- 这件事情对我们目前的目标有多大帮助?
- 需要投入多少资源和人力?
- 在推进过程中,有哪些阶段性成果或者 check point?