go generate 为枚举类型生成字符串描述方法

作者:matrix 被围观: 1,180 次 发布时间:2024-08-10 分类:Golang | 无评论 »

go generate命令可以方便的为自动生成源代码,利用官方的stringer库来完成 安装stringer工具 如果本地已经安装,跳过 go get -u golang.org/x/tools/cmd/stringer Case main.GO package mainimport "fmt"type UserStatus intconst ( Active UserStatus = 40 Inactive UserStatus = 1 Pending UserStatus = 9 Other = Inactive) 上面定义的常量类型UserStatus,原始类型为 int 值,每次使用 fmt.Print打印会只显示数字,可读性会很差。那怎么让fmt.Print输出对应的描述?自定义结构体String() 方法,打印时会自动调用 ...func (s UserStatus) String() string { switch s { case Active: retu......

自动给 Google 搜索结果添加查看缓存功能

作者:matrix 被围观: 4,148 次 发布时间:2024-07-12 分类:零零星星 | 3 条评论 »

R.I.P. 2024年09月25日 google快照已死?️ https://www.solidot.org/story?sid=79336 Google 搜索结果的查看缓存功能下线其实很久了,每次都得手动 `cache:https://www.hhtjim.com/` 就很麻烦。有空搞了个油猴脚本能自动在Google搜索结果中添加 [Cache] 链接到该网页的缓存版本 ?? 这就方便多了 安装地址 https://greasyfork.org/zh-CN/scripts/500422-google-cache-viewer 脚本代码 // ==UserScript==// @name Google cache viewer// @namespace http://hhtjim.com/// @version 1.0.1// @description Automatically adds a cache link to Google Search results. / Google搜索结果中添加缓存按钮// @author Hootr......

Dockerfile多阶段构建镜像

作者:matrix 被围观: 1,351 次 发布时间:2024-07-06 分类:Golang Linux | 无评论 »

在构建GO的docker镜像时,都需要安装很多开发环境和依赖包,如果正常打包完整环境为镜像完全没有必要。因为运行时只需要Golang打包的二进制文件,不需要完整 dev 环境。Dockerfile多阶段构建就可以完美解决,将构建和运行环境分开,可以最终镜像最小化。 😆 😆 爽~~ # 第一阶段:使用开发环境镜像进行构建,设置别名builderFROM golang:1.22 AS builder# 设置工作目录WORKDIR /app# 复制所有文件到工作目录COPY . .# 编译应用程序RUN go build -o go-demo .# 第二阶段:使用小体积的基础镜像 打包最终镜像FROM alpine:latestWORKDIR /app# 从构建阶段复制编译好的可执行文件COPY --from=builder /app/go-demo .# 运行可执行文件CMD [".......

根据现有的libjpeg依赖修复ImportError

作者:matrix 被围观: 1,252 次 发布时间:2024-06-25 分类:Linux Python | 无评论 »

Python的Pillow库(PIL)处理图像时,可能会遇到库依赖问题,例如缺少libjpeg.so.9文件 from PIL import ImageTraceback (most recent call last): File "<stdin>", line 1, in <module> File "/home/work/.local/lib/python3.7/site-packages/PIL/Image.py", line 103, in <module> from . import _imaging as coreImportError: libjpeg.so.9: cannot open shared object file: No such file or directory 正常来说是安装libjpeg库来解决 apt-get install libjpeg-dev / yum install libjpeg-devel 。但是我这台 CentOS机器之前有这个依赖,还有就是网络问题很麻烦 查找现有的libjpeg库文件 sudo find / -name "li......

开发环境配置本地自签SSL证书

作者:matrix 被围观: 2,137 次 发布时间:2024-06-20 分类:Linux PHP Wordpress | 一条评论 »

项目地址:https://github.com/FiloSottile/mkcert本地开发环境有时候需要模拟真实的https环境,那就必须得配置SSL证书了。自签SSL证书就可以搞定,这回尝试用mkcert工具生成和配置自签SSL证书。 安装mkcert 本地是 mac 环境,直接用brew安装 brew install mkcert 信任自签根证书 安装并让系统信任mkcert的自签根证书。 mkcert -install 创建证书 mkcert "*.security.local" localhost 127.0.0.1 ::1 security.local就是我本地开发环境运行的域名127.0.0.1 ::1 是对应的本地 IPV4 IPV6创建的证书和私钥文件会保存在当前目录中 配置Nginx 正常配置nginx文件(e.g. /etc/nginx/nginx.conf) 添加内容: server { listen 443 ssl; ser......

iStore软路由自定义DNS服务

作者:matrix 被围观: 3,623 次 发布时间:2024-06-10 分类:零零星星 | 无评论 »

家庭网络使用iStore(Openwrt)软路由系统作为旁路网关可以更好的控制进出流量。比如拦截广告请求的域名,本地 server 域名...局域网环境有一个常驻服务,这次给他配置一个专属域名homeserver.lan。只要设备接入家庭网络,不管客户端设置的什么DNS服务都可以使用。 静态IP配置 将常驻服务的IP固定,方便后续访问。我自己使用的 iKuai主路由配置。iStore(openwrt)的话可以参考下面形式自己设置:打开iStore终端使用uci命令配置 dhcp 服务,或者自己在页面点击完成配置命令行方式: uci add dhcp hostuci set dhcp.@host[-1].name='homeserver.lan'uci set dhcp.@host[-1].mac='AA:BB:CC:DD:EE:FF' # 绑定的 mac uci set dhcp.@host[-1].ip......

利用mDNS协议使用局域网local域名服务

作者:matrix 被围观: 1,977 次 发布时间:2024-06-05 分类:Linux | 无评论 »

Multicast DNS(mDNS)协议是一种用于网络设备自动发现的技术。通过mDNS协议,设备可以在局域网内声明自己的主机名,使其他设备不用配置域名DNS即可直接访问,非常方便~ 在Windows、Linux和Mac系统上,mDNS其实早就普及可用。 局域网中存在一台hostname为aaa的计算机,不管它是Windows还是Linux,用aaa.local可以找到它,这就是mDNS的功能 以 Debian 系统为例,为其创建局域网任何设备都可以访问的local域名。域名前缀就是机器名 hostname。我这里的名称是debianhs Linux Debian下需要安装avahi才能实现 mDNS 功能。avahi-daemon 可以支持 mDNS 的服务,允许设备在局域网内通过主机名相互发现和通信。安装 sudo apt updatesudo apt instal......

GPG密钥基本使用

作者:matrix 被围观: 625 次 发布时间:2024-05-31 分类:零零星星 | 无评论 »

创建密钥 $ gpg --full-gen-key### 密钥的有效期限是? 0 永不过期agpg: 密钥 AEBCD7019762DB73 被标记为绝对信任gpg: 吊销证书已被存储为‘/Users/root/.gnupg/openpgp-revocs.d/18A7EFFD0146D38B207B30D0AEBCD7019762DB73.rev’公钥和私钥已经生成并被签名。pub rsa3072 2024-04-07 [SC] 18A7EFFD0146D38B207B30D0AEBCD7019762DB73uid hhtjim <root@hhtjim.com>sub rsa3072 2024-04-07 [E] 这里 AEBCD7019762DB73 为简写密钥id,全写为18A7EFFD0146D38B207B30D0AEBCD7019762DB73 创建吊销凭证 生成一张"撤销证书",以后密钥作废时可以请求外部的公钥服务器撤销公钥。 gpg --gen-revoke AEBCD7019762D......