Weekly | 时间的复利

技术 https://ubuntu.com/containers/chiselled 基于 Ubuntu 的 distroless 容器,相较于 google 的 distroless 尺寸更小了,等等网友的实测。 https://ersei.net/en/blog/fuse-root 在 initramfs 中挂载 Google Drive,启动 Linux ,看起来非常适合一些本地磁盘交互少的服务。 https://makojs.dev/blog/mako-open-sourced_zh-CN 一个用 Rust 编写的新的 JavaScript 编译器,被 Hacker News 上的老哥笑死: ...

July 7, 2024 · 2 min · 673 words

Weekly | root cause 是 我真菜

技术 Opening windows in linux with sockets, bare hands and 200 lines of C | Hereket 跳过 xlib 用两百行 C/C++ 代码操作 XWindow。 Consistency Large Language Models: A Family of Efficient Parallel Decoders 并行 LLM ,看不懂,但我大受震撼。 Virtualizing the 6502 on a 6502 with 6o6 (and The Incredible KIMplement goes 1.0) 作者在 6502 CPU 上虚拟化了 6502,这样我想起了一位油管大佬的基于 6502 的系列教程,真的非常适合每位对计算机如何计算感兴趣的人入门。 ...

May 19, 2024 · 1 min · 370 words

Weekly

技术 VictoriaMetrics: A Comprehensive Guide, Comparing It to Prometheus, and Implementing Kubernetes… 今年才第一次知道了 VictoriaMetrics 这个项目,看起来解决了 Prometheus 的挺多痛点,最典型的莫过于 Prometheus 的资源消耗以及 WAL,之前做 SRE 的时候就遇到过,一旦 Prometheus OOM 重启,就要变成瞎子,必须要等到 Prometheus 恢复完成,最痛苦的莫过于,恢复的过程中再次 OOM,不断的 CrashLoop …… 痛苦的回忆。 ...

March 17, 2024 · 1 min · 440 words

Weekly

技术 Kubernetes Clusters Have Massive Overprovisioning Of Compute And Memory 文章认为大多数 Kubernetes 集群中 CPU 内存都是过度提供的,平均使用率非常的低,造成了比较严重的浪费,不可否认这是事实,但是从我过往的经验来看,对于运维人员和业务方来说,大多数的业务不可能 7x24 都维持在固定的水位,所以在允许的范围内尽可能的多配置一些 CPU 和内存比流量高峰到来前再 scale up 应用副本数事实上要安全和简单,毕竟为了应对在应用副本扩缩容的过程中发生的各种状况,而研发和设计保障手段的成本要远高于多配一点点 CPU 和内存。 ...

March 10, 2024 · 2 min · 548 words

Weekly | 2024-03-03

技术 Why You Should Not Run MinIO on SAN/NAS Appliances 性能、经济性、商业。 What We Got Right, What We Got Wrong Golang 已经 14 岁了,这是 Rob Pike 在 Golang 生日当天的 talk,总结了在 Golang 设计和实现过程中的得失。 Concurrency is not Parallelism by Rob Pike ...

March 3, 2024 · 1 min · 447 words

Weekly | 2024-02-25

技术 Linux 服务器功耗与性能管理(一):CPU 硬件基础(2024) 说来惭愧,第一次理解了为什么 CPU 能够动态运行在不同的频率,为什么能够超频。 Matthew Sanabria - Start With the Go Standard Library ...

February 25, 2024 · 2 min · 548 words

Weekly | 2024-02-04

阅读 技术 Kubernetes 入门到实践:借助 WireGuard 跨云搭建 K3s 集群环境 多云集群,感觉安全性上还是有一些挑战 Deprecation Warnings in containerd - Getting Ready for 2.0! Containerd 即将发布 2.0 Is it time to ditch MySQL and PostgreSQL for SQLite? | Onfold TL;DR SQLite 场景限制于数据量较小,表结构相对稳定的场景。 ...

February 4, 2024 · 1 min · 320 words

Weekly

技术 step by step 同事做的以 Make real 为例子介绍 AIGC 的原理第二篇,第一篇在 https://step-by-step-ai.netlify.app/ 四层负载均衡漫谈 已列入网络入门必读文章,虽然表面上是在讲四层负载均衡,实际上将二层转发、三层路由、四层、七层负载均衡全部串讲在一起,深入浅出,适合每位同学阅读。 ...

December 10, 2023 · 1 min · 400 words

记一次由 Systemd 超时导致 OSTree 挂载失败的故障调查

我当前负责公司内部一个服务部署套件的研发,主要用于公司其他提供功能产品在我们超融合云管平台产品上的安装和管理,包含了虚拟机管理和服务生命周期管理。 ...

December 2, 2023 · 5 min · 2466 words

Weekly

技术 https://github.com/jbranchaud/til TIL (Today I Learn),作者的笔记记录方式挺有意思 IPC - Introduction 关于 IPC 的介绍,系列文章已经完成了 4 篇,分别介绍了 Named Pipes,Unix Domain Sockets,Unix Signals 和 Message Queues ...

November 26, 2023 · 1 min · 326 words

Weekly

技术 Deconstructing Type Parameters - The Go Programming Language Golang 泛型系统的更新,增加了关键字 ~ ,用于推测类型的底层类型。 Linux kernel coding style — The Linux Kernel documentation Linux 内核代码风格指南 https://github.com/nasa-jpl/open-source-rover NASA JPL 开源的 6 轮漫游车,想把他改成露营车哈哈哈 ...

November 19, 2023 · 1 min · 80 words

Weekly

技术 TCP Retransmission May Be Misleading (2023) 非常精彩的分析,说明内核中的 TCP 重传指标不明确,包含了大量的 TLP (Tail Loss Probe)引起的重传,又因为 TLP 只有一部分重传会导致 TCP 重传指标增加,所以没法完全的从指标中去除。 ...

October 29, 2023 · 1 min · 321 words

Weekly | 依旧喧嚣

