macOS安装配置和软件

系统设置

程序坞

  • 勾选放大,以及设置合适的大小
  • 勾选将窗口最小化为应用程序图标
  • 取消勾选在程序坞中显示最近使用的应用程序

语言与地区

  • 时间格式勾选24小时制

安全性与隐私

通知

  • 勿扰模式:

显示器

  • 夜览:

键盘

  • 快捷键:全键盘控制 -> 所有控制

触控板

  • 光标与点按
    • 勾选轻点来点按
    • 跟踪速度:倒数第2
  • 更多手势:
    • 在全屏幕显示的应用之间轻扫:四指
    • 高度中心:四指向上
    • 应用Exporse:四指向下

声音

  • 输出:在菜单栏中显示音量

用户与群组

  • 关闭客人用户

日期与时间

  • 时钟:显示秒钟、闪动、使用24小时格式等

Finder

  • 通用:开启新“仿达”窗口时打开:home
  • 边栏:个人习惯
  • 高级:将以下位置的文件夹保持在顶部:按名称排序时的窗口中
  • 打开一个仿达窗口:点状态栏,显示路径栏和显示状态栏;点击查看显示选项:排序方式为名称

辅助功能

  • 鼠标与触控板
    • 启用拖移:使用拖移锁定

关于系统设置,写到最后的感受,也许"迁移助理"是个很不错的工具和选择!

[阅读全文]
macOS  linux 

sudo

1
2
3
4
5
6
7
8
vim /etc/sudoers

# %开头为组,若当前用户为管理员组,只需要将%admin该行添加NOPASSWD: ALL即可
# 像这样
# 原来:%admin          ALL = (ALL) ALL
# 改后:%admin          ALL = (ALL) NOPASSWD:ALL

# 如果不是管理员组,则按格式新建一行(未验证)
linux  sudo 

Let's Encrypt - Free SSL/TLS Certificates

1. 获取证书:

先停Nginx

1
docker stop nginx

生成证书

1
./certbot-auto certonly --standalone --email chrislu.name@gmail.com -d ichris.info -d www.ichris.info -d api.ichris.info -d console.ichris.info

创建符号链接,可选操作,建议做。因为生成证书后,复制证书麻烦,而且每次更新后都需要复制一次;配置指向/etc目录可能会没有权限,符号链接是最简单高效的办法。

1
2
ln -s /etc/letsencrypt/live/[path]/fullchain.pem /[path]/[to]/[web]/[certs]/fullchain.pem
ln -s /etc/letsencrypt/live/[path]/privkey.pem /[path]/[to]/[web]/[certs]/privkey.pem

启动Nginx

1
docker start nginx

2. 更新证书:

1
certbot-auto renew --pre-hook "docker stop nginx" --post-hook "docker start nginx"

3. 添加到调度中,每周1凌晨3点检测一次

1
0 3 * * 1 /opt/service/certbot-0.28.0/certbot-auto renew --pre-hook "docker stop nginx" --post-hook "docker start nginx"

参考

[阅读全文]

MySQL主从延迟解决方案

版本:5.7.23

现象

过一段时间会发现从库追不上主库,而且差距越来越大

此时通过在主从库上分别查询:select * from information_schema.processlist where info is not null order by host 得知:

  1. 主库一直有不断的增删改操作
  2. 从库一直只有查询操作

查从机:show slave status,得知:

[阅读全文]

AWS-EC2搭建hugo+caddy,安装shadowsocks手记

关于购买预留实例

老外们的思维方式不同,在中国其实就是购买实例的时候,选择费用方式为包月包年 预留实例在左边菜单的入口处购买

初始化服务器

原来的服务器到期了,去年mysql+go+vue架构换成了github+caddy+hugo,配置要求不那么高,所以换了个便宜点新实例(2vcpu+2G+8G,这么低的配置都感觉有些浪费了),初始化过程如下:

[阅读全文]

关于mysql驱动的DSN字符问题

此次重构发现之前的loc参数一直为空,不太记得是当时刻意为之,还是当时发生了错误未解决 所以在生产上就加了配置asia/shanghai,报错了:invalid DSN: did you forget to escape a param value? 这个好办,转换一下就行了,改成:asia%2Fshanghai

[阅读全文]
golang  mysql  DSN 

MySQL中间件选择

MyCAT(1.6.5)

先天不足,发现部分应用有兼容性问题

  1. XXL-JOB官方文档有说明:如果mysql做主从,调度中心集群节点务必强制走主库
  2. flyway也不支持!

TiDB(2.0版)

对运行环境硬件配置要求高得变态,某公司的服务器上了高性能SSD仍然不能满足IOPS要求(<40000)

[阅读全文]

Twitter snowflake算法

算法原理

  • 1位符号位,始终为0;
  • 41位时间戳,一般实现上不会存储当前的时间戳,而是时间戳的差值(当前时间-固定的开始时间),这样可以使产生的id从更小值开始;41位时间戳可以使用69年,1L«41/(1000L*60*60*24*365) = 69年
  • 10位节点位,前五位数据中心标识,后五位机器标识,可以部署1024个节点
  • 12位序列号,支持同一个节点同一毫秒可以生成4069个ID

golang learning

一个有关Golang变量作用域的坑

对于使用:=定义的变量,如果新变量p与那个同名已定义变量 (这里就是那个全局变量p)不在一个作用域中时,那么golang会新定义这个变量p,遮盖住全局变量p

[阅读全文]
golang