Levon's Blog

微信: L6241425

Flux 模型是一种全新的、革命性的文生图(text-to-image)模型架构。它不是 Stable Diffusion 的一个新版本或微调(checkpoint),而是一个从根本上设计就不同的系统。它的核心优势是极快的生成速度和极其出色的提示词理解能力。

阅读全文 »

1. 一道题开始

1.1 为什么无法运行

1
2
3
4
let mut data = vec![1, 2, 3];
let first_ref = &data[0]; // 获得一个不可变引用(“复制钥匙”)
data.push(4); // 尝试修改数据(需要“主钥匙”)
println!("{}", first_ref);

这个代码为什么编译不成功?

阅读全文 »

什么是任务队列 ?

消息队列(Message Queue),一般来说知道的人不少。比如常见的:kafka、Rabbitmq、RocketMQ 等。

任务队列(Task Queue),听说过这个概念的人不会太多,清楚它的概念的人怕是更少。

这两个概念是有关系的,他们是怎样的关系呢?任务队列(Task Queue)是消息队列(Message Queue)的超集。任务队列是构建在消息队列之上的。消息队列是任务队列的一部分。

阅读全文 »

在团队协作中,清晰、规范的 Git 提交信息(Commit Message)是维护项目健康的关键。它不仅能帮助开发者快速回顾历史记录,还能配合自动化工具生成 Changelog。本文将介绍业界通用的 Angular 提交规范(Conventional Commits),并分享几款提升效率的辅助工具。

阅读全文 »

1. builtin

1.1 clear (go1.21.0)

对于map,清除删除所有条目,导致map为空。对于slice,清除将所有直到slice长度的元素设置为相应元素类型的零值。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
package main

import "fmt"

func main() {
m := map[string]string{
"1": "2",
"2": "2",
"3": "2",
}
fmt.Println(m, len(m))
clear(m)
fmt.Println(m, len(m))

s := []string{"1", "2", "3"}
fmt.Println(s, len(s))
clear(s)
fmt.Println(s, len(s), len(s[0]))
}

/*
map[1:2 2:2 3:2] 3
map[] 0
[1 2 3] 3
[ ] 3 0
*/

阅读全文 »

Rust 是一门现代的、开源的系统编程语言,其设计的核心目标是同时实现安全(Safety)、并发(Concurrency)和性能(Performance)。它通过在编译时强制执行一系列严格的规则,来消除一整类常见的内存错误(如空指针、悬垂指针、数据竞争等),而无需像 Java 或 Go 那样依赖垃圾回收器(Garbage Collector)。

Rust 就像一位拥有 “ 魔法钥匙 “ 的贴身管家:任何时候,一件珍贵的物品(一块内存数据)要么只能由一个人持有 “ 主钥匙 “(可写入权限),要么可以被多个人持有 “ 复制钥匙 “(只读权限),但绝不允许 “ 主钥匙 “ 和任何 “ 复制钥匙 “ 同时存在。这位管家(编译器)在你的程序 “ 运行 “ 之前,就会严格检查所有钥匙的分配,确保万无一失。

阅读全文 »

Go 泛型(Generics)是一种编程范式,它允许我们在定义函数、方法或类型时,使用一个或多个 “ 类型占位符 “(Type Parameter),而不是具体的类型。这些 “ 占位符 “ 在实际调用时,会被具体的类型(如 intstringstruct 等)替换,从而让一份代码能够安全、高效地处理多种不同的数据类型。

Go 泛型就像一个万能的厨房模具,你不需要为心形、星形、圆形饼干分别准备三个模具,只需要一个可以调整形状的 “ 可变形 “ 模具,就能制作出所有形状的饼干。这个 “ 可变形模具 “ 就是你的泛型函数或泛型类型,” 形状 “ 就是你传入的具体类型。

Go 泛型的出现,完美地解决了这两个核心痛点。它让你能够:

  1. 编写可复用的代码:一套逻辑,多处使用,极大提高开发效率。
  2. 保证类型安全:在编译期间就进行类型检查,把错误消灭在萌芽状态,而不是等到运行时才 panic
  3. 提升性能:泛型代码在编译时会进行 “ 具象化 “(Instantiation),生成针对特定类型的原生代码,避免了 interface{} 带来的装箱(boxing)和拆箱(unboxing)开销。
阅读全文 »

多看阅读:目前观看体验,排版还是iOS最好的,奈何同步导出功能越来越弱,属于不再维护状态。

neatreader:多端进度可以实时同步,需要花钱。

微信读书:上传自己的书多端进度可以实时同步,免费。

放弃多看阅读,neatreader,携桶转移到微信读书。

阅读全文 »

在服务调用中遇到HTTP 503错误时,我们可以配置Istio来重试失败的请求,最多可以重试三次。我们可以准确地配置哪些失败的请求要重试、重试次数,以及每次重试的超时时间。

由于服务代理是按服务实例部署的,我们可以配置非常精细的重试行为,以适应应用程序的特定需求。Istio的所有弹性设置都是如此,服务代理实现了这些开箱即用的弹性模式:

  • 客户端负载均衡。
  • 位置感知负载均衡。
  • 超时和重试。
  • 熔断。
阅读全文 »
0%