技术 PEX8796_PCIE_GEN3_24PORT_Switch - 嘉立创EDA开源硬件平台 相当于可以转出 24 个 x4 nvme 固态,感觉可以搞个小一点的型号,弄一个 8 盘位的全闪 NAS Power Monitoring Setup (IoTaWatt + Grafana) 用 Grafana 监控家里的用电 有关 TLS/SSL 证书的一切 关于 TLS 目前看到最通俗有趣的解释。 建立信任是一个漫长的过程。 –laixintao 腾讯 13 年,我所总结的Code Review终极大法 函数内代码不在一个逻辑层次上,阅读代码,本来在阅读着顶层逻辑,突然就掉入了长达50行的 isMerge 的逻辑处理细节,还没看完,读者已经忘了前面的代码讲了什么,需要来回看,挑战自己大脑的 cache 尺寸。 把工程实践中遇到的问题,从问题类型和解法类型两个角度去归类,总结出一些有限适用的原则,就从点到了面。 Building and operating a pretty big storage system called S3 亚马逊 S3 存储副总裁 Andy Warfield 演讲,讲述 S3 是怎么工作的 https://github.com/containers/youki 使用 Rust 编写的容器运行时,Rust 生态开始井喷,有一种当年 Golang 生态井喷时的状态,以优异的性能替换当时相对“成熟”的实现。 电子邮件加密指南 - 使用 GnuPG 加密对抗大规模监控 GPG 加密电子邮件指南 https://github.com/luban-agi/Awesome-AIGC-Tutorials 关于 AIGC 的各种教程 ...

September 17, 2023 · 1 min · 116 words

Weekly | 教师节

技术 KubeVirt 探秘:一些核心问题解答 说到 KubeVirt ,我司也有对应的 vm on kube 的产品 kubrid 生活 Beancount复式记账:接地气的Why and How - zsx’s Blog 看到 @yiran 开始使用 Beancount 记账,略作一些了解,感觉确实是个比较适合程序员的工具,只不过复式记账的逻辑略微复杂,并且生活中的收支其实更关注预算管理,这一方面还是 MoneyWiz 做的更好,但是 MoneyWiz 实在是太卡啦,M2 Max 上都卡。 每个人每天都只有24小时,希望我的选择真的是我的选择 | 枫言枫语 从个体的角度来说,我们的人生规划不仅需要个人意识的觉醒,也需要深入探索内心真正想要的东西,而不是把自己的人生寄托于外部赋予的现成答案。 Harry Browne’s 17 Golden Rules of Financial Safety 安全并不是通过试图窥探未来以消除不确定性而获得的。安全来自于制定应对不确定性的现实方法。 不预测,只应对 股票、债券、黄金、现金 各 25%,每年检查一次构成,低于 15% 时或高于 35% 时需要修复原始比例 书、影 《老师,好 》 除了谦儿哥和一众客串的演员外,“年轻”演员的演技真的很难代入,剧情也比较老套,没看完

September 10, 2023 · 1 min · 54 words

Weekly | 玉女风流

本周是 2023 年的第 34 周 技术 https://orbstack.dev/ docker desktop 的替代品 https://fuweid.com/post/2023-08-sync-containerd-issue/ Init-container rootfs 大部分都是可写模式的 overlayfs,如果 Init-container 是做数据预下载的话,那么 containerd 在删除 Init-container 时,内核一定会刷盘。在大部分场景下,同一个节点上的 Pod 共享同一块数据盘,这种不预期的刷盘很容易把系统打崩。 生活 https://matt-rickard.com/directly-responsible-individuals 最近好像大家都在谈论 DRI 以及设立 DRI 书 《小镇喧嚣》 阅读到第四章 影 《玉女风流》 | 《One, Two, Three》 背景是在美苏冷战期间的西德,充满了恶毒的蒸制银鱼,各种苏联笑话,值得一看

August 28, 2023 · 1 min · 39 words

Weekly | 不是发现美,而是感知丑

本周是 2023 年的第 33 周 技术 bug怎样算修完?浅谈团队分布式bug管理 —— git-poison简单易用的bug管理工具 阿里关于分布式 bug 管理的实践,工具虽然暂未开源,不过实现的思想非常值得借鉴,特别是在多人协作并且多 LTS 分支时非常管用,不需要再人肉一个一个分支确认要 pick 的目标分支,快速确定影响范围。 https://medium.com/opsops/accessing-host-system-systemd-from-containers-systemctl-492a1a385102 一种在[[容器]]里控制宿主上 [[systemctl]] 的方式 https://stable-diffusion-art.com/text-to-video/ 用 [[Stable Diffusion]] 文字生成视频 生活 设计:好的,坏的和丑的 做设计不是发现美,而是感知丑 书、影 《置身事内》 已看完,非常推荐所有人都看看,可以对国内宏观政策制定有个整体的把握。 《小镇喧嚣》 看到第三章,和《置身事内》互补,深入到小镇,县乡,感受宏观决策对乡镇运行的实际影响,以及乡镇的应对策略。 《工作、消费主义和新穷人》 已看完,工作伦理演化为消费伦理,从而诞生了新时代的新定义下的穷人。

August 20, 2023 · 1 min · 35 words

Weekly | 你永远不知道明天和意外哪个先来

本周是 2023 年的第 29 周 技术 https://www.piglei.com/articles/the-answer-is-in-the-code-fulfill-requirements/ 是否能通过读代码来轻松还原需求 代码的可读性也体现在是否能够反推出原始需求 https://www.jeffgeerling.com/blog/2023/building-tiny-6-drive-m2-nas-rock-5-model-b 6 盘位 sata ssd 全闪 [[NAS]],这让我想起另一个 DIY NAS,应该是我更希望采用的方案, https://mp.weixin.qq.com/s/KNislUVJhMD8uhh10kwgOA 上面这个方案中使用的是一个价值 1100 软妹币的 intel 背板(料号是 A2U8X25S3PHS),再加上一块 PLX 卡(海鲜市场 750 块左右)以及一块能够跑满 PCI-E 4.0 x 16 的主板,即可组成一个高性能的全闪 NAS https://www.passkeys.io/ 一种不算新的登录验证方式,扫二维码登录 https://antfu.me/posts/ai-qrcode-101 [[AI]] 生成二维码 101 https://antfu.me/posts/ai-qrcode-refine 优化 [[AI]] 生成的二维码 https://matt-rickard.com/robots-txt-for-llms 个人感觉对于 [[LLM]] 语料的控制非常必要,一旦对版权内容的侵犯到达一定规模,这是大语言模型的一个巨大的风险点,参考之前对于 Windows 激活码的查询。单靠对 prompt 设置违禁词是禁不完的,这个又可以参考简中互联网,网民们能发明各种各样的简写、谐音等等来规避违禁词系统的审查。 https://zhuanlan.zhihu.com/p/55142557 RDMA 基本概念 生活 https://matt-rickard.com/schopenhauers-36-stratagems-for-winning-arguments 可以称之为叔本华的杠精手册 我的北京个人房源获取攻略2023加强版 不止租房,满满的都是生活智慧,和清洁工大娘、保安大叔等搞好关系这点我无比认同并坚持践行。 Effective Note-Taking: Avoid Common Trap 并不是所有的人都需要做笔记,但如果要做笔记,有一些坑是需要避免的。 书、影 《闪闪的儿科医生》 B站出品,聚焦深圳儿童医院,人情冷暖,你永远不知道明天和意外哪个先来,因为拍摄团队是同一个,所以浓浓的守护解放西味,好几个案例看的眼泪哇哇的,9.9 分,强推,0.1 分扣在太短了,不够看 ...

