0%

使用Dconf Editor

打开Dconf Editor,导航到 org -> gnome -> desktop -> break-reminders,然后选择 eyesight 或 movement(分别对应短时间休息和长时间休息)。在该路径下,可以设置 interval-seconds 来调整休息时间间隔

下载 hugo-theme-next-starter

1
2
3
  git clone https://github.com/hugo-next/hugo-theme-next-starter
  cd hugo-theme-next-starter
  git submodule update --init --recursive

配置

编辑hugo.yaml

1
2
3
4
5
6
  vim config/_default/hugo.yaml

  # 站点域名
  baseURL: https://sxqs.fun
  # 站点标题
  title: Dany 的个人小站

编辑params.yaml

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
  vim config/_default/params.yaml

  # 站点基本信息
  # Site Information Settings
  author: Dany
  subtitle: 上下求索
  description: 你的要务不在于达成什么而是待在当下此处只管专注当下就行了这能使你得到解脱免于痛苦免于恐惧免于心智的束缚
  keywords: emacs,elisp,java

  # 知识共享国际许可 4.0
  # 侧边栏显示
  sidebar: false
  # 文章底部显示
  post: false

  # 侧边栏头像
  # 设置显示头像的相对路径
  url: /imgs/head.png

  siteState:
  # 是否在侧边栏显示文章分类标签信息
  basic: false
  # 站点访问信息
  views:
    enable: false

  # 社交链接地址
  social0: Github || https://github.com/sxqsfun || fab fa-github
  social1: E-Mail || mailto:78528291@qq.com || fa fa-envelope


  # 友情链接设置
  # 显示标题
  # Show title

  # 友情链接地址
  links:
    #link0: Hugo-NexT || https://gitee.com/hugo-next/hugo-theme-next
    #link1: 凡梦星尘空间站 || https://lisenhui.cn

  # 站点开始年份默认为当下时间的年份
  since: 2019

  # 国内 ICP 备案和公安网备信息
  beian:
    enable: false

  # 站点支持供应商列表
  vendors:
    enable: false

  # 文章的在线编辑
  postEdit:
    enable: false

  # 右上角在 Github 上面关注我的横幅
  githubBanner:
    enable: false

下载 hugo-theme-next-starter

1
2
3
git clone https://github.com/hugo-next/hugo-theme-next-starter
cd hugo-theme-next-starter
git submodule update --init --recursive

配置

编辑hugo.yaml

1
2
3
4
5
6
vim config/_default/hugo.yaml

# 站点域名
baseURL: https://sxqs.fun
# 站点标题
title: Dany 的个人小站

编辑params.yaml

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
vim config/_default/params.yaml

# 站点基本信息
# Site Information Settings
author: Dany
subtitle: 上下求索
description: 你的要务不在于达成什么而是待在当下此处只管专注当下就行了这能使你得到解脱免于痛苦免于恐惧免于心智的束缚
keywords: emacs,elisp,java

# 知识共享国际许可 4.0
# 侧边栏显示
sidebar: false
# 文章底部显示
post: false

# 侧边栏头像
# 设置显示头像的相对路径
url: /imgs/head.png

siteState:
# 是否在侧边栏显示文章分类标签信息
basic: false
# 站点访问信息
views:
  enable: false

# 社交链接地址
social0: Github || https://github.com/sxqsfun || fab fa-github
social1: E-Mail || mailto:78528291@qq.com || fa fa-envelope


# 友情链接设置
# 显示标题
# Show title

# 友情链接地址
links:
  #link0: Hugo-NexT || https://gitee.com/hugo-next/hugo-theme-next
  #link1: 凡梦星尘空间站 || https://lisenhui.cn

# 站点开始年份默认为当下时间的年份
since: 2019

# 国内 ICP 备案和公安网备信息
beian:
  enable: false

# 站点支持供应商列表
vendors:
  enable: false

# 文章的在线编辑
postEdit:
  enable: false

# 右上角在 Github 上面关注我的横幅
githubBanner:
  enable: false

根基

必须知道的常识

我们都是必死的生物

我们都忽视了自己是必死的生物,我们才会有如是的行动。 死亡是行动唯一的动力来源。

生命是一个谜

