上一页 1 2 3 4 5 6 ··· 18 下一页

深度学习领域的名词解释:SOTA、端到端模型、泛化、RLHF、涌现 ..

摘要: SOTA (State-of-the-Art) 在深度学习领域,SOTA指的是“当前最高技术水平”或“最佳实践”。它用来形容在特定任务或领域中性能最优的模型或方法。随着研究进展,SOTA会不断被新的研究成果所超越。 非端到端模型 非端到端模型指的是模型架构中包含多个分离的组件或步骤,每个部分可能独立 阅读全文
posted @ 2024-07-03 19:06 ercom 阅读(611) 评论(0) 推荐(0)

git cherry-pick 用法

摘要: git cherry-pick 是一个 Git 命令,用于将一个或多个提交从一个分支复制并应用到当前分支。 这个操作允许你有选择性地将特定提交引入到不同的分支中,而不需要合并整个分支。 以下是关于 git cherry-pick 的一些关键点和使用方法: 1 基本用法 要使用 git cherry- 阅读全文
posted @ 2024-07-03 19:00 ercom 阅读(8199) 评论(0) 推荐(0)

[FAQ] windows 设置一个程序的开机自启动

摘要: 查看自启动项目: win+R,输入 msconfig,点击“启动”这个Tab、打开任务管理器。 添加自己的程序作为开机启动: win+R,输入 shell:Common Startup,把启动程序的快捷方式复制到文件夹中。 SHA 散列加密 MD5 加密 Unix 时间戳转换 Base64 编码 U 阅读全文
posted @ 2024-07-02 22:18 ercom 阅读(179) 评论(0) 推荐(0)

golang 构建标签(go:build)条件编译

摘要: //go:build 是 Go 语言(golang)中的一种构建标签(build tag),用于控制源代码文件在特定条件下是否被编译。 这个注释标记允许你在同一个包内编写针对不同平台、操作系统或编译条件的代码。当 go build 或 go test 等命令执行时,它们会检查这些标签来决定哪些文件应 阅读全文
posted @ 2024-07-02 22:10 ercom 阅读(311) 评论(0) 推荐(0)

区分公有地址和私有地址, golang实现