July 24, 2023 · 1 min · 72 words

Weekly | 相见即诀别

本周是 2023 年的第 28 周 技术 (什么?!本周居然没看任何值得推荐的技术文章?) 生活 https://stephanango.com/file-over-app If you want your writing to still be readable on a computer from the 2060s or 2160s, it’s important that your notes can be read on a computer from the 1960s. 工具只是暂时的,而自己创建的数据才可能是永恒的,谨慎使用那些不支持数据导出的应用或是服务。 书、影 《古相思曲》 B站出品,可以看出捉襟见肘的成本,也可以看出年轻演员的稚嫩,但故事是一个完整的故事,虽然是个 BE,但想不到比这个 BE 更好的结局了,和对象俩看的嗷嗷哭。主观评分 9.5

July 16, 2023 · 1 min · 48 words

Weekly | Curiosity

本周是 2023 年的第 27 周 技术 https://icloudnative.io/posts/wireguard-endpoint-discovery-nat-traversal/ 优雅的为 [[wireguard]] 在 NAT 上打洞 https://notes.dt.in.th/HDRQRCode 一个 [[HDR]] 二维码,实际上是一个峰值亮度为 5000 nit 的 “超级白” 视频 https://yjdoc2.github.io/8086-emulator-web/ 在线 [[8086]] 模拟器,可以直接写汇编,编译后运行,查看寄存器状态和内存状态 https://johncodes.com/posts/2023/06-29-on-maintaining-cobra/ spf13/cobra 作者的一些牢骚,在 [[AWS]] 期间完全没有时间和机会维护 cobra 项目,同时也提出一个警示,那些只有很少人维护甚至只有一个维护者的项目,是有风险的。 https://blogs.nvidia.com/blog/2022/03/25/what-is-a-transformer-model/ [[Nvidia]] 关于 Transformer 模型的介绍,没有什么技术细节,更多的是解释大致的原理和应用方向。 https://moelove.info/2023/07/05/%E5%BC%80%E6%BA%90%E4%B8%8D%E7%AD%89%E4%BA%8E%E5%85%8D%E8%B4%B9Red-Hat-%E8%B0%83%E6%95%B4-CentOS-%E9%A1%B9%E7%9B%AE%E5%B8%A6%E6%9D%A5%E7%9A%84%E6%80%9D%E8%80%83/ 商业公司为了维护自己的利益做出一些不违背开源协议的调整也无可厚非,但 [[RedHat]] 可以调整,用户也可以用脚投票。 https://medium.com/android-news/working-with-motion-photos-da0aa49b50c 在备份手机相册的时候发现 [[Synology]] 的 Photos 支持了 motion photo 的预览,对 android 标准下的 motion photo 格式有点好奇。 生活 http://paulgraham.com/greatwork.html [[格雷厄姆]] 的新文章,如何做出伟大的成就,好奇心和 Just for fun 是最强大的动机 █ The three most powerful motives are curiosity, delight, and the desire to do something impressive. ...

July 9, 2023 · 1 min · 86 words

Weekly | Obsidian

本周是 2023 年的第 25 周 技术 如何高效阅读源代码 | 程序员的喵 带着问题看代码 注意数据结构以及他们之间的关系 KEP-2799: Reduction of Secret-based Service Account Tokens 一则旧闻,1.24+ 的 Kubernetes 不再为 service account 创建 secret 对象,而是使用了 1.22 进入 stable 的 serviceAccount volume 类型,由 kubelet 通过 TokenService 来获取 token 并挂载到容器中的 /run/secrets/kubernetes.io/serviceaccount 目录下 连接跟踪(conntrack):原理、应用及 Linux 内核实现 本周遇到一个同时使用 [[docker]] 和 [[nerdctl]] 直接控制 [[containerd]] 分别启动容器,都通过 expose port 来暴露端口时,只有 [[docker]] 启动的容器能够从另一台机器访问到的故障。顺便学习一下 conntrack 的使用和实现。 Hashing Hash 101,详细介绍不同 Hash 算法的侧重点 DO YOU KNOW HOW MUCH YOUR COMPUTER CAN DO IN A SECOND? ...

June 27, 2023 · 1 min · 176 words

NeoVim + coc.nvim + ccls 搭建 C/C++ 开发环境

近期需要阅读 Linux Kernel 的源码,因为我日常使用 NeoVim + coc.nvim 在 Ubuntu 上进行开发,以下是我的配置记录。 NeoVim: 是 Vim 的一个 fork 版本,可以使用 Lua 进行配置和扩展 coc.nvim: 是一套使用 javascript 开发的 LSP 实现,目标是贴近 VsCode 的使用体验 ccls: 是 C/C++/Objective-C 的 Language Server 实现 bear: 用于记录传递给编译器的命令以构建 compile_commands.json 安装依赖 apt install clang libclang-14-dev bear 安装 ccls git clone --depth=1 --recursive https://github.com/MaskRay/ccls cd ccls cmake -H. -BRelease -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH=/path/to/clang+llvm-xxx cmake --build Release ccls --version 配置 coc.nvim { "languageserver": { "ccls": { "command": "ccls", "filetypes": ["c", "cc", "cpp", "c++", "objc", "objcpp"], "rootPatterns": [".ccls", "compile_commands.json", ".git/", ".hg/"], "initializationOptions": { "cache": { "directory": "/tmp/ccls" } } } } } 克隆 Linux Kernel 并索引 git clone git@github.com:torvalds/linux.git cd linux # 此处我打算查看 x86 架构的代码 make O=. ARCH=x86 COMPILED_SOURCE=1 cscope tags # 使用 bear 来监控一次构建,用于生成 compile_commands.json bear -- make -j 8 完成上述步骤之后,通过 nvim 打开 内核代码 就可以通过 gd 来跳转定义了。 ...