再多的理性分析也都是一个谜。不要过多放纵于理性的执念,一切的烦恼都是庸人自扰!

异常一

dockerd 启动提示:(docker0): networks have same bridge name

原因分析

使用 docker-compose 的方式部署时,默认的网络模式是bridge , 默认网段是172.17.0.1/16,即docker0。 自动生成的网桥会依次使用:172.18.x.x ,172.19.x.x…. 这些docker生成的网段可能与内网网段有冲突。

方法一:用官方迁移工具KDTS

同事告知,用KDTS,从mysql迁移到人大金仓数据库没问题。 但从人大金仓数据库迁移到mysql会失败,原因未明。 KDTS工具为安装人大金仓数据库自带,没有独立版本。 docker版本的人大金仓数据库没有此公具。

问题

echarts热力图渲染数据超过2万会感觉明显卡顿

解决办法

后端通过网格将数据聚合,压缩数据量

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
    // 网格聚合核心方法
    public static JSONArray gridAggregate(JSONArray points, int xGridSize, int yGridSize) throws JSONException {

        if(points.size() <= 20000){
            return points;
        }

        // 1. 计算坐标范围
        double minX = 0, maxX = 0, minY = 0, maxY = 0;

        for (int i = 0; i < points.size(); i++) {
            JSONArray point = points.getJSONArray(i);
            double x = point.getDouble(0);
            double y = point.getDouble(1);
            if(i == 0){
                minX = x;
                maxX = x;
                minY = y;
                maxY = y;
            }else{
                minX = Math.min(minX, x);
                maxX = Math.max(maxX, x);
                minY = Math.min(minY, y);
                maxY = Math.max(maxY, y);
            }
        }

        // 2. 初始化网格容器 (使用网格坐标作为Key)
        TreeMap<String, List<Double>> gridMap = new TreeMap<>();
        double gridWidth = (maxX - minX) / xGridSize;
        double gridHeight = (maxY - minY) / yGridSize;

        // 3. 点分配到网格
        for (int i = 0; i < points.size(); i++) {
            JSONArray point = points.getJSONArray(i);
            double x = point.getDouble(0);
            double y = point.getDouble(1);
            double value = point.getDouble(2);

            int gridX = (int) ((x - minX) / gridWidth);
            int gridY = (int) ((y - minY) / gridHeight);
            String gridKey = gridX + "_" + gridY;

            gridMap.computeIfAbsent(gridKey, k -> new ArrayList<>()).add(value);
        }

        // 4. 生成聚合数据 (使用平均值策略)
        JSONArray aggregatedData = new JSONArray();
        for (Map.Entry<String, List<Double>> entry : gridMap.entrySet()) {
            String[] keys = entry.getKey().split("_");
            int gridX = Integer.parseInt(keys[0]);
            int gridY = Integer.parseInt(keys[1]);

            // 计算网格中心坐标
            double centerX = minX + (gridX + 0.5) * gridWidth;
            double centerY = minY + (gridY + 0.5) * gridHeight;

            // 计算平均值
            double avgValue = entry.getValue().stream()
                    .mapToDouble(Double::doubleValue)
                    .average()
                    .orElse(0.0);

            // 构建新数据点 [x, y, value]
            JSONArray newPoint = new JSONArray();
            newPoint.put(new BigDecimal(centerX).setScale(2, RoundingMode.DOWN).intValue());
            newPoint.put(new BigDecimal(centerY).setScale(2, RoundingMode.DOWN).doubleValue());
            newPoint.put(new BigDecimal(avgValue).setScale(6, RoundingMode.DOWN).doubleValue());

            aggregatedData.put(newPoint);
        }

        //System.out.println("原始点数: " + points.size());
        //System.out.println("聚合后点数: " + aggregatedData.size());

        aggregatedData.sort((o1, o2) -> {
            JSONArray points1 = (JSONArray) o1;
            JSONArray points2 = (JSONArray) o2;
            return points1.getInt(0).compareTo(points2.getInt(0));
        });

        return aggregatedData;
    }

使用Dconf Editor

打开Dconf Editor,导航到 org -> gnome -> desktop -> break-reminders, 然后选择 eyesight 或 movement(分别对应短时间休息和长时间休息)。 在该路径下,可以设置 interval-seconds 来调整休息时间间隔