Hi there 👋

I am kWeiZh, working on CNCF for AI

收到第一次的周期开源赞助

收到第一次的周期开源赞助 最近收到了人生的第一个开源赞助,突然有一种被认可的感觉,激动的心情让我想写一点东西分享一下我的快乐。 首先肯定要大力感谢 Warp.dev 对我和 LSD 开源项目的支持! Warp.dev 是一个 Rust 实现的现代化 Terminal,目前我也在尝试用它替换 iTerm2,不得不说还是挺特别的,尤其每一个命令就是一个 Block,支持团队协作和 AI 建议等现代化功能,起码是在众多 Terminal 里,算是做出自己的特色了。 ...

December 7, 2023 · kWeiZh

2020 年终总结,2021 新年展望

2020 年碰到了新冠疫情,是大环境最差的一年,但是宅在家里,却看到了更多,做到了更多, 放眼看,今年科技圈又把眼光看向了太空, 嫦娥五号登月带回样本,猎鹰九号载人升空,SN8 虽然落地爆炸,但是跳跃测试基本完美完成, 小时候成为科学家的梦想又开始在内心涌动起来(Doge), 回看身边科技圈, Apple Silicon 闪亮登场, 苹果 市值 2 万亿, Tesla, 美团, 小米 市值猛涨, 在拖延症 2020 年总结时, Golang 泛型还在农历新年迎来了好消息。 ...

February 16, 2021 · zwPapEr

macOS GUI Emacs 使用 GPG 给 Git Commit 签名

简介 使用 GPG 给 Commit 签名,网上已经有很多教程,但是在 Emacs 使用 Magit 作为 Git 客户端时, 还是碰到了几个问题。 ...

November 21, 2020 · zwPapEr

儿童疫苗攻略

选择原则 既有免费又有自费的 5 种疫苗,流脑疫苗选自费,其他选免费疫苗; 发病率高、发病后病情严重的先打; 自费疫苗尽早接种,可以和免费疫苗同时接种在不同部位。 ...

July 28, 2020 · zwPapEr

从 NextCloud 替换为 Seafile

之前自己组装了一台 NAS,用作私有云,解决大容量网盘,自己跑的一些小应用的问题,还计划作为软路由。 当时对网盘的选择是 NextCloud,最主要的原因就是这是有名气的 Self Hosted 网盘里,最开源的选项, 而这周末,我还是决定更换到 Seafile。 ...

March 8, 2020 · zwPapEr

Golang 1.14 发布,抢占式调度优化

Golang 1.14 在 2020-02-25 正式发布,看了一下 Release Notes,发现有两个点比较有意思: 调度器抢占优化,不再需要函数调用作为抢占点 Timer 更高效 这篇文章主要是聊聊调度器这部分。 ...

March 1, 2020 · zwPapEr

2019 年终总结,2020 新年展望

2018 年底从一个创业公司,换到了另一个创业公司,今年算是全新的一年。 年度关键词: 水流不腐 ...

January 31, 2020 · zwPapEr

Kubernetes 服务名解析原理

场景 在 Kubernetes 中,我们经常会有直接使用 Service 的名字访问对应 Service 地址的场景。 举个栗子,我们建一个 Service,名字叫 demo-svc ,对应的 ClusterIP 为 10.0.171.239 ,端口为 80 。 那么,我们在访问同一个 Namespace 下的这个 Service 时,我们一般会通过一下几种方式之一访问: 10.0.171.239:80 demo-svc:80 demo-svc.namespace-name.svc.cluster.local:80 注意:如果时要访问不同 Namespace 下,或者集群外部 Service,可以通过 ExternalName 类型的 Service 实现, 但是这是另一个话题,就不展开了。 通过 IP 地址访问的情况自然是不需要解释,通过 Service 名字访问的方式也很自然能想到时通过 DNS 解析实现。 但是, demo-svc 和 demo-svc.namespace-name.svc.cluster.local 之间的区别和关系是什么呢? 原理解析 DNS 查看 Pod 内的 /etc/resolve.conf ,能看到一下内容: nameserver 10.0.0.10 search namespace-name.svc.cluster.local svc.cluster.local cluster.local options ndots:5 其中: 10.0.0.10 时 CoreDNS 的 Service 的 IP 地址,我们的请求都会发送到 CoreDNS 解析。 search 时 Kubernetes 加上的,顾名思义,解析 DNS 的时候会 查找 后面对应的这几个后缀。 options ndots:5 这个有意思,当请求的域名里,显式出现少于 5 个 点 时,才补上 search 的后缀。 值得注意的时 options ndots:5 ,显式出现少于 5 个 点 是什么意思呢?...

August 30, 2019 · zwPapEr

用 Stack 管理多个 GHC 版本

使用 Haskell 碰到 GHC 版本的问题,但是搜了一下,感觉说的文章不多, 可能是国内用 Haskell 的人比较少,或者用的人都比较厉害。 Haskell 作为函数式编程的代表性语言,感觉还是很值得学习,也希望能有更多的中文文章, 让像我这样希望入门的人,能够更容易的上手。 ...

August 17, 2019 · zwPapEr

开始用 Beancount 实践复式记账(一):初始化

第一次了解到复式记账是 Emacs 的 Ledger mode ,但是还挺复杂的,就放弃了。 后来 Byvoid 的Beancount 复式记账(一):为什么里提到了 Beancount ,感觉比较值得一试。 ...

August 10, 2019 · zhangwei

dnsmasq + Cloudflare DoH 自建 DNS

有时候方案一些网站的时候,会由于 DNS 解析出问题,即使网络情况很好,也会出现无法访问的情况, 而最近很流行的 DNS over HTTPS 更是十分的稳定安全,所以,通过自建 DNS,可以精确的得到解析结果。 ...

June 30, 2019 · zwPapEr

从 Slurm + Lustre 到 Kubeflow + Ceph (0),简介和容器中使用显卡

传统的高性能计算集群一般都习惯性地使用 Slurm + Lustre 的方案作为任务调度和存储, 然而,随着容器的发展,互联网业务的部署已经越来越多地开始了容器化, 而 Kubernetes 也成为了容器编排的事实标准。 而且,对比容器化的简洁, Slurm 和 Lustre 复杂的配置,让人头疼的运維压力, 也让作为互联网的最前沿之一的机器学习,也开始了容器化探索。 ...

June 15, 2019 · zhangwei