June 22, 2023 · 1 min · 129 words

Weekly | 新阶段

本周是 2023 年的第 24 周 技术 Redditor creates working anime QR codes using Stable Diffusion 用 Stable Diffusion 的 img2img 功能生成和二维码结合的图片,看起来作者是训练了自己的模型和 LORA Bread Board Wristwatch 一个比较简单的入门项目,这个迷你数码管很喜欢,想买个来收藏,一查价格,¥260,告辞。 The Design Patterns for Distributed Systems Handbook – Key Concepts Every Developer Should Know 分布式系统设计模式 生活 围观张一鸣近10年的微博,整理了这231条干货 Paragraphica AI 摄影 如此努力的苏联,为什么还是输掉了与美国的“芯片冷战” 苏联曾经的问题,我们的身上也重演了一遍,但不一样的是我们很快意识到了市场的重要性。 书、影 《全频道阻塞干扰》 有点没看懂,但撞向太阳来换取胜利确实让我联想到了《流浪地球1》中刘培强撞向木星 《100 Go Mistakes and How to Avoid Them》 刚开始看 新阶段 本周和妹子领证结婚了~正式走进人生的新阶段,肩上的担子要扛的更稳才行!

June 11, 2023 · 1 min · 62 words

Weekly | 阿那亚

本周是 2023 年的第 23 周 生活 在业务系统中寻找技术含量 技术人的终点就是被优化(非贬义),努力做到不需要我们做什么 本周三开始部门去了阿那亚团建,是一场大型网友线下见面会,阿那亚小镇的设计很好看,但也是多少有点徒有其表,一些细节仍然不够好,即使是这样,仍然值得尽可能多的地方模仿建设。 书 《球状闪电》 大刘是真的爱丁仪 《全频段阻塞干扰》 刚开始看 影 《漫长的季节》 在去团建的飞机上看完了,时代大背景让人唏嘘,画面很美,准备二刷,主观评分 9.3

June 4, 2023 · 1 min · 18 words

Weekly | 漫长的季节

本周是 2023 年的第 22 周 技术 用 10 万条微信聊天记录和 280 篇博客文章,我克隆了一个数字版自己 - 少数派 真正的第二大脑! 王川: 从 chatGPT 看人工智能的投资机会和风险 Gpt 之类的大语言模型属于一种 meta tool (元工具)。 从投资角度看,唯一值得长期投资的是能够控制生态的,强垄断的,具有征税能力的公司;没有征税能力,竞争者可以不断绕过去,或者不断杀你的价, 这都不是好的投资对象。 The Wails Project | Wails 和 Tarui 类似,使用系统的 Webkit,试了一下,分发体积挺小的,只有 8.6M,比 Electron 轻得多,但这工具我理解和 Electron 的兼容性和完备性比起来还很简陋。 https://github.com/veggiedefender/browsertunnel 利用 dns 夹带私货 GraphQL: From Excitement to Deception 每一个缺点都重重的击在我的心巴上,当系统开始演进,schema.graphql 文件开始疯狂膨胀,我司的产品 CloudTower 就是使用的 GraphQL ,目前这份文件一个已经膨胀到 8 万+行了,每一次修改都伴随着剧烈的痛苦。 Parsing Protobuf at 2+GB/s: How I Learned To Love Tail Calls in C 尾调用优 Intel公布全新架构x86S!纯64位模式运行:指令集大幅精简 ...

May 28, 2023 · 1 min · 97 words

Weekly | 新电脑

本周是 2023 年的第 21 周 技术 How to add a video to a Hugo post 在 hugo 的 blog 中添加 video 左耳朵耗子的话 VardaGPT/STORY.md at master · ixaxaar/VardaGPT It looks like my job is safe this year. Time to generate an elaborate software project and claim supremacy on my ChatGPT usage abilities to hedge against next year. AI 并不会夺走我们的工作,但不会用 AI 确实可能会失去我们的工作。 It’s Time For ‘Maximum Viable Product’ What if more developers developed a sense for the “maximum” number of things a product should do — and stopped there? ...

May 21, 2023 · 2 min · 264 words

Weekly | 水漫金山

本周是 2023 年的第 20 周 技术 本周业余时间基本都在看书了,居然没有读技术文章,很不应该 生活 本周家里水管爆了,把家里全淹了,半夜被拉起来去舀水 😇 Your browser does not support the video tag. 而事情就是一系列的巧合,最近政府再搞自来水直供入户的工程,废弃了位于天台的水池,所以在地下加了大型的增压泵,导致水管里的水压比之前高了不少,厨房洗碗池的热水管因为时间太长(十多年了)加上水压增大,不堪重负爆了,对于厨房爆水管,原本在装修的时候是有在厨房橱柜下设计了一个地漏,但是因为反味儿,被我爹拿报纸塞住了,至此,万事俱备。 书 《乡村教师》 大刘的一本两万字的短篇,下班路上半个小时的翻完了,但却沉浸在大刘所构造的世界里久久不能平静。 《AI 未来进行时》 本周看了两个小故事 《双雀》 和 《无接触之恋》,陈楸帆老师的两篇故事都非常的迷人,在细微之中刻画了兄弟情和爱情,也深刻的展现了在不远的未来 AI 会对我们生活产生的影响。 《双雀》中展示的就是定制化的个人助理机器人,就像屎大颗先生的贾维斯,陪伴着孩子们的成长,借这个故事,李开复老师引出了当下炙手可热的 LLM (大语言模型)和在此基础上产生的 GPT 模型。 《无接触之恋》则畅想了一个新冠已经 ”常态化“ 的未来,大家都已经习惯了所有事情都在线上,连谈恋爱都在线上,地点再也不受限制,真正的全民异地恋。另外正是因为新冠不断地变异,所以留给疫苗研究时间也变得令人发指的短,人们只能借助 AI 来理解病毒并尝试抵御。李开复老师则引出了 数字医疗和人工智能的结合,比如 AI 辅助问诊、AI 辅助看片(看 CT 片)等等,还有 AI 在对于蛋白质折叠药物筛选方面可能的潜力,推而广之的精准医疗和诊断,以及机器人技术。 《置身事内》 可谓之神书,力荐,从房地产和土地财政这个剖面切入,深刻的剖析我国政府和经济发展之间千丝万缕的联系,央地之间环环相扣的制衡,从微观和宏观两个层面阐述了我国经济快速发展的原动力。 《工作、消费主义和新穷人》 这本书论述了进入工业化以来,工作伦理(不上班是没有道德的)的产生,消费主义的产生,以及由此产生的新穷人(并不是真正意义上的赤贫)。

