编程笔记

lifelong learning & practice makes perfect

为什么迁移

在商店安装的子系统默认放C盘,磁盘剩余空间不多了

准备和验证

查询已安装的子系统

1
2
3
4
5
6
wsl -l

# 适用于 Linux 的 Windows 子系统分发:
# Ubuntu-24.04 (默认)
# docker-desktop
# docker-desktop-data

查询wsl安装的Ubuntu24磁盘位置, “Ubuntu-24.04”为需要查询的子系统版本

阅读全文 »

安装

使用docekr安装,默认为linux/x86_64

1
2
3
4
5
6
7
8
9
10
11
services:
coredns:
image: coredns/coredns:latest
ports:
- 53:53/udp
restart: always
command: -conf /root/Corefile
volumes:
- ./config:/root
hostname: coredns
container_name: coredns
阅读全文 »

redis为什么快

  1. 数据存储在内存中
    Redis完全基于内存存储数据,大部分请求是纯内存操作,速度极快。
    避免了传统磁盘文件数据存储的磁盘I/O开销。

  2. 高效的数据结构
    Redis有5种数据类型:String、List、Hash、Set、SortedSet。
    不同数据类型使用一个或多个底层数据结构支持,以实现更快的速度。

  3. 单线程架构
    单线程节省了上下文切换和CPU消耗的时间。
    没有竞态条件,无需考虑各种锁问题,避免了死锁导致的性能开销。
    允许使用各种“线程不安全”的命令,如Lpush。
    虽然是单线程,但Redis的其他功能(如持久化、异步删除、集群数据同步)由额外的线程执行。
    单线程易于实现,且CPU不会成为瓶颈,因此采用单线程方案。

阅读全文 »

配置nginx代理

1panel入口需要使命令获取

1
1panel user-info

nginx配置

阅读全文 »

用户配置

对象存储

支持s3协议存储,配置到”File system”下
sftpgo支持virtual folders,但是相同的配置,使用virtual folders时,”私有读写”的bucket无法使用(
只能获取文件列表,下载文件/上传文件均失败),在”Users”中配置到”File system”却可以正常工作

阅读全文 »

背景

项目要求使用国密加密算法保障安全性,go和java需要通过接口互通,请求时使用sm4加密数据,sm2加密sm4秘钥,必将加密数据和加密后的sm4秘钥发送到第三方接口,
响应用相反的方式解密数据.
java 使用hutool里的工具函数实现,go使用”github.com/tjfoc/gmsm”实现.

阅读全文 »

channel

打开企业微信三方应用报错,提示如图,检查了服务商后台和后端代码里的各项配置都没错,域名也通过了
验证

channel

最后发现是前端oauth时跳转配置里的appid填错了

1
2
3
// 第三方应用需要在打开的网页里面携带用户的身份信息,第一步需要构造如下的链接来获取code:

https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect

参考文档:

部署Keycloak

使用dev模式启动,自定义配置可以放到conf下

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
version: '3.9'
services:
keycloak:
image: quay.io/keycloak/keycloak:24.0.3
environment:
# KC_DB: mysql
# KC_DB_SCHEMA: keycloak
# KC_DB_USERNAME: kc
# KC_DB_PASSWORD: xxxxxx
# KC_DB_URL_HOST: xxx.xxx.xxx.xxx
KEYCLOAK_ADMIN: admin
KEYCLOAK_ADMIN_PASSWORD: admin
KC_PROXY: edge
KC_HOSTNAME_STRICT: false
KC_RUN_IN_CONTAINER: true
mem_limit: 500m
mem_reservation: 400m
command:
- start-dev
#- --optimized
container_name: keycloak
volumes:
- ./conf/:/opt/keycloak/conf
restart: always
ports:
- 8080:8080
阅读全文 »

使用YOLOV8训练自定义数据集,实现多目标检测

流程

  • 自定义标签
  • 数据标注
  • 训练
  • 验证

自定义标签

这里通过工具X-AnyLabeling进行标注,需要按照工具要求添加标签,这里我添加了2个标签,person和car如下

1
2
3
#新增 classes.txt,内容:
person
car
阅读全文 »