What and Why
uv
是由 Astral 开发的 Python 工具。在一定程度上是可以取代 pip
、poetry
、pyenv
、twine
、virtualenv
等工具,主要用于做 Python 依赖管理和 Python 版本管理。通过 uv 命令可以完成从运行单个 Python 脚本、项目依赖管理(依赖声明和版本锁定)、虚拟环境管理等几乎所有维护 Python 项目需要的功能。
之前的工具都只负责部分功能,如 pyenv
负责系统上的 Python 版本管理;virtualenv
负责虚拟 Python 环境的创建;pip
负责依赖管理;uv
实现了所有这些功能。当然 poetry
也实现了这些功能,但 uv
说它比 poetry
更快。
为什么 uv 更快?
阅读此文
商业模式
商业模式即企业赚钱的逻辑,一个靠谱的企业必须有一个靠谱的商业模式。
- Google 的商业模式:基于搜索关键字的精准自动化广告投放系统。当然要创建并维护好这个系统就需要耗费很多精力和技术资源,这也是 Google 的核心竞争力。
阅读此文
知道这本书是因为在 B 站看一个博主讲住房和养老金制度时推荐的。当时出于好奇,不动产到底是什么意思?
本以为这本书能带来一些参考,结果发现它是一本纪实文学,由朝日新闻的一系列报道改编而成,主要反映了房地产泡沫破灭后,那些处于不利位置的房产问题。
问题的起因:随着时间推移,日本经历了经济泡沫和房地产泡沫时代,人口和经济逐渐向东京都等大城市聚集。从全国来看,有大量持有成本高于实际价值的不动产,主要有以下几种情况:
阅读此文
问题
GitLab Shell Runner 虽然使用方便,但在实际运行过程中可能会遇到一些环境方面的问题,比如:
- 当前 Runner 是以哪个用户身份执行的任务?我应该在哪个用户目录下安装所需的软件包?
- 为什么在 gitlab-runner 用户目录下安装的软件,在 CI 流程中却无法正常生效?
- 为什么 CI 实际运行的 Node.js 版本与我在配置中指定的不一致?
阅读此文
问题
自动云平台申请的免费证书有效期从一年变成三个月后,更换证书变得麻烦了起来。以前一年一换没觉得有什么不妥,如今三个月一换,证书稍多就觉应付不来。
阅读此文
需求
统计 gitlab 中各仓库的测试覆盖率,以表格的形式发送到企业微信群
阅读此文
概述
当谈论时间时,我们其实是在谈论两件事:时间本身和时间的表示。
正常情况下,时间的流动是单调的,日常需要表达的往往是具体某个时间点(瞬时时间)、以某个或某两个时间点为分界的时间段。
阅读此文
日常讨论最多的树基本上都是查找树,构建、调整树的目的,都是为了快速地查找。在有限的资源下,谁能够在树的构建和查找上取得更加均衡的性能,谁就会成为最常用的技术。这里说的有限资源,主要是指存储:内存或磁盘。
如果数据集较少,只需要在内存中操作,主要考虑构建和查找树的时间复杂度,这类树的优胜者是红黑树;如果数据集很大,如GB级别,内存不足以存储整个数据集,势必以磁盘为主要存储手段,磁盘IO会是主要问题,减少IO操作是主要目的,这类树的优胜者是B+树。
严格地说,无论红黑树还是B+树,和平衡二叉树(AVL树)没有必然的联系,但考虑到树的平衡对查询的重要性,因此了解构建AVL树的详细步骤也是有必要的。
阅读此文
当谈论K8s安全时,我们在谈论什么?
其实,我们在谈论所有。借官方手册的描述——4个C:Cloud、Cluster、Container、Code,即在这四个层面上进行防护
阅读此文
通常在带有登录功能的业务中,我们会向用户(客户端)发放访问凭证,往后一段时间,用户持该凭证即可在应用内畅行。不同应用可能有不同的名字:access_token、token、xxxid,也可能有不同的形式:不透明字符串、JWT等。本文讨论访问凭证的安全性。
阅读此文
这两天用go写一点点东西,发现自己的编码速度真慢,原因还是对常用API不熟悉,文件操作、压缩解压缩、进程启动、http服务操作,貌似一点都不知道。于是只能翻手册,一点点看,突然间想到一个事情——我该不会是个调包侠吧🤔。
阅读此文
两个多月前,我重构了支付服务苹果IAP部分代码,完善了苹果支付逻辑;大半个月前,以加强可维护性为目的重构了用户服务的代码;上周三开始,以同样的理由,重构了支付服务剩余的代码。这三次重构工作,前前后后加起来得有一个月工作量,这里进行总结:到底重构了什么。
阅读此文