May 14, 2023 · 1 min · 52 words

Weekly | 嫉妒即痛苦

本周是 2023 年的第 17 周。 技术 WebGPU and the New OS 从用上 Arc 浏览器之后,我越发的喜爱可以通过浏览器访问并且功能齐全的 App,例如 Notion、Telegram、Discord、Slack 等等。事实上所有使用 Electron 框架的应用本质上都可以搬到浏览器上,不会像现在一样,每个应用都带个 Chromium,没有复用。 How to Gracefully Close Channels -Go 101 优雅的关闭 golang channel The universal principle is don’t close (or send values to) closed channels. 使用 BuildKit on Kubernetes 构建多架构容器镜像 项目中我已经用上了 buildkit 用于构建不同架构的镜像,很稳定,值得推荐,不过对于多阶段构建的场景下,需要有 registry 用于上传中间镜像。 Load Balancing 用动画直观的、由浅入深的展示不同 负载均衡 算法的原理和性能比较。对于不同算法的选择还是要基于具体的场景,有些场景如多人游戏对延迟更敏感,有些场景如流媒体对吞吐量更敏感。 Skip List–跳表(全网最详细的跳表文章没有之一) 阅读 《Redis 设计与实现》第五章提到了 SkipList 这种数据结构,但没有详细介绍原理和应用。SkipList 适合用在对于顺序排列的数据进行快速查找和范围查找的场景中。本质上是一种用空间换时间的手段。 30年老代码被干掉!微软用18万行Rust改写Windows 系统内核_文化 & 方法_Tina_InfoQ精选文章 这两年 Rust 终于火起来了,不过对于 C++ 忘了个精光、没有深刻体会过 C++ 内存管理恶心的我,在学习的过程中并没有实际的感受到 Rust 带来的内存安全上的质的提升,只是感觉啥东西都得手动,以及看起来精炼,实际上啰嗦的语法 ...

May 7, 2023 · 1 min · 92 words

Weekly | 粉色娇嫩,你如今几岁?

本周是 2023 年的第 16 周,全年已过 41%。 技术 苹果:为了安全让 M2 吃灰 | 程序员的喵 有人说 Mac 是最适合开发者的设备,但苹果关心开发者么? 苹果确实已经不再关心开发者了,虽然 macbook 仍然是到目前为止个人认为最好用的 labtop,但阿三程序员们代码质量是越来越低,苹果也越来越傲慢 You’re Allowed To Make Your Own Tools MAKE EVERYTHING AUTOMATION !!! 35 岁,我用这三种方法克服焦虑 | 程序员的喵 用这三种方法克服焦虑: 做让自己进入心流的事 换工作和城市 找到自己的长期驱动力,做 PlanB 生活 面试底层逻辑整理 说别人爱听的话,做自己认为正确的事。 你要像个海王一样同时面试不同的公司岗位,在其中查漏补缺,包括技术,话术,绎术,但是一旦确定去了某家公司你就得像个直男一样,认真对待,不耍小心眼,做出成绩! 书 《AI 未来进行时》 以科幻故事为载体推测二十年后 AI 对于生活可能的影响,每个小故事后面都有李开复对于故事中提到过的 AI 技术进行注解。 《Redis 设计与实现》 Redis 的源码可作为 C 系统编程的典范,包含了很多经典的数据结构的实现。 影 《甄嬛传》 假期闲下来了,找个剧追一下,妹子推荐甄嬛传,其实我一直对于清宫剧不太感冒,看到 73 集的体量更是望而生畏,想想硬着头皮看几集,没想到确实被后宫里的各种勾心斗角吸引了,目前看到 11 集。

April 30, 2023 · 1 min · 64 words

Weekly | BIG TCP

w14 本周是 2023 年的第 14 周,本周业务较多,并且业余时间主要是在读 WebDAV 的 RFC,所以只有一篇感觉比较值得分享的文章。 Why your website should be under 14kB in size | endtimes.dev Most web servers TCP slow start algorithm starts by sending 10 TCP packets. The maximum size of a TCP packet is 1500 bytes. This maximum is not set by the TCP specification, it comes from the ethernet standard Each TCP packet uses 40 bytes in its header — 16 bytes for IP and an additional 24 bytes for TCP ...

April 17, 2023 · 1 min · 129 words

Weekly | 硅基生命降临

本周是 2023 年的第 13 周 技术 Why I Will Never Use Alpine Linux Ever Again 不只是 C,在 Golang 项目中也会遇到如根证书默认没有安装,而导致在代码中访问 https 的地址失败。实际项目中,为了一些依赖项寻找一个合适的 apk 包,而在不同的版本之间来回测试,这个过程非常的恶心人。 彻底告别K8s和Docker Swarm!Ruby On Rails 之父下云后:系统好用又便宜,还清理了几千行代码 - InfoQ 架构头条 Kubernetes 最开始设计也只是为了贴合“微服务”生态和容器生态而设计的一个框架,并不完美,也一定不是容器编排的最终形态。在实际工作中,笔者也总是能遇到各种各样妥协的设计。 上云也好,下云也罢,无非是要找到最适合自己组织的服务部署和运维模型,而不是一味的跟从所谓的“业界标准”,况且 Kubenetes 也不是云的标准答案,只是在较多场景下成本和收益相比性价比比较高的一个方案。 要论局限性, Kubernetes 的局限性大了去了,一旦集群规模变大,各种看起来健壮的设计都会成为瓶颈。笔者“有幸”开发和运维过一个应用,部署在一个超过 300 个 worker 节点的 Kubernetes 集群上,我们依次遇到了: Deployment 过多导致 APIServer 宕机; 频繁的增删 Service 导致节点来不及增删 iptables 条目 节点规模到 300+,Master Node 不得不扩容到了 32C64G etc… https://www.youtube.com/watch?v=ORBzoVCUHwY 正确设置 vNUMA 适配物理 NUMA,不但可以提升 VM 的性能,也可以运行更多的 vm https://moelove.info/2023/04/03/Kubernetes-v1.27-新特性一览/ 原地 Pod 资源扩容非常令人期待 ...

