Hi there 👋

I am kWeiZh, working on CNCF for AI

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

Kubernetes Scheduler 源码阅读

Config https://sourcegraph.com/github.com/kubernetes/[email protected]/-/blob/pkg/scheduler/api/v1/types.go#L31 { "kind" : "Policy", "apiVersion" : "v1", "extenders" : [ { "urlPrefix": "http://127.0.0.1:3456/scheduler", "filterVerb": "predicates", "enableHttps": false, "nodeCacheCapable": false, "managedResources": [{ "name": "tencent.com/vcuda-core", "ignoredByScheduler": false }, { "name": "tencent.com/vcuda-memory", "ignoredByScheduler": false }] } ], "hardPodAffinitySymmetricWeight" : 10, "alwaysCheckAllPredicates" : false } Scheduling 谁调用 MakeNextPod, 然后调 schedulerOne? scheduling_queue.go:815] About to try and schedule pod default/engine-static-feature-db-worker-p4-3-0 https://sourcegraph.com/github.com/kubernetes/[email protected]/-/blob/pkg/scheduler/internal/queue/scheduling_queue.go#L811 scheduler.go:456] Attempting to schedule pod: default/engine-static-feature-db-worker-p4-3-0 https://sourcegraph....

March 20, 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....

August 30, 2019 Â· zwPapEr

用 Stack 管理多个 GHC 版本

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

August 17, 2019 Â· zwPapEr

开始用 Beancount 实践复式记账(二):工具

工具 Emacs ;; -- mode: org; mode: beancount; coding: utf-8; fill-column: 400; -- beancount-check 用于检查当前文件有没有语法错误 beancount-init-account 更新 Emacs 已知的账户名,用于下一个 beancount-insert-account 插入账户名,相当于补全 beancount-align-number 对齐数字 Beancount 的一大特点就是自动化,所以自然是需要使用到各种各样的工具。 目前刚开始,先用点 Shell 脚本拼一下工具链, 后续用 Python 或者 Golang 写一个处理工具和 Emacs 拓展。 Shell 微信账单 挺意外微信居然有账单导出,就在明细页, csv 格式的。 上半部分是统计信息,下半部分是明细,我们暂时只需要明细,统计部分可以在工具里做验证。 所以删除上半部分 cat 文件名.csv| sed '0,/微信支付账单明细列表/d' | tail -n +2 主要是用 sed 删除 微信支付账单明细列表 和以上的内容, 然后剩下的还有一个表格头,用 tail 打印第二行以后内容, 最后就剩明细了。...

August 10, 2019 Â· kWeiZh

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

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

August 10, 2019 Â· zhangwei

dnsmasq + Cloudflare DoH 自建 DNS

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

June 30, 2019 Â· zwPapEr