大象笔记

知者行之始,行者知之成

Linux fish shell 中自动补全 go Cobra 创建的命令

书接上回,自从基于 cobra 完成了 Golang AST 解析 struct 字段,自动生成 CRUD 代码,又添加了部分功能。这个自动帮我搬砖的代码生成器基本完成了。😊 但是,在项目中使用的时候,还是有点小瑕疵,就是不能在 fish shell 中自动补全命令,主要是我创建的命令,命令我自己都记不住🥲。每次靠输入 cobra 帮助参数来查看,也略显麻烦。于是,我想能否像 smug 一样,实现自动补全命令。查了一下,果然可以: 添加 fish 自动补全 cobra 内置了针对各种 shell 的自动补全功能。诸如,fish,bash,zsh,powershell。 例如,我的搬砖工具名为 ...

阅读全文...

ant design pro 的统一配置管理

作为一个 CRUD boy,经常要新建管理后台的项目。确切的说,应该是经常要 ctrl c / ctrl v 来 copy 老的项目。 但是 ant design pro 好多配置不在一个统一的配置文件中,需要去多个地方修改设置。例如: 顶部标题 登录页的标题 logo 顶部,及登录页 到处找配置,非常浪费脑细胞,本已稀疏的头发也经受不住这么折腾。所以还是能统一管理比较好。 统一配置文件在哪里 config/defaultSettings.ts 虽然这里定义了一些配置。但是像登录页的标题就不受这里控制。 登录页使用配置文件中的标题 import defaultSettings from ' ...

阅读全文...

Golang AST 解析 struct 字段,自动生成 CRUD 代码

上周基于 cobra 实现了一个 golang 的命令行工具, 参考:golang 快速开发命令行工具的神器 cobra & cobra cli,实现了一键生成 go gin 后台,及 react ant design 前端的 CRUD 工具。 大大提升了枯燥的 CRUD 劳作效率。并在两个项目上试水成功。 但是,还有一点不够完美,就是目前的 ant design 前端部分,只是个界面架子。 具体的编辑字段,还得手动一个个添加。这周又接到了一个无数 CRUD 的搬砖项目,我觉得有必要把这部分功能加上了。 这样才能无愧于我的“搬砖之王”的称号。 功能需求 即,使用 golang 解析一个 ...

阅读全文...

升级到 golang 1.23 版本后,gorm 的 count 统计总是返回 0

之前为了使用 excelize 的一个新功能, golang excelize 自动解析 excel 单元格的字体颜色, 将 golang 由 1.18 升级到了 1.23。但是遇到了 gorm 的一个 bug。 问题代码 var items []models.Article db := models.DB.Model(&models.Article{}). Preload("Category") db = db.Session(&gorm.Session{}) db.Order("id desc"). Limit(limit) ...

阅读全文...

MySQL 8 之后版本的默认字符集已经变成了 utf8mb4

昨天在翻一本 MySQL 书籍的时候,发现 MySQL 8.0 之后,默认的数据库字符集已经变成了 utf8mb4。 而我这么多年一直还是习惯性的新建数据库时,手动指定 utf8mb4 字符集和 collation 。。。看来以后可以省去这个多余的操作了。 The default MySQL server character set and collation are utf8mb4 and utf8mb4_0900_ai_ci, but you can specify character sets at the server, database, table, column, and st ...

阅读全文...

The engine "node" is incompatible with this module

在运行一个从 git 仓库 clone 下来的 ant design pro 项目时,报错: 未找到 umi > tyarn start:dev yarn run v1.22.10 $ cross-env REACT_APP_ENV=dev MOCK=none UMI_ENV=dev umi dev Your node v16.14.2 is not supported by umi, please use node 10, node 12 or node 14. Error: Cannot find module 'umi' 注意,这里的 node 版本警告可以忽略。主要问题是没有 ...

阅读全文...

golang 快速开发命令行工具的神器 cobra & cobra cli

