Zot

docker registry 本地需要管理一些docker镜像时,可以使用官方的registry, 但官方的registry不支持管理,查看、删除都费劲。 zot这个项目

CI Proxy Cache

CI运行时,每次从公网下载太慢了,但是如果想把所有的依赖都镜像了,那就太大了,尤其是pypi镜像, 10TB都存不下。 nexus3 services: nexus: image: sonatype/nexus3:3.87.1-alpine container_name: nexus restart: always volumes: - /srv/nexus-data:/nexus-data

Rate Limit

rust出错的时候,需要log一下,但是又不能太快,以防打太多错误日志, 可以简单地使用rate_limit_macro::rate_limi

Multi IP Addresses

一个网卡多个IP 以前在写Golang获取网卡IP地址的时候,返回值总是一个list,包特意说明可能会有多个IP地址, 我当时就觉得挺奇怪的,一

Moka

Moka是一个cache,支持异步和同步,并且是ThreadSafe的, 更好的是,读的时候是无锁的,写的时候锁也很小。并且还支持 Time to live

Mimalloc

使用方法 使用的rust在容器中运行,或需要静态链接(到处可用)时,经常喜欢使用musl,但据说musl默认的动态 内存分配器性能非常地差,应该

Zero Width Space

zero width space \u200b 是一种特殊的空白字符, 排版时,它可以告诉排版软件,这可以在这里换行,显示时又不占任何空间。 参考这里 为了让QLabel可以任何位置换行

GPUI Key Points

GPUI是一个使用GPU绘制的即时模式和保留模式混合的体,和很多UI框架相同,GPUI是单线程的,异步任务和后台任务需要特殊处理。 Entity 凡是需要

Dll Path Mystery

Dll Path Mystery Windows dll的搜索路径和PATH一样,真是一个设计的败笔,当一些程序想把自己放到PATH,却又不小心把dll也放到PATH中了, 如果恰好和

Gitlab Ci Docker Auth

Gitlab CI docker 问题 Gitlab CI使用docker比较方便,但是现在docker越来越不容易拉取了,并且官方确实是太慢了。 阿里云的ACR个人版是免费的,访问速

Web Frontend Learning

最近使用 tauri 开发一个小工具,学了一些前端知识,也能用antd开发一个有几页的工具了。 下面的叙述未必正确,毕竟我不是一个前端工程师。 工具选择 React (antd)

Axum Codec

axum_codec axum_codec 是一个用于处理 axum 请求和响应的编解码器。 可用根据客户端的accept头,自动处理 JSON、XML、YAML、TOML、MsgPack格式。

Rust Release Opt

release Cargo.toml [profile.release] strip = true opt-level = "s" lto = 'fat' codegen-units = 1 panic = "abort" debug only 一些调试时使用的代码,可以用 #[cfg(debug_assertions)] 来包裹, debug时的检查可以用 debug_assert! #[cfg(debug_assertions)] debug_only_code(); debug_assert!(xxx) features 根据不同使用场景,可以使用f

Tauri Plugin Typegen

BUG真的是太多了,略复杂一点的都搞不定,还是手动使用 ts-rs 生成比较好 虽然今天终于上传代码到github上,tauri-typegen,并且还改

Apt Priority

no snap! 在 /etc/apt/preferences.d 新建如下文件 nosnap.pref Package: snapd Pin: release a=* Pin-Priority: -10 firefox deb [arch=amd64 signed-by=/etc/apt/keyrings/packages.mozilla.org.asc] https://mirrors.tuna.tsinghua.edu.cn/mozilla/apt mozilla main Package: firefox* Pin: version 1:1snap1* Pin-Priority: -1 Package: firefox* Pin: origin mirrors.tuna.tsinghua.edu.cn Pin-Priority: 1001 thunderbird sudo add-apt-repository ppa:mozillateam/ppa Package: thunderbird* Pin: version 2:1snap1* Pin-Priority: -1 Package: thunderbird* Pin: release a=ppa:mozillateam/ppa Pin-Priority: 1001 如何测试设置是否正确呢 设置

Rust ISO8601

ISO8601 格式的 DateTime 和 Duration 经常会在 REST API 中遇到,rust 标准库支持得不是很好, 经常问AI,这回记录一下 time = { version = "0.3.44", features = ["macros", "serde", "serde-well-known"] } iso8601-duration-serde = "0.1" #[derive(Serialize, Deserialize)] pub struct Info { #[serde(with="time::serde::iso8601")] last_modified_time: time::OffsetDateTime, #[serde(with="iso8601_duration_serde")] cycle_time:

Rust Cross Compile Musl

Why musl Rust 编译的程序默认是依赖 glibc 的,这会导致在新的系统上编译的 rust 程序,无法在旧的系统器上运行,有一些服务器运行了一些很老版本的系统, 如 debian stretch 之类的