Jetpack Compose 笔记(3) - 重组的性能风险
[第一节]({{< ref "JetpackCompose笔记(1).md">}})就讲到,Compose 过程第一步是「组合」,当变量发生改变时,可能触发「重组」。所谓重组,就是要重新执行我们写的 Compose 代码,为此 Compos...
Jetpack Compose 笔记(2) - remember
[上一节]({{< ref "JetpackCompose笔记(1).md">}})总结了 Compose 中变量的三种写法:并且解释了前两个的区别。这一节来研究下最后一种。开始之前,先看一个例子:看起来很简单,一开始会显示 "Bob",在...
Jetpack Compose 笔记(1) - mutableStateOf
在 Compose 中显示数据,通常我们要将其存储在变量中,并用 mutableStateOf 包裹,以便实现自动监听与更新。这一步有下列三种写法:它们之间有什么区别?如何选择?这节先来解决最基本的问题 —— mutableStateOf...
Dotfiles 管理-使用 git 裸仓库
dotfiles 代指 linux/mac 中各种配置文件。我们希望有一个方法可以集中管理它们,这样切换不同机器时就能快速恢复熟悉的工作环境。目前比较流行的做法是 使用 git 来管理,借助 orphan branch 还可以给不同系统/机...
Go 优雅地处理错误
这篇文章没有叫「最佳实践」,因为我也在摸索阶段,目前只是总结一下个人认为比较好的技巧,不敢说其普适性如何。如果看官 dalao 发现了缺陷或者更好地方案,欢迎评论提出。当前 Go 版本 1.17.5 关于 Go 的错误处理,一直争议不断。其...
YubiKey 入手记 - GPG
我的 GPG 公钥:https://github.com/ichenhe.gpg YubiKey 是一个 著名 很贵的硬件密钥,本次到手的是 YubiKey 5c NFC,不着急的朋友建议等等国人的一个开源项目 CanoKeys,实现了和...
支持中文的多模式匹配—AC自动机
本文使用 java (kotlin) 实现一个支持中文模式串的 AC 自动机算法。今天项目上出现了多个字符串匹配的需求,我这个算法弱鸡也被迫营业解决这个头疼的问题。说到字符串匹配,首当其冲的就是大名鼎鼎 KMP,光是大学时期,就不知道成为...
Ubuntu 20.04 安装 PostgreSQL
写于 2021-10-19 请注意实效性。毕竟我也不是专业运维,一直以来服务器上都用宝塔面板偷懒,直到决定换成更现代化的数据库——PostgreSQL。与 MySQL 形成鲜明对比,宝塔对 PgSQL 的支持简直就是一坨💩。先罗列一下基...
K8s 访问集群外部的服务
从 docker 到 compose 再到 k8s,容器化是越来越火了,应该也有不少小伙伴和我一样跃跃欲试。但是马克思告诉我们要一分为二地看待问题。容器化固然好,不过也不是所有服务都适合这么搞。典型的,数据库服务是否适合放在 k8s 中就一...
Nginx HTTPS 性能优化
一开始源于一个一闪而过的想法——反向代理是否会引入额外的延时?然后进一步思考:倘若 CDN 使用 https 回源,然后又用 https 反代,这光是握手是不是就得来回十几遍才行?显然,放弃 https 不是一个合理的做法(事实上是一个疯狂...