Setapp 合租-应用推荐
整理我常用的 Setapp
应用。
整理我常用的 Setapp
应用。
数据库中使用了枚举 enum
来存储订单状态 orders.state
,然后在 model/order.go
中一堆状态常量:
type Order struct {
// ...
State string
}
const (
OrderStatePending = "pending"
OrderStateLocked = "locked"
OrderStatePaid = "paid"
OrderStateRevoked = "revoked"
OrderStateDone = "done"
)
既然说到 Go
的枚举,肯定有人要说 iota
了,那么,,用 iota
来实现该功能试试:
4月份的时候给腾讯云发工单 MySQL 数据库分配 Buffer Pool 不合理, 1G内存的实例被分配掉 896M 作为 BP 了,刚看了下,似乎并没有被调整。
show global variables like 'innodb_buffer_pool_size';
rqlite 项目有点意思,把 SQLite 玩成了分布式数据库 https://github.com/rqlite/rqlite
git 打补丁
打补丁:
# 将指定提交与之前的N次提交之前的差异打成补丁
git format-patch {COMMIT_HASH} -N
git format-patch HEAD -1
会在当前目录下生成类似 0001-temp.patch 这样的文件。
检查指定补丁是否可用、是否冲突:git apply --check ~/patch/patch/0001-add-11111.patch
在应用补丁时,可根据实际需要,直接在分支下应用补丁,还是新开分支应用补丁,然后再合并到分支中。
应用指定补丁: git am 0001-temp.patch
Tile38 https://tile38.com
Tile38 是一个 Go 语言编写的开源高性能空间索引引擎。它支持多种对象类型,包括纬度/经度点、边界框、xyz 切片、geohashes 和 geojson。 客户端订阅指定对象后,当对象发生靠近、相交、内部、离开等行为时它会向推送消息,而避免客户端重复查询数据库。 它支持地理围栏、漫游围栏等操作。
在 Go 项目中生成 Swagger
文档时提示: cannot find type definition: xxx
解决方案:
增加 --parseDependency
参数解析依赖:
swag init --parseDependency -g app/router/api.go
ngraph.path: https://github.com/anvaka/ngraph.path 一个前端路径规划的库
maptalks,开源的 2D/3D WebGIS 引擎: https://github.com/maptalks/maptalks.js 示例: https://maptalks.org/examples/cn/map/load
在 MySQL 8.0.4 之前可以直接通过 SET PASSWORD=PASSWORD('新密码')
更新,但 8.0.4 开始将认证插件从 mysql_native_password 更新到了 caching_sha2_password 后将不能用该方法修改用户密码了。
mysql 8 修改用户密码:
mysql> show databases;
mysql> use mysql;
mysql> ALTER USER '用户名'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码';
mysql> flush privileges;
MySQL 创建用户、修改密码、授权:
CREATE DATABASE game CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;
CREATE USER 'game'@'%' IDENTIFIED BY '{PWD}';
ALTER USER 'game'@'%' IDENTIFIED WITH mysql_native_password BY '{PWD}';
GRANT ALL ON game.* TO 'game'@'%';
FLUSH PRIVILEGES;
这才注意到 cache2go 这个缓存库通过 cache.Value() 获取值时会更新元素的活跃时间导致元素未按预期过期。 (其实文档中有说,但我没细看,想当然了……)
Rust Embedded ( https://github.com/rust-embedded ) Enabling usage of Rust on Embedded Platforms (Embedded Linux / RTOS / Bare Metal) 相关案例: http://showcase.rust-embedded.org/
有没因为 man
长篇大稿不说人话导致很少用这个帮助手册命令?
试试 tldr
(Too Long; Didn't Read
,太长不看): https://github.com/tldr-pages/tldr
在 AWS EC2 控制面板将卷大小后,SSH 连接到服务器:
lsblk # 列出块信息
sudo growpart /dev/nvme0n1 1 # growpart <分区名> <分区号> 扩展分区
lsblk # 查看操作后的块信息
df -h
sudo xfs_growfs -d / # 扩容
df -h
工作中写到的一段通用性较高的代码,根据 结构体 A 中的 tag 匹配数据到 结构体B
创建:
DELIMITER ^^
CREATE TRIGGER t_user_asset_watch
BEFORE UPDATE ON users
FOR EACH ROW
BEGIN
IF (OLD.balance!=NEW.balance or OLD.balance_usdt!=NEW.balance_usdt
or OLD.frozen!=NEW.frozen or OLD.frozen_usdt!=NEW.frozen_usdt) THEN
INSERT INTO user_asset_watch(user_id,balance_old,balance_new,frozen_old,frozen_new)
VALUES(OLD.id,OLD.balance,NEW.balance,OLD.frozen,NEW.frozen);
END IF^^
END^^
DELIMITER ;
删除:
DROP TRIGGER IF EXISTS t_user_asset_watch;
Laravel migrate
在 Laravel 迁移文件中实现 DEFAULT 的两种方式:
$table->timestamp('created_at')->nullable()->default(DB::raw('CURRENT_TIMESTAMP'));
$table->timestamp('created_at')->nullable()->useCurrent();
感觉 Ulysses
真的是被过誉了,当然,也许是它不适合我。
在我的使用场景中,无论是写作体验还是功能性扩展性、灵活性,都远在 Typora
之下。
想了想,貌似 Ulysses
更适合那种以写作为主要工作的人(内置文章的章节管理、关键字搜索),它以自己的方式组织管理用户的数据,并扩展了一些写作相关功能。相比之下 Typora
似乎更适合喜欢折腾的码农,大量的第三方主题、各种图表支持、用户自行维护数据…