摘要: 区分公有地址(Public IP Addresses)和私有地址(Private IP Addresses)主要依据它们的分配、使用范围以及是否能在全球互联网上直接路由。 以下是一些关键区别: 分配和管理: 公有地址:由互联网地址分配机构(Internet Assigned Numbers Auth 阅读全文
posted @ 2024-07-02 22:05 ercom 阅读(169) 评论(0) 推荐(0)

golang embed 含义及用法

摘要: golang embed 包的主要功能是在运行时提供对嵌入到 Go 程序中的文件的访问。 使用 embed 包,Go源文件可以通过使用 //go:embed 指令来将文件的内容初始化为字符串、字节切片或 FS 类型。 这样可以在运行时直接访问这些文件的内容。 以下是使用 embed 包的三个示例: 阅读全文
posted @ 2024-06-25 23:13 ercom 阅读(214) 评论(0) 推荐(0)

caddy 模块(module) caddyhttp Start启动逻辑分析

摘要: ./modules/caddyhttp/app.go func (app *App) Start() error { // xx } Start 方法属于一个自定义的 App 结构体,用于启动应用程序中的多个 HTTP 服务器实例。 下面是对该方法的主要逻辑和关键步骤的详细分析: 1. 日志设置: 阅读全文
posted @ 2024-06-22 13:50 ercom 阅读(80) 评论(0) 推荐(0)

golang runtime.Caller 获取调用堆栈信息, Caller(1) 和 Caller(2) 的区别

摘要: func whoCalledMe() { // 获取调用堆栈信息 _, fileName, lineNo, ok := runtime.Caller(2) if !ok { fmt.Println("Failed to get caller information") return } fmt.Pr 阅读全文
posted @ 2024-06-22 13:38 ercom 阅读(149) 评论(0) 推荐(0)

golang interface guard 技术(接口守护)

摘要: Go代码的接口守卫(interface guards)技术,通常用于库的开发,以确保类型符合预期的接口。 下面示例的 Interface guards 确保 App 类型实现了caddy.App、caddy.Provisioner 和 caddy.Validator 接口。 具体来说,它通过将 (* 阅读全文
posted @ 2024-06-20 23:08 ercom 阅读(48) 评论(0) 推荐(0)

dockerfile 指令 ADD 和 COPY 的区别

摘要: Dockerfile 中的 ADD 和 COPY 指令都用于将文件或目录从构建上下文复制到 Docker 镜像中,但它们之间存在一些关键差异: 基本复制功能: COPY: 纯粹地将从构建上下文(即执行 docker build 命令时指定的目录及其子目录)中的文件或目录复制到镜像中指定的路径。 AD 阅读全文
posted @ 2024-06-20 23:03 ercom 阅读(1347) 评论(0) 推荐(0)

rust 和 golang 的特点及适用场景

摘要: Rust 特点及适用场景: 内存安全: Rust 通过所有权系统和生命周期管理在编译时保证内存安全,有效防止了空指针异常、数据竞争、悬挂指针等问题,非常适合开发高性能系统软件和底层库。 并发模型: Rust 提供了强大的并发工具,如 async/await 和通道 (channel),支持高效且安全 阅读全文
posted @ 2024-06-17 19:43 ercom 阅读(421) 评论(0) 推荐(0)

用人话解释 Transformer 的执行过程

摘要: 1. 向量化。 文本 → Tokenization(分词) → Embeddings(向量化) → 模型 2. 模型需要完整上下文 且 知道 token 的相对位置及关系。 3. 关注 token 的 score。 4. 用输入文本的向量,去查找,得到值向量。 5. 得到上下文感知的向量。 在线拾取 阅读全文
posted @ 2024-06-15 22:53 ercom 阅读(61) 评论(0) 推荐(0)

golang net 包的功能概述

摘要: Go语言中的 net 包提供了一个可移植的网络输入输出接口,涵盖了 TCP/IP、UDP、域名解析以及 Unix 域套接字等功能。 该包提供了访问底层网络原语的能力,但大多数客户端仅需使用基本接口,这包括 Dial、Listen 和 Accept 函数以及相关的 Conn 和 Listener 接口 阅读全文
posted @ 2024-06-15 22:52 ercom 阅读(90) 评论(0) 推荐(0)

golang 所有关键字的列表及释义归类

摘要: golang 所有关键字的列表及释义归类,截至1.18版本。 [控制结构] if : 条件语句,基于布尔表达式的值决定是否执行特定的代码块。 else、 else if : 用在 if 语句之后,当条件表达式为假时执行的代码块。 switch : 多路选择语句,根据不同的情况执行不同的代码块。 ca 阅读全文
posted @ 2024-06-15 22:50 ercom 阅读(47) 评论(0) 推荐(0)

caddy run 命令详解

摘要: caddy run 这个子命令启动 Caddy 进程,并可选地使用初始配置文件进行引导,并无限期地阻塞,直到服务器停止运行,即 run 是在"守护进程"模式(前台)中运行 Caddy。 使用参数: [--config <path> [--adapter <name>]] [--envfile <pa 阅读全文
posted @ 2024-06-14 23:25 ercom 阅读(189) 评论(0) 推荐(0)

caddy 服务器的 Docker 镜像构建流程

摘要: 构建一个包含 Caddy 服务器的 Docker 镜像,关键部分: https://github.com/caddyserver/caddy-docker/blob/master/Dockerfile.tmpl这个 Dockerfile 精心设计,用于自动化构建一个包含最新版 Caddy Web 服 阅读全文
posted @ 2024-06-14 23:22 ercom 阅读(373) 评论(0) 推荐(0)

golang select {} 和 for {} 的区别

摘要: select {} 与 for {} 在 Go 语言中都是循环结构,但它们的行为和用途有所不同: select {}: 是一个无限阻塞的 select 语句,没有指定任何 case。 主要用于等待通道操作或其他事件,在没有明确的通信或信号需求时保持运行状态。 当程序需要在没有明确结束条件的情况下保持 阅读全文
posted @ 2024-06-14 23:19 ercom 阅读(297) 评论(0) 推荐(0)

dockerfile CMD 和 ENTRYPOINT 分别什么时候用

摘要: 在 Docker中,CMD 和 ENTRYPOINT 指令都是用来定义容器启动时运行的默认命令,但它们的用途和行为有所不同,适用于不同的场景: CMD 用途:CMD指令用来指定容器启动后默认执行的命令及其参数。它更倾向于提供默认的或可被替代的执行行为。 可覆盖性:当使用docker run命令启动容 阅读全文
posted @ 2024-06-13 19:58 ercom 阅读(156) 评论(0) 推荐(0)

caddy 入口 rootCmd 概览

摘要: $ go run cmd/caddy/main.go cmd/caddy/main.go Caddy入口点,Caddy的功能主要通过模块提供,可以通过在导入语句中添加模块来插入。 该程序的目的是为了定制 Caddy 构建,而无需修改源代码。可以通过复制 main.go 文件到新文件夹,编辑导入语句以 阅读全文
posted @ 2024-06-13 19:52 ercom 阅读(51) 评论(0) 推荐(0)

golang reflect 反射机制的使用场景

摘要: Go语言中的 reflect 包提供了运行时反射机制,允许程序在运行时检查和操作任意对象的数据类型和值。 以下是 reflect 包的一些典型使用场景: 1. 动态类型判断与转换:当需要处理多种类型的变量且具体类型直到运行时才能确定时,可以使用反射来检查变量的实际类型,并在可能的情况下进行类型转换。 阅读全文
posted @ 2024-06-13 19:45 ercom 阅读(82) 评论(0) 推荐(0)

golang 字节级操作和字符串的区别与转换 []byte(message)

摘要: []byte(message) 将字符串 message 转换为一个字节切片( []byte )。 在Go语言中,字符串是不可变的,而字节切片可以被修改。 这种转换常用于处理字符串的字节级操作,如编码、解码或写入IO流。 字节级操作 和 字符串操作 在编程中有本质的不同,主要体现在以下几个方面: 1 阅读全文
posted @ 2024-06-12 21:10 ercom 阅读(104) 评论(0) 推荐(0)

golang sync.Map 与使用普通的 map 的区别

摘要: 使用sync.Map与普通的Go map主要有以下几点区别: 1. 并发安全性 普通map: 在没有外部同步的情况下,不是并发安全的。在多goroutine访问时,如果没有适当的锁或其他同步机制保护,可能会导致数据竞争和未定义行为。 sync.Map: 是并发安全的。它内部实现了必要的同步机制,允许 阅读全文
posted @ 2024-06-12 21:06 ercom 阅读(256) 评论(0) 推荐(0)

[FAQ] vscode 装了 vim 之后,ctrl+p 不起作用?

摘要: # 进入设置(左下角setting) --> vim.handleKeys --> 在 settings.json中编辑, 把需要禁用Vim的热键以json格式写入vim.handleKeys中即可,如: "vim.handleKeys": { "<C-a>": false, "<C-b>": fa 阅读全文
posted @ 2024-06-11 22:14 ercom 阅读(141) 评论(0) 推荐(0)

golang oncefunc.go 的 OnceFunc 和 once.go Do 的区别

摘要: sync.Once 的 Do 方法和 OnceFunc/OnceValue/OnceValues 函数的主要区别在于使用场景和灵活性: 1、直接使用Once.Do(f): 更基础、低级的 API。你需要显式声明一个 sync.Once 变量,然后在其上调用 Do(f)方法来执行函数f。 仅保证函数f 阅读全文
posted @ 2024-06-11 22:00 ercom 阅读(140) 评论(0) 推荐(0)

golang 特别“别扭”的地方,或者说是特色

摘要: 尽管 Go 语言在很多方面设计得相当精巧,但仍有一些特性或限制可能让部分开发者觉得 “别扭” 或需要时间适应。 下面是一些常见的讨论点: 1. 错误处理: Go 语言没有异常机制,而是通过返回错误值的方式来处理错误。 这意味着在很多函数调用后都需要检查错误,可能会导致代码中出现大量的错误检查逻辑,有 阅读全文
posted @ 2024-06-11 21:57 ercom 阅读(65) 评论(0) 推荐(0)

golang 泛型的格式写法

摘要: Go语言中的泛型(Generics)是在 Go 1.18 版本中引入的一个重要特性,它允许你编写可重用的代码,而不需要为每种数据类型重复编写相同的逻辑。 泛型通过参数化类型(type parameters)来实现,使得函数、方法、接口和结构体可以与多种类型一起工作。 下面详细介绍Go语言中泛型的基本 阅读全文
posted @ 2024-06-11 21:56 ercom 阅读(72) 评论(0) 推荐(0)

golang sync.Once 保证某个动作仅执行一次的机制

摘要: type Once struct { done atomic.Uint32 m Mutex } sync.Once 是 Go 语言标准库 sync 包中的一个类型,用于确保某个操作(函数)只被执行一次。 这对于初始化操作非常有用,比如数据库连接的建立、日志文件的打开等,这些操作通常只需要在程序启动时 阅读全文
posted @ 2024-06-10 20:09 ercom 阅读(125) 评论(0) 推荐(0)

golang select 的 case 执行顺序

摘要: 问题: golang select 结构,假如底下有三个case,分别从 chan1, chan2, chan3 读取内容,chan1, chan2, chan3都是非阻塞的,那么是会先进入第一个 case,其它case还会再进入吗 ? 在 Go 语言中,select 语句用于监控多个通道的操作,并 阅读全文
posted @ 2024-06-06 22:06 ercom 阅读(230) 评论(0) 推荐(0)

golang interface 和 struct 添加方法的区别

摘要: 在 Go 语言中,struct 和 interface 都可以关联方法,但它们的方式不同: 1. struct 添加方法: 结构体(struct)本身不直接包含方法,但可以通过定义一个指向该结构体类型的指针作为接收者的函数来为结构体“添加”方法。 type MyStruct struct { // 阅读全文
posted @ 2024-06-06 21:57 ercom 阅读(205) 评论(0) 推荐(0)

golang 可变参数用法, handlers ...HandlerFunc

摘要: handlers ...HandlerFunc 这是什么写法,与 group.handle() 第三个参数是 []handlerFunc 是什么关系呢? 下面是 gin 中的用法: routergroup.go // GET is a shortcut for router.Handle("GET" 阅读全文
posted @ 2024-06-05 21:00 ercom 阅读(62) 评论(0) 推荐(0)

http1.1 的默认长连接 Connection: keep-alive 与 TCP KeepAlive 之间区别

摘要: HTTP 长连接,也称为 HTTP 持久连接(HTTP Persistent Connection)或 HTTP 连接重用,是一种在 HTTP 协议中实现的机制。 在传统的 HTTP 通信中,每个 HTTP 请求和响应都会伴随着 TCP 连接的建立和关闭,这在高并发场景下会增加网络开销和延迟。 而 阅读全文
posted @ 2024-06-05 20:35 ercom 阅读(1532) 评论(0) 推荐(0)

golang net/http 的 ListenAndServe 的工作方式(取代 listen、accept)

摘要: 在Go的 net/http 包中,当你使用 ListenAndServe 或 ListenAndServeTLS 函数启动一个HTTP服务器时, 你不需要直接调用 listen 和 accept 操作,因为这些函数已经为你处理了这些底层的网络细节。 ListenAndServe 函数的工作方式如下: 阅读全文
posted @ 2024-06-04 20:11 ercom 阅读(227) 评论(0) 推荐(0)

tcp server 为什么需要 accept

摘要: 在TCP协议中,服务器端建立连接的过程分为几个步骤,其中accept操作起到了关键作用,具体原因包括: 1. 连接管理:当一个TCP客户端发起连接请求时,它会向服务器发送一个SYN(同步)包,开始三次握手过程。 服务器通过监听 socket 接收到这个SYN包后,会回复一个SYN-ACK(同步-确认 阅读全文
posted @ 2024-06-04 20:05 ercom 阅读(127) 评论(0) 推荐(0)

golang 的 net/http 和 net/rpc 的区别, rpc 效率比 http 高?

摘要: 在Go语言中,net/http 和 net/rpc 是两个不同的包,它们分别用于实现不同的网络通信模式: net/http: net/http 包主要用于构建Web服务和客户端,它实现了HTTP协议,这是互联网上最广泛使用的应用层协议之一,主要用于传输超文本(HTML)和其他资源。 HTTP 协议是 阅读全文
posted @ 2024-06-04 19:57 ercom 阅读(342) 评论(0) 推荐(1)

[FAQ] unix, unixpacket 属于传输层吗

摘要: unix 和 unixpacket(也称作Unix域套接字)并不属于TCP/IP模型中的传输层。 它们是操作系统提供的另一种通信机制,主要用于在同一台机器上的进程间通信(IPC,Inter-Process Communication)。 Unix域套接字可以看作是文件系统中的一个特殊文件,具有以下两 阅读全文
posted @ 2024-05-30 21:35 ercom 阅读(41) 评论(0) 推荐(0)

golang import 导入的四种方式

摘要: 1 标准导入: import "package_name" 2 导入别名: import ( alias "package_name" ) 3 匿名导入: import ( _ "package_name" ) 4 点导入: import ( . "package_name" ) 下面做详细解释: 阅读全文
posted @ 2024-05-30 21:29 ercom 阅读(592) 评论(0) 推荐(0)

golang errgroup 的超时检测

摘要: > golang errgroup 的作用. errgroup 的超时检测通常是一种事后得到结果的方式。 errgroup本身并不直接支持超时控制,而是依赖于与之关联的context.Context来实现超时和取消功能。 当context超时时,它会关闭Done通道,这将通知errgroup中的协程 阅读全文
posted @ 2024-05-29 21:02 ercom 阅读(71) 评论(0) 推荐(0)

golang errgroup 的作用

摘要: errgroup 是 Go 中用于并发控制和错误处理的一个工具,提供了一种方便的方式来协调多个goroutine。 它允许你在一个组中运行多个goroutine,并等待它们全部完成,同时收集和返回第一个发生的错误。 它的主要作用包括: 同步: errgroup.Group 提供了一个 Wait 方法 阅读全文
posted @ 2024-05-29 20:59 ercom 阅读(133) 评论(0) 推荐(0)

golang的 CGO 是什么

摘要: CGO是Go(Golang)语言中的一个工具,全称为 "C-Go" 或者 "C for Go"。 它是Go标准库的一部分,允许Go代码与C语言代码进行交互。 CGO提供了在Go程序中使用C语言库的能力,同时也允许C代码调用Go的函数。 通过CGO,开发者可以利用Go语言的强类型和垃圾回收等特性,同时 阅读全文
posted @ 2024-05-27 23:03 ercom 阅读(904) 评论(0) 推荐(0)

golang的交叉编译是什么

摘要: Go(Golang)的交叉编译是指在一种硬件架构或操作系统环境下,使用Go编译器生成适用于另一种架构或操作系统的可执行程序。 Go语言的设计使得交叉编译变得非常简单和高效,它允许开发者在开发环境中构建目标平台上的代码,而无需在目标平台上实际运行编译过程。 在Go中,交叉编译主要涉及到设置两个环境变量 阅读全文
posted @ 2024-05-27 23:00 ercom 阅读(236) 评论(0) 推荐(0)
上一页 1 2 3 4 5 6 ··· 18 下一页