April 10, 2023 · 1 min · 96 words

Weekly | 拒绝烂片,从我做起

技术 https://zdyxry.github.io/2019/12/01/Linux-引导那些事儿/ 终于对 Linux 的引导启动流程清晰了一些 https://zdyxry.github.io/2020/03/02/DMA-RDMA-基本概念/ 工程问题都是在成本和收益之间不断地折中选择 https://zdyxry.github.io/2020/03/26/论文阅读-Pingmesh-A-Large-Scale-System-for-Data-Center-Network-Latency-Measurement-and-Analysis/ 每个看似简单的问题,当体量大起来之后都有可能成为瓶颈,小小的一个 ping 命令,当所要检测相互连通性的设备成千上万的时候,检测复杂度、数据量都是惊人的 https://zdyxry.github.io/2020/04/12/runc-nsenter-源码阅读/ runc 几乎是目前 容器 的标准实现,代码实现非常值得一读,对 容器 的底层实现有个更详细的把握 https://dropbox.tech/infrastructure/four-years-of-smr-storage-what-we-love-and-whats-next dropbox 非常高兴的使用着 “臭名昭著” 的叠瓦盘,他们认为叠瓦盘更省电、密度更高、更省钱,想想也是,大型机房并不在乎单盘故障,更在乎整体的可用性和经济性。 https://moelove.info/2023/03/22/突破难关Docker镜像和容器的区别以及构建的最佳实践/ 书、影 电影《宇宙探索编辑部》 主观评分 9.2 理想主义的荒诞黑色幽默,在荒诞和无厘头中谱写一个基于宇宙的浪漫诗篇。王一通 真的是个妙人,电影中他的诗歌听起来驴唇不对马嘴,但是细想想又被一种宇宙浪漫震撼和包裹。 电影《交换人生》 主观评分 0.5 大烂片,浪费了人生宝贵的两个小时,我真的是球球大头了,别再接这种电影了。还好我是在 b 站上看的,这我要是大过年的在电影院看这么个玩意,我可能会脑溢血。

April 2, 2023 · 1 min · 36 words

Weekly | 手滑

技术 AI时代是内容创作者的天堂 - Larry想做技术大佬 AI 是封装程度更高的工具,可以让内容创作更加纯粹,不会被一些所谓的 “技术门槛“ 绊住,会让有想法有脑洞的人发光发热。AI 替代的是只会基础工作而没有自己想法的人。 https://openai.com/blog/chatgpt-plugins ChartGPT 已经能接入真实世界了,他会产生人格吗?他会叛逃吗?反正我打算以后都放尊重点,提问都带上「请您」。 书、影 《孟买酒店》 对于恐怖袭击时的压迫和窒息感营造的非常好,虽然有很多老套的压迫感设计,观影时还是多次屏住了呼吸,片中时不时穿插的真实新闻记录镜头更加深了沉浸感。电影其实结束的有一些仓促,忽然直接特种部队就来了,忽然恐怖分子就全被消灭了,感觉吊上来的一口气没有怎么被卸完。个人整体评分可以给到 8.7。 https://www.practical-ui.com/ 人人都得学点 UI 设计知识。 开箱 本周手滑升级了安装在 Gen8 里的黑群晖,导致现有的方法都无法开机了,斥巨资入白,买了 1821+,以及一块 1.92T 的 S4610 作为 OS 和 热数据层,晚一点等再便宜点再淘块 SATA SSD 组 raid 1,计划再买 6 块 16T 通电时间一万以内的矿盘作为容量层做 Raid10,这样整体容量会到 14.5 * 3 + 1.92 = 45.42T 估计够用个几年了。 其实 1823+ 已经发布,为啥要在这个时候四九入国呢,因为 1823+ 完全就是牙膏往回吸,啥东西都没升级,结果价格去到了 1.4w+,完全不值得。近期即将发布的 DSM 7.2 beta 又在 1821+ 上支持了之前只有 923+ 才支持的 NVMe 存储池,这让 1821+ 的性价比进一步提升。

March 25, 2023 · 1 min · 68 words

Weekly | 不作恶

技术 「 深蓝洞察 」2022 年度最“不可赦”漏洞 瞠目结舌,甚至学到了一个新词 “堆风水”,这个名字真的太贴切了。听说这里面这个 “厂商” 指的是拼多多。 EXT4 Scores A Nice Direct I/O Performance Improvement With Linux 6.3 Linux 6.3 上 Ext4 的 DIO 性能有了成倍的提升 wifi有关的一些问题 关于WiFi 啊哈,一道有趣的Go并发题 barrier 并发原语 因为下周打算休假一周,所以本周大多数时间都忙于项目,学习的有点少,下下周继续补上。 从下篇周报开始,打算一并记录 B 站的观看记录,一方面对自己看过的有用内容进行索引,再一方面增加一些摩擦感争取降低无用内容的摄取。

March 12, 2023 · 1 min · 36 words

Weekly | 开端

这是一个全新的栏目,受到好朋友 @Yiran 的启发,每周总结一下本周的阅读和感悟。

March 6, 2023 · 1 min · 106 words

无客户端远程桌面网关 Guacamole 安装试用指南

