Pinned Post

Recent Posts

Rust 程序设计语言(简体中文版、第一版) https://kaisery.gitbooks.io/rust-book-chinese/
Rust 程序设计语言(简体中文版、第二版) https://kaisery.github.io/trpl-zh-cn/

PostgreSQL 查询最近运行的的SQL 语句:

SELECT procpid,start,now() - start AS lap,current_query FROM (SELECT
backendid, pg_stat_get_backend_pid(S.backendid) AS procpid, pg_stat_get_backend_activity_start(S.backendid) AS start,pg_stat_get_backend_activity(S.backendid) AS current_query FROM (SELECT pg_stat_get_backend_idset() AS backendid) AS S
) AS S
WHERE
current_query <> '<IDLE>'
ORDER BY
lap DESC;

MacOS 通过删除 Time Machine 文件减少硬盘空间

MacOS TimeMachine 自动备份时会先在本地磁盘创建快照

# 列出快照
sudo tmutil listlocalsnapshots /

会列出类似这样的列表:

com.apple.TimeMachine.2018-11-12-093857

删除指定快照:

tmutil deletelocalsnapshots  2018-11-12-093857

Twitter的Snowflake算法(俗称雪花算法)的 Golang 实现: https://github.com/bwmarrin/snowflake

到后来,你选择不去刻意讨好谁,不特意对谁报期望。 你试图让一切自然发生,自然生长或者夭折。 就像不再追随信仰的信徒。

小作坊来了4个小朋友,一切都在稳步向前。而我,还在想着昨晚羽泉的演出。

从通俗到摇滚、民谣、后摇、后朋克… 这些年听了太多的民谣和摇滚现场,有些审美疲劳。 今晚听了羽泉的现场,虽然老歌唱得不太多,还是让人回想起中学时代。 今晚很开心,感谢纯歌的票,感谢陪着看演出的人。 ??‍♂️

Mac 下 iTerm2 ssh 登录服务器后提示:-bash: warning: setlocale: LC_CTYPE: cannot change locale (UTF-8): No such file or directory, 修改 mac ssh 配置文件: /etc/ssh/ssh_config~/.ssh/config ,注释掉:SendEnv LANG LC_* 一行即可。

Mac 一键开启 HiDPI: https://github.com/xzhih/one-key-hidpi ,注意,外接显示器时,需要关闭 Mac 盖子,只保留外接显示器(该脚本只对当前显示器生效),此方案对 M1 芯片无效。

另一个方案 虚拟显示器 BetterDummy: https://github.com/waydabber/BetterDummy

下午和胡哥去宜家买办公桌椅,桌子单价299 椅子单价499,
我说咱们这是创业公司啊这起点是不是有点高了啊,胡哥摇了摇头:哎,都怪当初那两块大板子把调给定高了。 -_-
宜家

你不曾察觉的隐患:危险的 target=“_blank” 与 “opener”:

<a href="https://an.evil.site" target="_blank" rel="noopener noreferrer nofollow">进入一个“邪恶”的网站</a>

https://segmentfault.com/a/1190000016421263

ExposurePlot 用于统计分析照片 Exif 信息 https://www.vandel.nl/exposureplot.html

Android 玩家一直以来乐此不疲地折腾的东西叫做 GApps (全称 Google Apps ),一般是由国外某些 ROM 大牛或是 ROM 团队为了完善他们的 ROM 体验而单独制作的 Google 应用和服务的整合包。

所以 GApps 不仅包含了 Google 服务的基本框架,根据版本的不同,也包含诸多 Google 自家的优秀应用。

实现之 Open Gapps :https://opengapps.org/

Xposed 是一个 Android 上的框架, 框架上面可运行很多模块, Xposed 会拦截系统 API 调用并交给各模块处理然后返回处理后的数据,算是一个 hook 吧, 官网列出的常见模块: http://repo.xposed.info/module-overview , 知乎 “Android 系统上的 Xposed 框架中都有哪些值得推荐的模块?” : https://www.zhihu.com/question/22063862

linux 下通过管道命令正则删除 Redis 中匹配的键盘:

-n 指明哪个库

redis-cli -n 0 keys "user*" | xargs redis-cli -n 0 del

Go 夜读,Go学习, Go 源码阅读及 Go 语言相关技术讨论分享: https://github.com/developer-learning/night-reading-go

尝试用 tmux 替换 screen

os.exec 包中的 cmd.Run(), 手册中运行该命令并等待它完成,但貌似并没等待命令结束?
临时换成 cmd.Start() cmd.Wait()

Go exec 执行外部命令时的输出重定向

使用 go.exec 包执行外部命令时,无法直接使用输入输出重定向命 <>,需要使用 WriterReader 来实现.


dumpFile, err := os.OpenFile("./data/"+batchNumber+"-"+tab+".sql", os.O_CREATE|os.O_RDWR, os.ModePerm)
if err != nil {
    panic("无法打开文件:" + err.Error())
}
defer dumpFile.Close()
stderr := new(bytes.Buffer)
args := []string{
    "--no-create-db",
    "--no-create-info",
    "--skip-opt",
    "--quick",
    "--where=id>" + strconv.Itoa(lastID) + " and id<=" + strconv.Itoa(currentID),
    "-h" + Conf.DB.Host,
    "-u" + Conf.DB.User,
    "-p" + Conf.DB.Password,
    Conf.DB.Name,
            "tabname",
}

// fmt.Println("args:", args)

cmd := exec.Command("mysqldump", args...)
cmd.Stderr = stderr
cmd.Stdout = dumpFile

err = cmd.Start()
if err != nil {
    logger.Infof("导出文件时发生错误:%s", err.Error())
    return
}

cmd.Run()
cmd.Wait()

解决阿里云恢复 mysqldump 文件时没有权限的错误

在阿里云 mysql -uxx -hxxx -p dbname < file.sql 恢复文件时由于 RDS 没有 Supper 权限所以报错:

Access denied; you need (at least one of) the SUPER privilege(s) for this operation

解决方法: 去除 GTID_PURGEDDEFINER 子句:

sed -e 's/DEFINER[ ]*=[ ]*[^*]*\*/\*/ ' your.sql > your_revised.sql
awk '{ if (index($0,"GTID_PURGED")) { getline; while (length($0) > 0) { getline; } } else { print $0 } }' your.sql | grep -iv 'set @@' > your_revised.sql

详见: https://help.aliyun.com/knowledge_detail/41701.html