- 博客(1281)
- 资源 (48)
- 收藏
- 关注
原创 软删除设计:为什么使用 deleted_at = ‘1970-01-01 00:00:00‘ 表示未删除?
在现代数据库设计中,尤其是在处理用户数据、审计追踪和合规要求的应用中,软删除 已成为硬删除的标准替代方案。软删除是通过标记记录为已删除而不实际从数据库中移除它们。这种方法保留了数据以供潜在恢复、历史分析或监管用途。
2025-07-18 07:54:01
564
原创 git merge-base查看某个分支从哪里拉出来的、主main分支上的某个时间之后某人的提交合并到特定分支(使用 cherry-pick 的场景)
在处理大量提交时,使用 cherry-pick 可能并不是最佳选择。当来源分支上有大量提交时,直接方式 merge 更为高效。在合并过程中,通常只需解决一次冲突,而不是在每个 cherry-pick 中反复处理,尤其是如果这些提交之间存在相互依赖的情况下。这种做法将所有变更合并到目标分支,而无需一个个选择,使得操作更加简单。
2025-07-17 23:18:49
442
原创 构建 Go 可执行文件镜像 | 探索轻量级 Docker 基础镜像(我应该选择哪个 Docker 镜像?)
`golang:1.23.0-bullseye` 是官方 Go 镜像的一个 “build-stage” 版,用来构建 Go 可执行文件,而不是把它当成最终运行镜像。
2025-07-15 23:39:28
1005
原创 Provider模式:软件架构中的“供应商“设计哲学
在软件开发中,你是否遇到过这样的困扰:代码与特定的数据源、配置来源或服务紧密耦合,导致测试困难、扩展性差?Provider 模式正是解决这类问题的经典设计模式。
2025-07-14 21:05:22
519
原创 k8s PersistentVolumeClaim (PVC) 报错:Multi-Attach error for volume “pvc-3413512-1-4909-a111-4412351“
PersistentVolumeClaim (PVC) 是 Kubernetes 中用于请求存储资源的对象。它是 Pod 和 PersistentVolume (PV) 之间的桥梁:- **PV (PersistentVolume)**: 集群中的实际存储资源- **PVC (PersistentVolumeClaim)**: Pod 对存储的请求声明- **StorageClass**: 定义存储的类型和配置
2025-07-12 00:13:19
975
原创 Go语言中的组合式接口设计模式
在微服务架构和复杂业务系统中,我们经常需要调用多个外部服务或内部模块。传统的做法是将所有方法都放在一个大接口中,但这种设计会导致接口臃肿、职责不清。今天我们来探讨一种更优雅的设计模式:组合式接口设计。
2025-07-11 20:04:31
367
原创 什么是URL 跳转漏洞(URL Redirection Vulnerability)
URL 跳转漏洞(URL Redirection Vulnerability)是指攻击者利用网站或应用程序中未经验证的重定向功能,将用户引导至恶意网站的一种安全漏洞。
2025-07-10 07:55:19
240
原创 k8s之configmap
ConfigMap 是 Kubernetes 中用于存储非机密配置数据的 API 对象。**它允许你将配置信息与容器镜像解耦**,使应用程序更加灵活和可移植。ConfigMap 以键值对的形式存储数据,可以被 Pod 以多种方式消费。
2025-07-10 00:25:58
292
原创 浏览器插件修改请求头之ModHeader、ModResponse
ModHeader 是现代 Web 开发者不可或缺的头部管理工具,轻松实现复杂的 HTTP 头部操作。
2025-07-08 22:36:46
881
原创 开源功能开关(feature flags) 和管理平台之unleash
Unleash 是一个开源的功能标志(feature flags) 和管理平台,**允许您在不中断服务的情况下安全地发布和测试新功能**。它提供了一个集中式界面,用于管理和控制哪些用户可以看到哪些功能,以及如何启用这些功能。
2025-07-03 22:53:35
868
原创 mysql之timestamp字段自动更新问题
MySQL的TIMESTAMP字段具有自动更新特性,当修改记录时该字段会自动更新为当前时间。这一行为由explicit_defaults_for_timestamp参数控制,适合记录最后修改时间。相比之下,DATETIME类型不会自动更新,更适合记录创建时间。最佳实践建议每个表同时包含TIMESTAMP(自动更新)和DATETIME(记录创建时间)字段。TIMESTAMP存储时会转换为UTC时间,查询时按连接时区转换,范围从1970到2038年。如需禁用自动更新功能,可将字段类型改为DATETIME。
2025-06-26 22:26:56
331
原创 apisix-使用hmac-auth插件进行接口签名身份验证\apisix consumer
HMAC 是一种基于哈希函数的消息认证码,常用于验证消息的完整性和真实性。它需要一个密钥(secret key)和一个哈希算法(如 SHA-256)来生成签名。
2025-06-19 23:13:40
1066
原创 golang常用库之-go-i18n库(国际化)
国际化称作 i18n,其来源是英文单词 internationalization 的首末字符 i 和 n,18 为中间的字符数。由于软件发行可能面向多个国家,对于不同国家的用户,软件显示不同语言的过程就是国际化。**通常来讲,软件中的国际化是通过配置文件来实现的,假设要支撑两种语言,那么就需要两个版本的配置文件。**
2025-06-07 22:07:05
1167
原创 k8s热更新-subPath 不支持热更新
使用 subPath 存在一个容易踩坑的问题:热更新(文件在宿主或 PVC 中发生变化,容器内不会感知)。实在有 subPath 的场景,**通过重启 Pod 方式实现刷新挂载**。
2025-06-04 23:14:38
965
原创 golang常用库之-go-feature-flag库(特性开关(Feature Flags))
GO Feature Flag 是一个简单、完整且轻量级的自托管特性开关解决方案,并且是 100% 开源的。**GO Feature Flag** 被设计为专门为 `GO` 语言提供的解决方案。 随着 [Openfeature](https://openfeature.dev/) 项目对 Feature Flag 的新标准化,该解决方案现在可以通过一个名为 relay proxy 的简单 API 服务器,用于多种语言。
2025-06-04 19:33:58
1301
原创 macos常见且应该避免被覆盖的系统环境变量(避免用 USERNAME 作为你的自定义变量名)
在macOS系统中,应避免使用系统预定义的环境变量名作为自定义变量。例如,尝试设置USERNAME="admin"后输出仍显示系统用户名,因为USERNAME是系统保留变量。其他常见需避开的系统变量包括HOME、USER、PATH、SHELL等,它们分别存储用户目录、用户名、执行路径等重要系统信息。随意覆盖这些变量可能导致程序异常或系统功能失效。开发时建议使用非系统变量名或添加特定前缀来命名自定义变量。
2025-06-03 19:57:52
578
原创 数据库只更新特定字段的两种方式(先读后写 vs. 动态组织 SQL)-golang SQLx 实现代码(动态组织 SQL)
数据库只更新特定字段的两种方式(先读后写 vs. 动态组织 SQL)-golang SQLx 实现代码(动态组织 SQL)
2025-05-31 10:26:13
1068
原创 python常用库-pandas、Hugging Face的datasets库(大模型之JSONL(JSON Lines))
如果你的项目更多地涉及到深度学习和模型训练,建议优先使用datasets库;如果涉及到多样化的数据处理和分析任务,则Pandas更为合适。
2025-05-30 10:41:29
1224
原创 全自主的AI软件工程师智能体Devin
Devin是由人工智能初创公司Cognition推出的全球首个全自主的AI软件工程师智能体,具备强大的编程和软件开发能力,能够在多个方面协助或完全独立地完成软件开发任务。
2025-05-28 00:24:38
863
原创 什么是智能体agent?
本文探讨了AI智能体的核心概念及其与非智能体系统的区别。智能体系统通过交替调用推理模型(如LLM)和工具来执行任务,而非智能体系统则依赖单一LLM调用生成结果。文章区分了自主智能体与协作智能体,强调当前技术更适用于协作模式,并提出了评估智能体系统的关键问题,包括工具访问、推理模型选择和数据处理。最后,文章提醒避免“苦涩的教训”,即过度依赖人工规则而忽视技术规模化的潜力。
2025-05-25 22:40:58
988
原创 开源 OIDC(OpenID Connect)身份提供方(IdP)、iam选型
Keycloak功能全面但较重,ORY Hydra轻量但需要自行构建UI,Dex适合Kubernetes环境,Gluu适合企业级需求等。
2025-05-25 08:14:33
377
原创 keycloak获取用户信息(go实现获取keycloak用户信息)
本文介绍了如何使用Go语言通过gocloak库获取Keycloak用户信息。首先展示了User结构体定义,包含ID、用户名、邮箱、角色等字段。然后提供了两个关键代码示例:1) 初始化gocloak客户端并获取管理员令牌;2) 通过用户ID查询用户详细信息并打印基础信息和属性。文章重点说明了如何连接Keycloak服务器、获取访问令牌以及查询特定用户数据,所有字段均为指针类型以区分未设置和零值情况。这些代码片段可直接用于集成Keycloak用户管理功能到Go应用中。
2025-05-24 16:22:40
213
原创 Docker 镜像标签(Tag)规范与要求
主流云厂商镜像仓库服务对镜像标签有特定要求。镜像全名由冒号前部分(名称)和冒号后部分(标签)组成,如my-app:3.1.4。Google等平台要求标签必须小写且避免特殊字符。测试表明多厂商均要求小写标签。总结建议:保持标签简短(≤32字符),全小写以确保兼容性,符合阿里云、百度云、腾讯云等大厂规范。
2025-05-24 14:58:04
527
原创 docker工具之skopeo-列出私有仓库中某个镜像的所有tag
docker search 命令只能搜索 Docker Hub,不支持私有仓库,也不支持列出私有仓库中的所有镜像。
2025-05-23 22:44:47
423
原创 什么是Monorepo(单体仓库)(monolithic repository)
monorepo 是一种将多个项目代码存储在一个仓库里的软件开发策略(mono 意为单一,repo 意为 仓库)。与之相对的是另一种流行的代码管理方式 MultiRepo,即每个项目对应一个单独的仓库来分散管理。
2025-05-19 21:59:30
1087
原创 Helm配置之为特定Deployment配置特定Docker仓库(覆盖全局配置)
k8s helm配置有一个全局的Helm配置,但想为特定的Deployment配置不同的Docker仓库和凭据。
2025-05-18 12:27:26
1213
1
原创 apisix透传客户端真实IP(real-ip插件)
**k8s 集群入口一般都需要过负载均衡,然后再到 apisix。**这时如果后台业务需要获取客户端 ip,可能拿到的是 lb 或者相关的内网 ip。这里一般要获取真实 ip 需要做几个处理。1. 负载均衡上,一般支持配置获取真实 ip 参数,需要配置上。然后 lb 会把客户真实 ip 写入 x-forwarded-for 参数。2. apisix 上配置 real-ip 插件。作用和 nginx 的 realip 插件相同。
2025-05-16 22:57:11
1175
原创 go依赖查询工具之godepgraph(分析main.go的依赖树)
godepgraph is a program for generating a dependency graph of Go packages.
2025-05-15 22:40:55
590
原创 openai接口参数max_tokens改名max-completion-tokens?
文章主要讨论了在使用大模型API(如OpenAI、DeepSeek、Moonshot等)时,如何通过max_tokens和max_completion_tokens参数来控制生成内容的长度和计费。max_tokens参数用于限制一次请求中包括提示和生成内容的,总token数量,而max_completion_tokens则仅限制生成内容的token数量。OpenAI官方解释称这一更改是为了避免用户对max_tokens参数的误解,并提高API的直观性和一致性
2025-05-11 20:52:07
1820
原创 Go多服务项目结构优化:为何每个服务单独设置internal目录?
在实际开发生产型Go项目时,尤其是当项目采用微服务架构,往往会遇到以下挑战:如何合理划分每个服务的内部实现,防止跨服务依赖带来的混乱?如何做到服务内代码的“私有化”与责任边界清晰?
2025-05-10 23:34:27
1045
原创 golang常用库之-protojson 库使用(json.Marshal 和 protojson.Marshal 序列化对比)
跨语言与跨平台交互需要遵守 Protobuf 的规范,尤其是和 gRPC-Gateway、Google APIs, Istio, Cloud 原生等生态协作时。protojson 的行为是 Protobuf 官方定义的 JSON 行为,兼容性和正确性才有保证。
2025-05-10 16:50:10
1210
原创 golang常用库之-标准库text/template
`text/template`是Go语言标准库中的一个强大工具,用于生成文本输出。它允许你定义模板,然后将数据填充到模板中,非常适合生成报告、配置文件、HTML等。
2025-05-02 09:28:52
684
原创 模型之FIM(Fill-In-the-Middle)补全
**FIM 是一种强大的生成技术,特别适合需要在上下文中间插入内容的场景**。通过明确的前缀和后缀,模型可以更好地理解上下文,从而生成高质量的中间内容。这种技术在代码生成、文档编辑和自然语言生成中都有广泛的应用。
2025-05-01 17:47:14
953
原创 keycloak配置选项之Unmanaged Attributes(未管理属性)(通过 Protocol Mapper 将用户属性映射到令牌(如 Access Token)中)
Keycloak 的设计逻辑Keycloak 默认只管理 基础用户属性(如 username、email、firstName 等)。自定义属性需要明确赋值,否则系统会视为“不存在”。Protocol Mapper 负责将 已存在的用户属性 映射到令牌声明。
2025-04-29 23:41:01
106
原创 git pull报错error: cannot lock ref ‘refs/remotes/origin/feature/xxx
`git pull`报错 error: cannot lock ref 'refs/remotes/origin/feature/xxx': 'refs/remotes/origin/feature/xxx/dev' exists; cannot create 'refs/remotes/origin/feature/xxx'
2025-04-28 23:18:38
750
原创 对话模型和补全模型区别
为了使文本模型在代码和应用程序中发挥作用,而不仅仅是生成任意的创意信息,`模型需要经过预训练,以特定的格式返回数据。` 通常,使用文本模型感觉像是一种聊天体验:你以某种角色提问,你会得到一个答案,就像来自另一个角色的人的回答一样。考虑到这一点,`模型提供商训练他们的模型,并用一些元数据(例如角色)来提供他们最初的训练数据。这使得模型能够以某种格式做出响应,并用于许多复杂的应用程序。`
2025-04-24 23:08:10
777
原创 macos下 ~/.zshrc~ 和 ~/.zshrc
`~/.zshrc`通常是备份文件或临时文件,可能由编辑器(如vim)创建,通常可以安全删除,不会影响系统运行。
2025-04-15 22:07:51
668
原创 前端在线工具 CodePen 和 JSFiddle
这两个工具各有其特点,选择使用哪个工具可以根据个人的需求和喜好而定。CodePen 更加注重社交和作品展示,而 JSFiddle 则更适合快速测试和代码分享。
2025-04-13 17:00:42
695
原创 管理、切换多个 hosts工具之SwitchHosts
SwitchHosts是一个用于管理hosts文件的应用程序,它基于Electron、React、Jotai、Chakra UI、CodeMirror等。
2025-04-11 20:58:40
386
p2p 文件传输 socket java sqlite 数据库
2013-03-15
zhcon-0.2.5.tar.gz和zhcon-0.2.5-to-0.2.6.diff.gz
2013-01-09
LuaForWindows_v5.1.4-46(包含vcredist-x86).zip
2019-09-24
redis-desktop-manager-2019.3.0.0.zip
2019-11-20
MASM 6.11 汇编语言编程调试工具,非常好用
2011-10-19
小区物业管理系统
2013-05-06
2018年信息系统项目管理师考试葵花宝典之【金色考点汇编暨案例论文解析】733带书签
2018-08-13
RealVNC.Enterprise.v5.0.2
2013-08-10
系统架构设计师考试历年试题分析与解答
2017-01-13
web scraping with python
2016-03-02
eyes_protection_theme_and_big_front.zip
2019-10-24
HttpCat 是一个基于 HTTP 的文件传输服务,旨在提供简单、高效、稳定的文件上传和下载功能v0.1.5版本
2024-04-08
文件传输服务HttpCat
2024-02-19
如何查看自己SVN的本地帐号密码.zip
2022-09-08
Rust学习书籍整理2022-07-06.zip
2022-07-08
DevOps 初学者指南beginners-guide-devops
2022-04-11
windows驱动安装卸载的实用小工具-InstDrv.zip
2022-01-17
pkg-config_0.23-2_win64.zip
2020-05-30
jdk-8u241-linux-x64.zip
2020-04-14
GraphicsMagick-1.3.33.zip
2019-12-24
Kiwi-Syslog-Server.zip
2021-11-02
等保主机安全基线合规-配置指导windows系统.zip
2021-08-04
cmake-3.16.0含安装教程.zip
2020-05-14
Brave浏览器BraveBrowserSetup.exe
2021-12-08
RedisDesktopManager_V2020.1_XiTongZhijIa.zip
2021-11-21
TrueCrypt.zip
2021-09-26
Redis-Win-x64-3.2.100.zip
2020-03-18
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人