管理的服务器、交换机、VM 数量越来越多,种类也越来越多,时常需要同时打开多个不同的工具来访问不同的目标。比方说 RDP 连着 Windows 的机器、 SSH 连着 Linux 的服务器、 Telnet 连着交换机…… 不同的工具还有着不同的连接配置管理方式,没办法统一管理。我也用过 SecureCRT,虽然他很强大,并且在 Windows 上和 Mac 上都很好用,但是他只能连接字符界面。 0x00 Guacamole 简介 Apache Guacamole 是由 Apache 基金会孵化的项目,一个无客户端远程桌面网关(Clientless Remote Desktop Gateway),支持常见的远程桌面协议: VNC RDP SSH Telnet 除了以上的协议支持之外,从 1.1.0 开始,增加了连接 Kubernetes Pod 的支持,连接的 Pod 需要开启 TTy 支持,之后我会详细介绍一下用法。本文着重介绍 Guacamole 的安装和基本使用。 同时, Guacamole 还支持连接分组、窗口多开、剪贴板共享等功能,可以方便的在同一个平台上管理不同协议的终端设备。 服务架构 首先了解一下 Guacamole 的架构 Guacamole Server 主要由两部分组成,Guacamole 和 guacd: Guacamole 是一个 Web 服务,包含前端 guacamole-website 和 guacd 的客户端 guacamole-client。guacamole-client 会将用户和服务器连接配置信息存储在数据库中,支持 MySQL 和 PostgreSQL。 guacd 是一个无状态的 daemon。guacamole-client 会将存储在数据库中的连接配置信息通过内部的协议传递给 guacd,由 guacd 负责处理不同的远程连接协议,并和服务器建立连接。 0x01 安装 Guacamole 提供了多种不同的安装方式,可以编译源码,也可以下载预编译的 war 包。但同时官方也提供预装了插件的 Docker 镜像可以直接简单配置使用。 ...

February 5, 2022 · 4 min · 787 words

2020 年最喜欢的照片

拍照是我非常喜欢的一种记录生活的方式,在过去的 2020 年,虽然疫情深重,拍了很多照片,我从中挑选除了一部分最喜欢的。 警觉 某天带着相机出门扫街,一出门就偶遇了一只流浪的小可爱,举起相机的时候,他(她?)警觉的看着我,作势要跑 云雾 疫情中的某一天早上出门上班,有环卫的工人正在喷洒驱蚊烟雾,阳光穿过云雾形成了一道道流动的光柱 慵懒 与好友爬山途中,在山脚下偶遇了一只慵懒的狗子

February 7, 2021 · 1 min · 9 words

解决 VSCode 中同项目 submodule 的 PyLint 报错

解决 VSCode 中 Python 同项目的 import 问题

January 20, 2021 · 1 min · 34 words

详解 kubectl drain NODE

kubectl drain 是一个比较常用的 Kubernetes 集群管理命令,用于将某一个节点设置成维护状态,目的是尽可能优雅的下线节点。

May 25, 2020 · 4 min · 732 words

基于 Code Server 搭建一套 Web IDE

最近,冲动消费,斥巨资购入了一台 iPad Pro 2020,为了预防“买前生产力,买后爱奇艺”(爱奇艺打钱!)的囧境,还是打算给它上一个能正儿八经写点代码的环境

April 11, 2020 · 2 min · 345 words

Home-lab 计算服务器开箱安装

九点多,顺丰小哥就打来了电话,“你家里有人不,这两件有点大,没人我就不送上去了” “有人有人!” {% note warning %} 多图杀猫!{% endnote %} 开箱 Dell T7820 准系统 机箱正面 信息牌 背板I/O接口 950W 金牌电源 主板 拿掉导风罩之后,可以看到 CPU0 散热器和内存插槽 在 CPU0 旁边盖子下面是用于扩展 CPU1 的插槽 扩展插槽 在 CPU0 散热器上有拆装指南 这里发现了散热器被压塌了一点点,应该是供应商再取掉 CPU 的时候碰歪的,问题不大 CPU插槽 四条热管 在 CPU0 旁边,导风罩外还藏着两个直连 CPU 的 mini-SAS 接口,前面板的硬盘笼如果想要更换成 SAS 背板的时候就插在这里 CPU Intel Xeon Gold 6379 QS ...

January 30, 2020 · 1 min · 78 words

Home-lab 计算服务器策划