最近想用 go 开发一个自动生成 gin CRUD 前后端代码的命令行工具,实现跟 python django 类似的快速搭建 admin 后台的体验。 于是找了一个类似的脚手架工具 nunu,但是这个项目的代码组织风格并不是我喜欢的类型,且没有 ant design 前端相关的模板,所以我打算自己重造这个轮子。动手之前,我粗略浏览了一遍 nunu 这个项目的代码,发现里面使用了 cobra 这个库,非常便捷。 在参加烟台八角湾数字经济大会时,边开发,边整理了这篇文档。倪光南院士在上面大讲 AI,我在下面写 CRUD。。。我们都有美好的未来 🥲 cobra 是什么 如果经常需要用 golang ...

阅读全文...

使用 ncdu 命令分析 linux 磁盘空间占用

对于需要长期运转的云服务器,磁盘空间占用是必须关注的。 毕竟 linux 服务器上很多运行的服务,都不是自己写的。在数据量大,访问量大的情况下,会产生大量的日志文件,缓存文件,甚至电商系统还会产生大量的缩略图图片文件。如果不关注磁盘空间的变化,很容易出现空间紧张的情况。 所以,需要一个能在远程服务器上,方便通过命令行查看磁盘空间分析结果的工具。 ncdu https://dev.yorhel.nl/ncdu Ncdu is a disk usage analyzer with a text-mode user interface. ubuntu 上安装 sudo apt install n ...

阅读全文...

通过 frp 内网穿透技术将内网服务器充分利用起来

昨天在 v2ex 上看到一个有趣的讨论,即通过内外穿透技术将线上云服务器的请求,转发到公司或者家里内网的本地服务器上。 我觉得这个思路不错啊。公司内网的服务器完全可以通过这种方式充分利用起来。 因为公司一些车间在购买设备时,由于负责人并不了解实际的服务器配置需求,设备配套了几台高配的服务器。基本处于空跑状态。 而未来也有很多这种莫名其妙的采购需求,所以公司内部没有被充分利用的服务器会越来越多。 通过 frp 内网穿透,就能很好的将这些高配的服务器用起来,比如跑一些大模型,或者内存占用高的服务。 概要逻辑 公网上,购买一台低配置的便宜的阿里云或者腾讯云服务器。 将公网服务器的请求,通过 frp ...

阅读全文...

sudoers, 非 root 用户远程免密码执行需要 sudo 权限的命令

需求背景 由于平时要频繁发布 golang 的程序到线上生产服务器,我通过 Makefile 自动执行编译,scp 可执行文件到服务器。但是无法自动远程执行 systemctl 的 restart 命令,因为 systemd 相关的命令需要 sudo 权限。 所以,最后一步总是需要登录到服务器上,然后手动执行 sudo systemctl restart xxx.service,然后输入密码,非常的浪费时间。 我想找个方案,能给当前用户增加 sudo 权限,同时为了安全起见,又能限制住只可以执行部分指定命令时有此权限。 解决方案 sudoers 发现 sudoers 完美满足需求。查看 sud ...

阅读全文...

漂亮超赞的代码截图分享工具 Ray.so

📸✨程序大师们看过来!今天要给大家安利一款超酷的代码截图神器 ——Ray.so!🎉 🤩让你的代码截图在社交平台上脱颖而出,吸引无数的目光,成为编程界的视觉焦点!💖 经常在推上看到老外分享代码时,都是使用的这种带颜色的背景。感觉非常酷炫。连 golang 官方的新版本发布也是用的类似的命令截图工具。碰巧今天看到有人分享了一个类似工具 ray.so。测试了一下,确实惊艳哇! 可以选择各种代码配色主题,类似 VSCode 或者 VIM 的配色主题。同时可以选择不同编程语言的语法高亮,还能调整字体和间距。哈哈!堪称代码世界的时尚摄影师,把你的代码拍得美轮美奂。 我也想造一个类似的轮子。。。 之前 ...

阅读全文...

大内存 Magento PHP 服务器内存优化 (二)

继系列一之 大内存 Magento PHP 服务器内存优化,将 Linode 云服务器由 32G 内存,降配至 16G。最新的目标变成了,将 16G 内存的实例,进一步降低至 8G。 在请求量,并发量低的情况下,并不需要这么高的服务器配置。 系统负载 目前的 8核 16G 服务器,负载一直稳定在 1 左右。说明负载还是低。 内存使用状况 MiB Mem : 15975.1 total, 806.5 free, 11415.6 used, 3753.0 buff/cache MiB Swap: 512.0 total, 3.1 free, 508.9 used ...

阅读全文...