事情要从今年的 8 月份说起 那是一个艳阳高照的一天,一条阿里云的 ECS 到期提醒 短信打破了沉寂的一天,大学时用学生优惠买的 1000 块 3 年的 2 核 2G 的服务器眼看就到期了 这台 ECS 在这 3 年里充当了以下角色 Git 服务器 Docker Registry 服务器 Minecraft 服务器(没错,2C2G 就够三四个小伙伴快乐玩耍了) KMS 激活服务器 OSS 对象存储服务器(别问为啥不用阿里的 OSS,问就是能自己折腾绝不用 SaaS (狗头.jpgw) 这一到期,摆在我面前的就只有两条路了,要么含恨续上高额的 ECS,要么迁移到其他便宜点儿的地方 这时,我的目光就落在了我的 Gen8 上…… 灵光一闪 经过了长达一天的摸索和迁移,我把线上的服务,都迁到了家里的 Gen8 上,搭好了 SSH 反向隧道(会单开一篇讲一下),让外网的域名解析都不需要更改 一切都部署妥当,应用也都恢复上线 一切都似乎恢复了平静,但此时此刻我的内心却波涛汹涌 算力不足恐惧症 本地计算环境的搭建完成,我的心也活络了起来,因为我手上涉及了一些 K8S 二次开发相关的业务,同时因为做的都是偏向底层,偏向基础设施方面的工作,总觉得白嫖公司的环境,即使是测试环境,也时不时会影响到别人,所以我开始思考是不是可以在家里搭建一套实验环境,搭建一套只属于自己的 K8S 随便改,随便测,搞坏了最多就是重新部署一套,也不会影响到别人 但是看到 Gen8 里那可怜的 E3v2,区区 4 核 8 线程,再加上 16G 内存,想要承担起如 K8S 这么沉重的业务,这显然是不现实的 ...

December 22, 2019 · 2 min · 295 words

在 Gen8 上安装 FreeNAS-1.11 配置万兆网卡

背景 家里有一台 Gen8,是之前和小伙伴创业的时候德亚淘的,后来项目凉了之后,我就把它收来了,装了Esxi 6.5和黑裙,两块3T的红盘用南桥模拟的B120i做了一个 Raid1,直通到群辉,提供文件服务,挂载了一个盘给TimeMachine备份用。 最近觉得里面的两块 3T 红盘用了快两年了,估计也快凉了,所以打算稍微折腾一下,现在这两块3T盘做一个Raid0,过阵子买多两块新盘做Raid1备份一下TimeMachine啊照片视频什么的。 计划 计划主要分成三个部分 倒腾一下网络,加一个万兆的网卡 放弃掉(假的)硬阵列卡,使用软阵列 把玩儿一下iSCSI,和SMB做一个对比 实施 这一篇博客主要是介绍一下第一和第二个部分,也就是安装新的NAS软件,和(假的)硬阵列卡说再见 系统配置 先说一下目前机器的配置吧 配置 型号 数量 准系统 HP Microserver ProLiant Gen8 1 CPU Intel(R) Xeon(R) CPU E31265L @ 2.40GHz 1 内存 8G DDR3-ECC 2 SSD Plextor M6S 128G 1 HDD WD 3T RED 2 SD Sandisk 32G TF 1 NIC-1G BCM5717 2 NIC-10G MNPA19-XTR 1 整个机器下来只有8个逻辑核心16G内存,其实对于搞Esxi意义不大,而且,实际上折腾他的时间也不是很多,在家里Esxi的需求也不是很大,之前装只是纯粹为了倒腾,学习一下虚拟化 所以这一次的重建打算推翻现在的Esxi,所有的性能纯粹只为了NAS FreeNAS FreeNAS网上的介绍非常多,我也就不再赘述,只说几点,基于FreeBSD,开源,ZFS 以上几点就完全能让我心动了,群辉固然是好的,但是要折腾安装,洗白等等工作,到最后假设数据凉了,还是得自己背锅,所以不如就选择一个还算比较活跃的开源项目 ...

September 15, 2018 · 1 min · 167 words

使用阿里云Maven镜像的正确姿势

2020-02-19 更新 阿里的镜像服务进行了改版,原先的 http://maven.aliyun.com/nexus/content/repositories/central 已经被变更为 https://maven.aliyun.com/repository/central 同时我发现阿里的这个仓库还缺失了索引的配置文件,所以没办法索引成功,但根据阿里的说法是可以构建成功的 $ wget https://maven.aliyun.com/repositories/central/.index/nexus-maven-repository-index.properties --2020-02-19 16:57:55-- https://maven.aliyun.com/repositories/central/.index/nexus-maven-repository-index.properties 正在解析主机 maven.aliyun.com (maven.aliyun.com)... 59.110.251.10, 59.110.251.11, 182.92.29.53, ... 正在连接 maven.aliyun.com (maven.aliyun.com)|59.110.251.10|:443... 已连接。 已发出 HTTP 请求,正在等待回应... 404 Not Found 2020-02-19 16:57:55 错误 404:Not Found。 那么需要修改 ~/.m2/settings.xml 文件中的 mirror 节点下阿里云镜像对应的节点 一、引子 写Java的难免要接触Maven,又或者Gradle(反正都用着Maven的库)。BUT!http://repo1.maven.org/maven2访问起来慢到吃翔,每同步一次索引(大约440MB+)简直就是一个噩梦,曾经为了做Minecraft的Mod,光构建环境花掉了我整整7个小时,当时人年轻,就那么傻等着。 再后来,我知道了可以用镜像站点,最开始用的是开源中国的镜像站,但是就在2016年的7月开源中国因为和服务商的合同到期,所以关闭了他们的镜像库(新闻)。 经过了一段真空期,阿里云的Maven镜像库悄咪咪的上线了!!! 二、然后就出问题了 网上各位博主通常给出的使用阿里云镜像库的方法是修改~/.m2/settings.xml,在mirrors节点下添加 <mirror> <id>nexus-aliyun</id> <mirrorOf>central</mirrorOf> <name>Nexus aliyun</name> <url>http://maven.aliyun.com/nexus/content/groups/public</url> </mirror> 并且标榜亲测可用 但是!我在使用Idea的过程中出问题了,因为怎么也同步不到索引,但是正常导库是快到飞起的。 作为强迫症,看到这里红彤彤的,不能忍! 放狗!搜! 终于让我发现这个nexus-maven-repository-index.properties文件存在一个隐藏的文件夹里,也就是到http://repo1.maven.org/maven2/.index/nexus-maven-repository-index.properties这个地址去获取索引,然后下载nexus-maven-repository-index.gz。 接着我尝试访问阿里云的这个文件夹。 ...

February 3, 2017 · 1 min · 73 words

Spring Boot的Banner

今天来搞点有趣的事情(恶趣味你直说),一个没有脑洞的程序员和咸鱼有什么区别,各种程序里面的彩蛋就是最好的例证,写完业务代码之余,娱乐一下自己,还是蛮有趣的。 今天我来搞得事就是给Spring Boot程序换个Banner,让人一眼就看出,嗯这个程序是你写,那多酷~~啊。 先晒一下我的Banner 原先的Spring Boot的Banner是长这样的 这一点也不独特,一点也不极客! 不开心呢! 我要搞事情! 所以这是怎么做到的呢 其实没有那么多的套路,异常的简单,Spring Boot的开发者已经给你准备好了各种方便的接口 1、第一步 在main/resources目录下创建一个banner.txt 2、第二步 在banner.txt里头开始填你要显示的banner,我们先来试试Hello World! 运行一下下 看!Banner已经被替换掉了! 如果这样就满足了的话,就不是一个充满脑洞优秀的程序员了。 我们继续! 3、第三步 你或许会问了,我的Banner里头颜色是怎么弄的 在Spring的Wiki里面介绍了在banner中可以用到的一些变量,链接 变量 描述 ${application.title} 程序的名称,来源是MANIFEST.MF中的Implementation-Title的值 ${application.version} 当前程序的版本,来源是MANIFEST.MF中的Implementation-Version的值 ${application.formatted-version} 格式化后的程序版本,(Ex. (v1.0)) ${spring-boot.version} SpringBoot的版本,(Ex. 1.4.3.Release) ${spring-boot.formatted-version} 格式化后的SpringBoot版本,(Ex. (v1.4.5.Release)) ${Ansi.NAME} (or ${AnsiColor.NAME}, ${AnsiBackground.NAME}, ${AnsiStyle.NAME}) ANSI编码的参数,NAME为ANSI中的别名 注意:所有Ansi开头的命令作用域是整个banner。 ...

January 12, 2017 · 2 min · 294 words