diff --git a/2021/01/01/software/install/how-to-install-android-studio/index.html b/2021/01/01/software/install/how-to-install-android-studio/index.html index 5ab4fcf7..7c6164f6 100644 --- a/2021/01/01/software/install/how-to-install-android-studio/index.html +++ b/2021/01/01/software/install/how-to-install-android-studio/index.html @@ -7,7 +7,7 @@ - + @@ -56,7 +56,7 @@ isHome: false, isHighlightShrink: false, isToc: true, - postUpdate: '2024-10-26 20:08:10' + postUpdate: '2024-10-29 20:47:38' }

Android Studio安装笔记

Android Studio安装笔记

简单记录一下Android Studio安装

+ })(window)

Android Studio安装笔记

文章作者: Arthur Ming
文章链接: http://blog.damingerdai.com/2021/01/01/software/install/how-to-install-android-studio/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Damingerdai's Blog
\ No newline at end of file +
文章作者: Arthur Ming
文章链接: http://blog.damingerdai.com/2021/01/01/software/install/how-to-install-android-studio/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Damingerdai's Blog
\ No newline at end of file diff --git a/2021/01/01/software/k8s/how-to-install-minkube/index.html b/2021/01/01/software/k8s/how-to-install-minkube/index.html index 1762c7a6..745634e4 100644 --- a/2021/01/01/software/k8s/how-to-install-minkube/index.html +++ b/2021/01/01/software/k8s/how-to-install-minkube/index.html @@ -7,7 +7,7 @@ - + @@ -59,7 +59,7 @@ isHome: false, isHighlightShrink: false, isToc: true, - postUpdate: '2024-10-26 20:08:10' + postUpdate: '2024-10-29 20:47:38' }

在Ubuntu 18.04.5 LTS上安装minkube

在Ubuntu 18.04.5 LTS上安装minkube

要求

    + })(window)

    在Ubuntu 18.04.5 LTS上安装minkube

    在Ubuntu 18.04.5 LTS上安装minkube

    要求

    1. 2 CPUs or more
    2. 2GB内存
    3. 20G空间
    4. @@ -216,4 +216,4 @@

      登录
      1
      eyJhbGciOiJSUzI1NiIsImtpZCI6Imk0TWpNeGM3SWVrMHllMVphM0FPVFZIZ2RIaXZIbll2UzZObkJSZTZ5MUEifQ.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlLXN5c3RlbSIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJkZWZhdWx0LXRva2VuLXR2bWJ0Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQubmFtZSI6ImRlZmF1bHQiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC51aWQiOiJiZDI3YzljZS0wZWY2LTQ0YTAtYThmNC0xYTg2ZWMxN2JmNTQiLCJzdWIiOiJzeXN0ZW06c2VydmljZWFjY291bnQ6a3ViZS1zeXN0ZW06ZGVmYXVsdCJ9.UjlNOPi95jsxtbGXVu6t3LK-1kOjlcLk7_qVPhDEmYD9so5BLnosS6Z_nBfpO2aU5xxMZMMvkTIydMKVTgftzeFpUZ7_ANsqjZ17Z2EnzUxhzkBU9USU3294APU4Gxep1yb4uyetRtIozdsd39-TlMwoCkHb4aGbluZiT64AkbDS6v7PhONaaCIKTT6hxvo4PEiyau_fEKCfI6rsWdcoOWlKLeXOwqGW1tHgIZEPR7Eln8NA52fAOvHyPp5DSKgD3L2qGDAlQNXCFCrB2bc7-xBEEBjeDXOhTIl1sUX6gmhEzp0XFH20JZaSJysvW1ZQGsv_AXj-4PX8Egv1kq1txA

      附录

      recommended.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
      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
      84
      85
      86
      87
      88
      89
      90
      91
      92
      93
      94
      95
      96
      97
      98
      99
      100
      101
      102
      103
      104
      105
      106
      107
      108
      109
      110
      111
      112
      113
      114
      115
      116
      117
      118
      119
      120
      121
      122
      123
      124
      125
      126
      127
      128
      129
      130
      131
      132
      133
      134
      135
      136
      137
      138
      139
      140
      141
      142
      143
      144
      145
      146
      147
      148
      149
      150
      151
      152
      153
      154
      155
      156
      157
      158
      159
      160
      161
      162
      163
      164
      165
      166
      167
      168
      169
      170
      171
      172
      173
      174
      175
      176
      177
      178
      179
      180
      181
      182
      183
      184
      185
      186
      187
      188
      189
      190
      191
      192
      193
      194
      195
      196
      197
      198
      199
      200
      201
      202
      203
      204
      205
      206
      207
      208
      209
      210
      211
      212
      213
      214
      215
      216
      217
      218
      219
      220
      221
      222
      223
      224
      225
      226
      227
      228
      229
      230
      231
      232
      233
      234
      235
      236
      237
      238
      239
      240
      241
      242
      243
      244
      245
      246
      247
      248
      249
      250
      251
      252
      253
      254
      255
      256
      257
      258
      259
      260
      261
      262
      263
      264
      265
      266
      267
      268
      269
      270
      271
      272
      273
      274
      275
      276
      277
      278
      279
      280
      281
      282
      283
      284
      285
      286
      287
      288
      289
      290
      291
      292
      293
      294
      295
      296
      297
      298
      299
      300
      301
      302
      # Copyright 2017 The Kubernetes Authors.
      #
      # Licensed under the Apache License, Version 2.0 (the "License");
      # you may not use this file except in compliance with the License.
      # You may obtain a copy of the License at
      #
      # http://www.apache.org/licenses/LICENSE-2.0
      #
      # Unless required by applicable law or agreed to in writing, software
      # distributed under the License is distributed on an "AS IS" BASIS,
      # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
      # See the License for the specific language governing permissions and
      # limitations under the License.

      apiVersion: v1
      kind: Namespace
      metadata:
      name: kubernetes-dashboard

      ---

      apiVersion: v1
      kind: ServiceAccount
      metadata:
      labels:
      k8s-app: kubernetes-dashboard
      name: kubernetes-dashboard
      namespace: kubernetes-dashboard

      ---

      kind: Service
      apiVersion: v1
      metadata:
      labels:
      k8s-app: kubernetes-dashboard
      name: kubernetes-dashboard
      namespace: kubernetes-dashboard
      spec:
      ports:
      - port: 443
      targetPort: 8443
      selector:
      k8s-app: kubernetes-dashboard

      ---

      apiVersion: v1
      kind: Secret
      metadata:
      labels:
      k8s-app: kubernetes-dashboard
      name: kubernetes-dashboard-certs
      namespace: kubernetes-dashboard
      type: Opaque

      ---

      apiVersion: v1
      kind: Secret
      metadata:
      labels:
      k8s-app: kubernetes-dashboard
      name: kubernetes-dashboard-csrf
      namespace: kubernetes-dashboard
      type: Opaque
      data:
      csrf: ""

      ---

      apiVersion: v1
      kind: Secret
      metadata:
      labels:
      k8s-app: kubernetes-dashboard
      name: kubernetes-dashboard-key-holder
      namespace: kubernetes-dashboard
      type: Opaque

      ---

      kind: ConfigMap
      apiVersion: v1
      metadata:
      labels:
      k8s-app: kubernetes-dashboard
      name: kubernetes-dashboard-settings
      namespace: kubernetes-dashboard

      ---

      kind: Role
      apiVersion: rbac.authorization.k8s.io/v1
      metadata:
      labels:
      k8s-app: kubernetes-dashboard
      name: kubernetes-dashboard
      namespace: kubernetes-dashboard
      rules:
      # Allow Dashboard to get, update and delete Dashboard exclusive secrets.
      - apiGroups: [""]
      resources: ["secrets"]
      resourceNames: ["kubernetes-dashboard-key-holder", "kubernetes-dashboard-certs", "kubernetes-dashboard-csrf"]
      verbs: ["get", "update", "delete"]
      # Allow Dashboard to get and update 'kubernetes-dashboard-settings' config map.
      - apiGroups: [""]
      resources: ["configmaps"]
      resourceNames: ["kubernetes-dashboard-settings"]
      verbs: ["get", "update"]
      # Allow Dashboard to get metrics.
      - apiGroups: [""]
      resources: ["services"]
      resourceNames: ["heapster", "dashboard-metrics-scraper"]
      verbs: ["proxy"]
      - apiGroups: [""]
      resources: ["services/proxy"]
      resourceNames: ["heapster", "http:heapster:", "https:heapster:", "dashboard-metrics-scraper", "http:dashboard-metrics-scraper"]
      verbs: ["get"]

      ---

      kind: ClusterRole
      apiVersion: rbac.authorization.k8s.io/v1
      metadata:
      labels:
      k8s-app: kubernetes-dashboard
      name: kubernetes-dashboard
      rules:
      # Allow Metrics Scraper to get metrics from the Metrics server
      - apiGroups: ["metrics.k8s.io"]
      resources: ["pods", "nodes"]
      verbs: ["get", "list", "watch"]

      ---

      apiVersion: rbac.authorization.k8s.io/v1
      kind: RoleBinding
      metadata:
      labels:
      k8s-app: kubernetes-dashboard
      name: kubernetes-dashboard
      namespace: kubernetes-dashboard
      roleRef:
      apiGroup: rbac.authorization.k8s.io
      kind: Role
      name: kubernetes-dashboard
      subjects:
      - kind: ServiceAccount
      name: kubernetes-dashboard
      namespace: kubernetes-dashboard

      ---

      apiVersion: rbac.authorization.k8s.io/v1
      kind: ClusterRoleBinding
      metadata:
      name: kubernetes-dashboard
      roleRef:
      apiGroup: rbac.authorization.k8s.io
      kind: ClusterRole
      name: kubernetes-dashboard
      subjects:
      - kind: ServiceAccount
      name: kubernetes-dashboard
      namespace: kubernetes-dashboard

      ---

      kind: Deployment
      apiVersion: apps/v1
      metadata:
      labels:
      k8s-app: kubernetes-dashboard
      name: kubernetes-dashboard
      namespace: kubernetes-dashboard
      spec:
      replicas: 1
      revisionHistoryLimit: 10
      selector:
      matchLabels:
      k8s-app: kubernetes-dashboard
      template:
      metadata:
      labels:
      k8s-app: kubernetes-dashboard
      spec:
      containers:
      - name: kubernetes-dashboard
      image: kubernetesui/dashboard:v2.0.3
      imagePullPolicy: Always
      ports:
      - containerPort: 8443
      protocol: TCP
      args:
      - --auto-generate-certificates
      - --namespace=kubernetes-dashboard
      # Uncomment the following line to manually specify Kubernetes API server Host
      # If not specified, Dashboard will attempt to auto discover the API server and connect
      # to it. Uncomment only if the default does not work.
      # - --apiserver-host=http://my-address:port
      volumeMounts:
      - name: kubernetes-dashboard-certs
      mountPath: /certs
      # Create on-disk volume to store exec logs
      - mountPath: /tmp
      name: tmp-volume
      livenessProbe:
      httpGet:
      scheme: HTTPS
      path: /
      port: 8443
      initialDelaySeconds: 30
      timeoutSeconds: 30
      securityContext:
      allowPrivilegeEscalation: false
      readOnlyRootFilesystem: true
      runAsUser: 1001
      runAsGroup: 2001
      volumes:
      - name: kubernetes-dashboard-certs
      secret:
      secretName: kubernetes-dashboard-certs
      - name: tmp-volume
      emptyDir: {}
      serviceAccountName: kubernetes-dashboard
      nodeSelector:
      "kubernetes.io/os": linux
      # Comment the following tolerations if Dashboard must not be deployed on master
      tolerations:
      - key: node-role.kubernetes.io/master
      effect: NoSchedule

      ---

      kind: Service
      apiVersion: v1
      metadata:
      labels:
      k8s-app: dashboard-metrics-scraper
      name: dashboard-metrics-scraper
      namespace: kubernetes-dashboard
      spec:
      ports:
      - port: 8000
      targetPort: 8000
      selector:
      k8s-app: dashboard-metrics-scraper

      ---

      kind: Deployment
      apiVersion: apps/v1
      metadata:
      labels:
      k8s-app: dashboard-metrics-scraper
      name: dashboard-metrics-scraper
      namespace: kubernetes-dashboard
      spec:
      replicas: 1
      revisionHistoryLimit: 10
      selector:
      matchLabels:
      k8s-app: dashboard-metrics-scraper
      template:
      metadata:
      labels:
      k8s-app: dashboard-metrics-scraper
      annotations:
      seccomp.security.alpha.kubernetes.io/pod: 'runtime/default'
      spec:
      containers:
      - name: dashboard-metrics-scraper
      image: kubernetesui/metrics-scraper:v1.0.4
      ports:
      - containerPort: 8000
      protocol: TCP
      livenessProbe:
      httpGet:
      scheme: HTTP
      path: /
      port: 8000
      initialDelaySeconds: 30
      timeoutSeconds: 30
      volumeMounts:
      - mountPath: /tmp
      name: tmp-volume
      securityContext:
      allowPrivilegeEscalation: false
      readOnlyRootFilesystem: true
      runAsUser: 1001
      runAsGroup: 2001
      serviceAccountName: kubernetes-dashboard
      nodeSelector:
      "kubernetes.io/os": linux
      # Comment the following tolerations if Dashboard must not be deployed on master
      tolerations:
      - key: node-role.kubernetes.io/master
      effect: NoSchedule
      volumes:
      - name: tmp-volume
      emptyDir: {}
    文章作者: Arthur Ming
    文章链接: http://blog.damingerdai.com/2021/01/01/software/k8s/how-to-install-minkube/
    版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Damingerdai's Blog
    \ No newline at end of file +
    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
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
    243
    244
    245
    246
    247
    248
    249
    250
    251
    252
    253
    254
    255
    256
    257
    258
    259
    260
    261
    262
    263
    264
    265
    266
    267
    268
    269
    270
    271
    272
    273
    274
    275
    276
    277
    278
    279
    280
    281
    282
    283
    284
    285
    286
    287
    288
    289
    290
    291
    292
    293
    294
    295
    296
    297
    298
    299
    300
    301
    302
    # Copyright 2017 The Kubernetes Authors.
    #
    # Licensed under the Apache License, Version 2.0 (the "License");
    # you may not use this file except in compliance with the License.
    # You may obtain a copy of the License at
    #
    # http://www.apache.org/licenses/LICENSE-2.0
    #
    # Unless required by applicable law or agreed to in writing, software
    # distributed under the License is distributed on an "AS IS" BASIS,
    # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    # See the License for the specific language governing permissions and
    # limitations under the License.

    apiVersion: v1
    kind: Namespace
    metadata:
    name: kubernetes-dashboard

    ---

    apiVersion: v1
    kind: ServiceAccount
    metadata:
    labels:
    k8s-app: kubernetes-dashboard
    name: kubernetes-dashboard
    namespace: kubernetes-dashboard

    ---

    kind: Service
    apiVersion: v1
    metadata:
    labels:
    k8s-app: kubernetes-dashboard
    name: kubernetes-dashboard
    namespace: kubernetes-dashboard
    spec:
    ports:
    - port: 443
    targetPort: 8443
    selector:
    k8s-app: kubernetes-dashboard

    ---

    apiVersion: v1
    kind: Secret
    metadata:
    labels:
    k8s-app: kubernetes-dashboard
    name: kubernetes-dashboard-certs
    namespace: kubernetes-dashboard
    type: Opaque

    ---

    apiVersion: v1
    kind: Secret
    metadata:
    labels:
    k8s-app: kubernetes-dashboard
    name: kubernetes-dashboard-csrf
    namespace: kubernetes-dashboard
    type: Opaque
    data:
    csrf: ""

    ---

    apiVersion: v1
    kind: Secret
    metadata:
    labels:
    k8s-app: kubernetes-dashboard
    name: kubernetes-dashboard-key-holder
    namespace: kubernetes-dashboard
    type: Opaque

    ---

    kind: ConfigMap
    apiVersion: v1
    metadata:
    labels:
    k8s-app: kubernetes-dashboard
    name: kubernetes-dashboard-settings
    namespace: kubernetes-dashboard

    ---

    kind: Role
    apiVersion: rbac.authorization.k8s.io/v1
    metadata:
    labels:
    k8s-app: kubernetes-dashboard
    name: kubernetes-dashboard
    namespace: kubernetes-dashboard
    rules:
    # Allow Dashboard to get, update and delete Dashboard exclusive secrets.
    - apiGroups: [""]
    resources: ["secrets"]
    resourceNames: ["kubernetes-dashboard-key-holder", "kubernetes-dashboard-certs", "kubernetes-dashboard-csrf"]
    verbs: ["get", "update", "delete"]
    # Allow Dashboard to get and update 'kubernetes-dashboard-settings' config map.
    - apiGroups: [""]
    resources: ["configmaps"]
    resourceNames: ["kubernetes-dashboard-settings"]
    verbs: ["get", "update"]
    # Allow Dashboard to get metrics.
    - apiGroups: [""]
    resources: ["services"]
    resourceNames: ["heapster", "dashboard-metrics-scraper"]
    verbs: ["proxy"]
    - apiGroups: [""]
    resources: ["services/proxy"]
    resourceNames: ["heapster", "http:heapster:", "https:heapster:", "dashboard-metrics-scraper", "http:dashboard-metrics-scraper"]
    verbs: ["get"]

    ---

    kind: ClusterRole
    apiVersion: rbac.authorization.k8s.io/v1
    metadata:
    labels:
    k8s-app: kubernetes-dashboard
    name: kubernetes-dashboard
    rules:
    # Allow Metrics Scraper to get metrics from the Metrics server
    - apiGroups: ["metrics.k8s.io"]
    resources: ["pods", "nodes"]
    verbs: ["get", "list", "watch"]

    ---

    apiVersion: rbac.authorization.k8s.io/v1
    kind: RoleBinding
    metadata:
    labels:
    k8s-app: kubernetes-dashboard
    name: kubernetes-dashboard
    namespace: kubernetes-dashboard
    roleRef:
    apiGroup: rbac.authorization.k8s.io
    kind: Role
    name: kubernetes-dashboard
    subjects:
    - kind: ServiceAccount
    name: kubernetes-dashboard
    namespace: kubernetes-dashboard

    ---

    apiVersion: rbac.authorization.k8s.io/v1
    kind: ClusterRoleBinding
    metadata:
    name: kubernetes-dashboard
    roleRef:
    apiGroup: rbac.authorization.k8s.io
    kind: ClusterRole
    name: kubernetes-dashboard
    subjects:
    - kind: ServiceAccount
    name: kubernetes-dashboard
    namespace: kubernetes-dashboard

    ---

    kind: Deployment
    apiVersion: apps/v1
    metadata:
    labels:
    k8s-app: kubernetes-dashboard
    name: kubernetes-dashboard
    namespace: kubernetes-dashboard
    spec:
    replicas: 1
    revisionHistoryLimit: 10
    selector:
    matchLabels:
    k8s-app: kubernetes-dashboard
    template:
    metadata:
    labels:
    k8s-app: kubernetes-dashboard
    spec:
    containers:
    - name: kubernetes-dashboard
    image: kubernetesui/dashboard:v2.0.3
    imagePullPolicy: Always
    ports:
    - containerPort: 8443
    protocol: TCP
    args:
    - --auto-generate-certificates
    - --namespace=kubernetes-dashboard
    # Uncomment the following line to manually specify Kubernetes API server Host
    # If not specified, Dashboard will attempt to auto discover the API server and connect
    # to it. Uncomment only if the default does not work.
    # - --apiserver-host=http://my-address:port
    volumeMounts:
    - name: kubernetes-dashboard-certs
    mountPath: /certs
    # Create on-disk volume to store exec logs
    - mountPath: /tmp
    name: tmp-volume
    livenessProbe:
    httpGet:
    scheme: HTTPS
    path: /
    port: 8443
    initialDelaySeconds: 30
    timeoutSeconds: 30
    securityContext:
    allowPrivilegeEscalation: false
    readOnlyRootFilesystem: true
    runAsUser: 1001
    runAsGroup: 2001
    volumes:
    - name: kubernetes-dashboard-certs
    secret:
    secretName: kubernetes-dashboard-certs
    - name: tmp-volume
    emptyDir: {}
    serviceAccountName: kubernetes-dashboard
    nodeSelector:
    "kubernetes.io/os": linux
    # Comment the following tolerations if Dashboard must not be deployed on master
    tolerations:
    - key: node-role.kubernetes.io/master
    effect: NoSchedule

    ---

    kind: Service
    apiVersion: v1
    metadata:
    labels:
    k8s-app: dashboard-metrics-scraper
    name: dashboard-metrics-scraper
    namespace: kubernetes-dashboard
    spec:
    ports:
    - port: 8000
    targetPort: 8000
    selector:
    k8s-app: dashboard-metrics-scraper

    ---

    kind: Deployment
    apiVersion: apps/v1
    metadata:
    labels:
    k8s-app: dashboard-metrics-scraper
    name: dashboard-metrics-scraper
    namespace: kubernetes-dashboard
    spec:
    replicas: 1
    revisionHistoryLimit: 10
    selector:
    matchLabels:
    k8s-app: dashboard-metrics-scraper
    template:
    metadata:
    labels:
    k8s-app: dashboard-metrics-scraper
    annotations:
    seccomp.security.alpha.kubernetes.io/pod: 'runtime/default'
    spec:
    containers:
    - name: dashboard-metrics-scraper
    image: kubernetesui/metrics-scraper:v1.0.4
    ports:
    - containerPort: 8000
    protocol: TCP
    livenessProbe:
    httpGet:
    scheme: HTTP
    path: /
    port: 8000
    initialDelaySeconds: 30
    timeoutSeconds: 30
    volumeMounts:
    - mountPath: /tmp
    name: tmp-volume
    securityContext:
    allowPrivilegeEscalation: false
    readOnlyRootFilesystem: true
    runAsUser: 1001
    runAsGroup: 2001
    serviceAccountName: kubernetes-dashboard
    nodeSelector:
    "kubernetes.io/os": linux
    # Comment the following tolerations if Dashboard must not be deployed on master
    tolerations:
    - key: node-role.kubernetes.io/master
    effect: NoSchedule
    volumes:
    - name: tmp-volume
    emptyDir: {}
文章作者: Arthur Ming
文章链接: http://blog.damingerdai.com/2021/01/01/software/k8s/how-to-install-minkube/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Damingerdai's Blog
\ No newline at end of file diff --git a/2021/01/14/software/k8s/how-to-install-docker-desktop-k8s/index.html b/2021/01/14/software/k8s/how-to-install-docker-desktop-k8s/index.html index 28940520..9b5cd095 100644 --- a/2021/01/14/software/k8s/how-to-install-docker-desktop-k8s/index.html +++ b/2021/01/14/software/k8s/how-to-install-docker-desktop-k8s/index.html @@ -7,7 +7,7 @@ - + @@ -59,7 +59,7 @@ isHome: false, isHighlightShrink: false, isToc: true, - postUpdate: '2024-10-26 20:08:10' + postUpdate: '2024-10-29 20:47:38' }

Docker Desktop自带k8s安装笔记

Docker Desktop自带k8s安装笔记

安装一个k8s还是一个比较复杂的事情,但是Docker Desktop已经自带了一个简易版的k8s,可以基本满足正常的学习使用

+ })(window)

Docker Desktop自带k8s安装笔记

Docker Desktop自带k8s安装笔记

安装一个k8s还是一个比较复杂的事情,但是Docker Desktop已经自带了一个简易版的k8s,可以基本满足正常的学习使用

安装Docker

对于Mac用户,请点击Docker Desktop
对于Windows10用户,请点击Docker Desktop

配置docker的国内镜像

国内的网络下载可能比较慢,建议使用下面的镜像

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
{
"registry-mirrors": [
"https://dockerproxy.com",
"https://dockerhub.azk8s.cn",
"https://registry.docker-cn.com",
"https://docker.mirrors.ustc.edu.cn",
"https://mirror.baidubce.com",
"http://hub-mirror.c.163.com",
"https://uyah70su.mirror.aliyuncs.com",
"https://dockerhub.mirrors.nwafu.edu.cn",
"https://7bafc985f90c43b887a96c2b846cf984.mirror.swr.myhuaweicloud.com"
"",
],
"insecure-registries": [],
"debug": true,
"experimental": false
}
@@ -207,4 +207,4 @@

常用镜像仓库

附录

recommended.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
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
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
# Copyright 2017 The Kubernetes Authors.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

apiVersion: v1
kind: Namespace
metadata:
name: kubernetes-dashboard

---

apiVersion: v1
kind: ServiceAccount
metadata:
labels:
k8s-app: kubernetes-dashboard
name: kubernetes-dashboard
namespace: kubernetes-dashboard

---

kind: Service
apiVersion: v1
metadata:
labels:
k8s-app: kubernetes-dashboard
name: kubernetes-dashboard
namespace: kubernetes-dashboard
spec:
ports:
- port: 443
targetPort: 8443
selector:
k8s-app: kubernetes-dashboard

---

apiVersion: v1
kind: Secret
metadata:
labels:
k8s-app: kubernetes-dashboard
name: kubernetes-dashboard-certs
namespace: kubernetes-dashboard
type: Opaque

---

apiVersion: v1
kind: Secret
metadata:
labels:
k8s-app: kubernetes-dashboard
name: kubernetes-dashboard-csrf
namespace: kubernetes-dashboard
type: Opaque
data:
csrf: ""

---

apiVersion: v1
kind: Secret
metadata:
labels:
k8s-app: kubernetes-dashboard
name: kubernetes-dashboard-key-holder
namespace: kubernetes-dashboard
type: Opaque

---

kind: ConfigMap
apiVersion: v1
metadata:
labels:
k8s-app: kubernetes-dashboard
name: kubernetes-dashboard-settings
namespace: kubernetes-dashboard

---

kind: Role
apiVersion: rbac.authorization.k8s.io/v1
metadata:
labels:
k8s-app: kubernetes-dashboard
name: kubernetes-dashboard
namespace: kubernetes-dashboard
rules:
# Allow Dashboard to get, update and delete Dashboard exclusive secrets.
- apiGroups: [""]
resources: ["secrets"]
resourceNames: ["kubernetes-dashboard-key-holder", "kubernetes-dashboard-certs", "kubernetes-dashboard-csrf"]
verbs: ["get", "update", "delete"]
# Allow Dashboard to get and update 'kubernetes-dashboard-settings' config map.
- apiGroups: [""]
resources: ["configmaps"]
resourceNames: ["kubernetes-dashboard-settings"]
verbs: ["get", "update"]
# Allow Dashboard to get metrics.
- apiGroups: [""]
resources: ["services"]
resourceNames: ["heapster", "dashboard-metrics-scraper"]
verbs: ["proxy"]
- apiGroups: [""]
resources: ["services/proxy"]
resourceNames: ["heapster", "http:heapster:", "https:heapster:", "dashboard-metrics-scraper", "http:dashboard-metrics-scraper"]
verbs: ["get"]

---

kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
metadata:
labels:
k8s-app: kubernetes-dashboard
name: kubernetes-dashboard
rules:
# Allow Metrics Scraper to get metrics from the Metrics server
- apiGroups: ["metrics.k8s.io"]
resources: ["pods", "nodes"]
verbs: ["get", "list", "watch"]

---

apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
labels:
k8s-app: kubernetes-dashboard
name: kubernetes-dashboard
namespace: kubernetes-dashboard
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: Role
name: kubernetes-dashboard
subjects:
- kind: ServiceAccount
name: kubernetes-dashboard
namespace: kubernetes-dashboard

---

apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: kubernetes-dashboard
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: kubernetes-dashboard
subjects:
- kind: ServiceAccount
name: kubernetes-dashboard
namespace: kubernetes-dashboard

---

kind: Deployment
apiVersion: apps/v1
metadata:
labels:
k8s-app: kubernetes-dashboard
name: kubernetes-dashboard
namespace: kubernetes-dashboard
spec:
replicas: 1
revisionHistoryLimit: 10
selector:
matchLabels:
k8s-app: kubernetes-dashboard
template:
metadata:
labels:
k8s-app: kubernetes-dashboard
spec:
containers:
- name: kubernetes-dashboard
image: kubernetesui/dashboard:v2.0.3
imagePullPolicy: Always
ports:
- containerPort: 8443
protocol: TCP
args:
- --auto-generate-certificates
- --namespace=kubernetes-dashboard
# Uncomment the following line to manually specify Kubernetes API server Host
# If not specified, Dashboard will attempt to auto discover the API server and connect
# to it. Uncomment only if the default does not work.
# - --apiserver-host=http://my-address:port
volumeMounts:
- name: kubernetes-dashboard-certs
mountPath: /certs
# Create on-disk volume to store exec logs
- mountPath: /tmp
name: tmp-volume
livenessProbe:
httpGet:
scheme: HTTPS
path: /
port: 8443
initialDelaySeconds: 30
timeoutSeconds: 30
securityContext:
allowPrivilegeEscalation: false
readOnlyRootFilesystem: true
runAsUser: 1001
runAsGroup: 2001
volumes:
- name: kubernetes-dashboard-certs
secret:
secretName: kubernetes-dashboard-certs
- name: tmp-volume
emptyDir: {}
serviceAccountName: kubernetes-dashboard
nodeSelector:
"kubernetes.io/os": linux
# Comment the following tolerations if Dashboard must not be deployed on master
tolerations:
- key: node-role.kubernetes.io/master
effect: NoSchedule

---

kind: Service
apiVersion: v1
metadata:
labels:
k8s-app: dashboard-metrics-scraper
name: dashboard-metrics-scraper
namespace: kubernetes-dashboard
spec:
ports:
- port: 8000
targetPort: 8000
selector:
k8s-app: dashboard-metrics-scraper

---

kind: Deployment
apiVersion: apps/v1
metadata:
labels:
k8s-app: dashboard-metrics-scraper
name: dashboard-metrics-scraper
namespace: kubernetes-dashboard
spec:
replicas: 1
revisionHistoryLimit: 10
selector:
matchLabels:
k8s-app: dashboard-metrics-scraper
template:
metadata:
labels:
k8s-app: dashboard-metrics-scraper
annotations:
seccomp.security.alpha.kubernetes.io/pod: 'runtime/default'
spec:
containers:
- name: dashboard-metrics-scraper
image: kubernetesui/metrics-scraper:v1.0.4
ports:
- containerPort: 8000
protocol: TCP
livenessProbe:
httpGet:
scheme: HTTP
path: /
port: 8000
initialDelaySeconds: 30
timeoutSeconds: 30
volumeMounts:
- mountPath: /tmp
name: tmp-volume
securityContext:
allowPrivilegeEscalation: false
readOnlyRootFilesystem: true
runAsUser: 1001
runAsGroup: 2001
serviceAccountName: kubernetes-dashboard
nodeSelector:
"kubernetes.io/os": linux
# Comment the following tolerations if Dashboard must not be deployed on master
tolerations:
- key: node-role.kubernetes.io/master
effect: NoSchedule
volumes:
- name: tmp-volume
emptyDir: {}
文章作者: Arthur Ming
文章链接: http://blog.damingerdai.com/2021/01/14/software/k8s/how-to-install-docker-desktop-k8s/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Damingerdai's Blog
\ No newline at end of file +
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
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
# Copyright 2017 The Kubernetes Authors.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

apiVersion: v1
kind: Namespace
metadata:
name: kubernetes-dashboard

---

apiVersion: v1
kind: ServiceAccount
metadata:
labels:
k8s-app: kubernetes-dashboard
name: kubernetes-dashboard
namespace: kubernetes-dashboard

---

kind: Service
apiVersion: v1
metadata:
labels:
k8s-app: kubernetes-dashboard
name: kubernetes-dashboard
namespace: kubernetes-dashboard
spec:
ports:
- port: 443
targetPort: 8443
selector:
k8s-app: kubernetes-dashboard

---

apiVersion: v1
kind: Secret
metadata:
labels:
k8s-app: kubernetes-dashboard
name: kubernetes-dashboard-certs
namespace: kubernetes-dashboard
type: Opaque

---

apiVersion: v1
kind: Secret
metadata:
labels:
k8s-app: kubernetes-dashboard
name: kubernetes-dashboard-csrf
namespace: kubernetes-dashboard
type: Opaque
data:
csrf: ""

---

apiVersion: v1
kind: Secret
metadata:
labels:
k8s-app: kubernetes-dashboard
name: kubernetes-dashboard-key-holder
namespace: kubernetes-dashboard
type: Opaque

---

kind: ConfigMap
apiVersion: v1
metadata:
labels:
k8s-app: kubernetes-dashboard
name: kubernetes-dashboard-settings
namespace: kubernetes-dashboard

---

kind: Role
apiVersion: rbac.authorization.k8s.io/v1
metadata:
labels:
k8s-app: kubernetes-dashboard
name: kubernetes-dashboard
namespace: kubernetes-dashboard
rules:
# Allow Dashboard to get, update and delete Dashboard exclusive secrets.
- apiGroups: [""]
resources: ["secrets"]
resourceNames: ["kubernetes-dashboard-key-holder", "kubernetes-dashboard-certs", "kubernetes-dashboard-csrf"]
verbs: ["get", "update", "delete"]
# Allow Dashboard to get and update 'kubernetes-dashboard-settings' config map.
- apiGroups: [""]
resources: ["configmaps"]
resourceNames: ["kubernetes-dashboard-settings"]
verbs: ["get", "update"]
# Allow Dashboard to get metrics.
- apiGroups: [""]
resources: ["services"]
resourceNames: ["heapster", "dashboard-metrics-scraper"]
verbs: ["proxy"]
- apiGroups: [""]
resources: ["services/proxy"]
resourceNames: ["heapster", "http:heapster:", "https:heapster:", "dashboard-metrics-scraper", "http:dashboard-metrics-scraper"]
verbs: ["get"]

---

kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
metadata:
labels:
k8s-app: kubernetes-dashboard
name: kubernetes-dashboard
rules:
# Allow Metrics Scraper to get metrics from the Metrics server
- apiGroups: ["metrics.k8s.io"]
resources: ["pods", "nodes"]
verbs: ["get", "list", "watch"]

---

apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
labels:
k8s-app: kubernetes-dashboard
name: kubernetes-dashboard
namespace: kubernetes-dashboard
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: Role
name: kubernetes-dashboard
subjects:
- kind: ServiceAccount
name: kubernetes-dashboard
namespace: kubernetes-dashboard

---

apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: kubernetes-dashboard
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: kubernetes-dashboard
subjects:
- kind: ServiceAccount
name: kubernetes-dashboard
namespace: kubernetes-dashboard

---

kind: Deployment
apiVersion: apps/v1
metadata:
labels:
k8s-app: kubernetes-dashboard
name: kubernetes-dashboard
namespace: kubernetes-dashboard
spec:
replicas: 1
revisionHistoryLimit: 10
selector:
matchLabels:
k8s-app: kubernetes-dashboard
template:
metadata:
labels:
k8s-app: kubernetes-dashboard
spec:
containers:
- name: kubernetes-dashboard
image: kubernetesui/dashboard:v2.0.3
imagePullPolicy: Always
ports:
- containerPort: 8443
protocol: TCP
args:
- --auto-generate-certificates
- --namespace=kubernetes-dashboard
# Uncomment the following line to manually specify Kubernetes API server Host
# If not specified, Dashboard will attempt to auto discover the API server and connect
# to it. Uncomment only if the default does not work.
# - --apiserver-host=http://my-address:port
volumeMounts:
- name: kubernetes-dashboard-certs
mountPath: /certs
# Create on-disk volume to store exec logs
- mountPath: /tmp
name: tmp-volume
livenessProbe:
httpGet:
scheme: HTTPS
path: /
port: 8443
initialDelaySeconds: 30
timeoutSeconds: 30
securityContext:
allowPrivilegeEscalation: false
readOnlyRootFilesystem: true
runAsUser: 1001
runAsGroup: 2001
volumes:
- name: kubernetes-dashboard-certs
secret:
secretName: kubernetes-dashboard-certs
- name: tmp-volume
emptyDir: {}
serviceAccountName: kubernetes-dashboard
nodeSelector:
"kubernetes.io/os": linux
# Comment the following tolerations if Dashboard must not be deployed on master
tolerations:
- key: node-role.kubernetes.io/master
effect: NoSchedule

---

kind: Service
apiVersion: v1
metadata:
labels:
k8s-app: dashboard-metrics-scraper
name: dashboard-metrics-scraper
namespace: kubernetes-dashboard
spec:
ports:
- port: 8000
targetPort: 8000
selector:
k8s-app: dashboard-metrics-scraper

---

kind: Deployment
apiVersion: apps/v1
metadata:
labels:
k8s-app: dashboard-metrics-scraper
name: dashboard-metrics-scraper
namespace: kubernetes-dashboard
spec:
replicas: 1
revisionHistoryLimit: 10
selector:
matchLabels:
k8s-app: dashboard-metrics-scraper
template:
metadata:
labels:
k8s-app: dashboard-metrics-scraper
annotations:
seccomp.security.alpha.kubernetes.io/pod: 'runtime/default'
spec:
containers:
- name: dashboard-metrics-scraper
image: kubernetesui/metrics-scraper:v1.0.4
ports:
- containerPort: 8000
protocol: TCP
livenessProbe:
httpGet:
scheme: HTTP
path: /
port: 8000
initialDelaySeconds: 30
timeoutSeconds: 30
volumeMounts:
- mountPath: /tmp
name: tmp-volume
securityContext:
allowPrivilegeEscalation: false
readOnlyRootFilesystem: true
runAsUser: 1001
runAsGroup: 2001
serviceAccountName: kubernetes-dashboard
nodeSelector:
"kubernetes.io/os": linux
# Comment the following tolerations if Dashboard must not be deployed on master
tolerations:
- key: node-role.kubernetes.io/master
effect: NoSchedule
volumes:
- name: tmp-volume
emptyDir: {}
文章作者: Arthur Ming
文章链接: http://blog.damingerdai.com/2021/01/14/software/k8s/how-to-install-docker-desktop-k8s/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Damingerdai's Blog
\ No newline at end of file diff --git a/2021/02/03/front-end/simple-comparison-of-angular-and-react-build-size/index.html b/2021/02/03/front-end/simple-comparison-of-angular-and-react-build-size/index.html index 1f7c2ebb..6c47625c 100644 --- a/2021/02/03/front-end/simple-comparison-of-angular-and-react-build-size/index.html +++ b/2021/02/03/front-end/simple-comparison-of-angular-and-react-build-size/index.html @@ -7,7 +7,7 @@ - + @@ -57,7 +57,7 @@ isHome: false, isHighlightShrink: false, isToc: true, - postUpdate: '2024-10-26 20:08:10' + postUpdate: '2024-10-29 20:47:38' }

Angular和React构建体积简单对比

Angular和React构建体积简单对比

前言

Angular是我主要使用的前端框架, 和React是我最近正在学习的前端框架。今天我想对比一下在各自默认的情况下,两者打包体积的对比。

+ })(window)

Angular和React构建体积简单对比

Angular和React构建体积简单对比

前言

Angular是我主要使用的前端框架, 和React是我最近正在学习的前端框架。今天我想对比一下在各自默认的情况下,两者打包体积的对比。

Angular

创建

我们使用Angular CLI: 11.1.2简单创建一个angular项目:

1
2
3
4
5
ng new daming-angular-app

# ? Do you want to enforce stricter type checking and stricter bundle budgets in the workspace? Y
# ? Would you like to add Angular routing? Y
# ? Which stylesheet format would you like to use? CSS
@@ -226,4 +226,4 @@

由此可知,从finder角度来说,打包的总体积为138.80kB。

总结

通过上面简单的对比,在各自默认的创建、构建方式下,react在打包体积大小方面比angular更具优势。但是在实际开发中,我们都会使用大量的第三方的依赖,实际项目的打包体积大小还是需要因人而异的。

源代码已经上传到github

-
文章作者: Arthur Ming
文章链接: http://blog.damingerdai.com/2021/02/03/front-end/simple-comparison-of-angular-and-react-build-size/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Damingerdai's Blog
\ No newline at end of file +
文章作者: Arthur Ming
文章链接: http://blog.damingerdai.com/2021/02/03/front-end/simple-comparison-of-angular-and-react-build-size/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Damingerdai's Blog
\ No newline at end of file diff --git a/2021/05/13/front-end/build-angular-on-windows-01/index.html b/2021/05/13/front-end/build-angular-on-windows-01/index.html index 9efa0ace..89dbb0e7 100644 --- a/2021/05/13/front-end/build-angular-on-windows-01/index.html +++ b/2021/05/13/front-end/build-angular-on-windows-01/index.html @@ -7,7 +7,7 @@ - + @@ -57,7 +57,7 @@ isHome: false, isHighlightShrink: false, isToc: true, - postUpdate: '2024-10-26 20:08:10' + postUpdate: '2024-10-29 20:47:38' }

在windows上构建angular项目(上)

在windows上构建angular项目 (上)

前端三大框架( angular, reac, vue )中,angular一直都是一个很独特的存在。首先,angular的概念很多,服务、依赖注入、模块,指令等,都是在前端圈不是很常用的,此外,angular使用了bazel作为构建工具,而react和vue都是使用了rollup,因此在本地编译构建angular将会远远超过react和vue,如果你是用的windows平台,那么一个个坑需要自己慢慢来填。。。

+ })(window)

在windows上构建angular项目(上)

在windows上构建angular项目 (上)

前端三大框架( angular, reac, vue )中,angular一直都是一个很独特的存在。首先,angular的概念很多,服务、依赖注入、模块,指令等,都是在前端圈不是很常用的,此外,angular使用了bazel作为构建工具,而react和vue都是使用了rollup,因此在本地编译构建angular将会远远超过react和vue,如果你是用的windows平台,那么一个个坑需要自己慢慢来填。。。

Bazel是什么?

根据官网的定义,Bazel是类似于Make,Maven和Gradle的开源构建和测试工具。它使用人类可读的高级构建语言Starlark(一种基于python的方言)。 Bazel支持多种语言的项目,并为多种平台构建输出。

从我个人角度来看,bazel是一个强大且复杂的构建系统,通过build rule的概念,支持多种语言、不同平台,支持构建C/C++,Java,Android,IOS,Golang,Nodejs,Docker项目

安装

Bazel官方支持Windows,macOS, Ubuntu Linux三大平台,这也是开发人员比较常用的本地开发平台。

@@ -201,4 +201,4 @@

总结

当完成以上步骤的时候,我们基本上就可以开始尝试在windows本地进行编译angular。

-
文章作者: Arthur Ming
文章链接: http://blog.damingerdai.com/2021/05/13/front-end/build-angular-on-windows-01/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Damingerdai's Blog
\ No newline at end of file +
文章作者: Arthur Ming
文章链接: http://blog.damingerdai.com/2021/05/13/front-end/build-angular-on-windows-01/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Damingerdai's Blog
\ No newline at end of file diff --git a/2021/05/17/front-end/build-angular-on-windows-02/index.html b/2021/05/17/front-end/build-angular-on-windows-02/index.html index e0e85520..1643ed15 100644 --- a/2021/05/17/front-end/build-angular-on-windows-02/index.html +++ b/2021/05/17/front-end/build-angular-on-windows-02/index.html @@ -7,7 +7,7 @@ - + @@ -57,7 +57,7 @@ isHome: false, isHighlightShrink: false, isToc: true, - postUpdate: '2024-10-26 20:08:10' + postUpdate: '2024-10-29 20:47:38' }

在windows上构建angular项目(上)

在windows上构建angular项目 (下)

当完成bazel的安装之后,我们还需要安装nodejs就可以开始编译angular了。

+ })(window)

在windows上构建angular项目(上)

在windows上构建angular项目 (下)

当完成bazel的安装之后,我们还需要安装nodejs就可以开始编译angular了。

Nodejs

目前angular仅支持nodejs12和nodejs14这两个版本,推荐使用node14这个版本。

对于windows平台而言,nodejs可以直接从官网选择windows平台的二进制包下载,然后进行点击安装就可以了,但是我个人更推荐使用nvm-windows

nvm-windows

nvm-windows是windows平台上常用的node版本管理工具,可以方便我们针对不同项目的要求切换不同的node版本。点击该链接,下载最新安装包,然后点击安装。

@@ -214,4 +214,4 @@

结果dist\zone.js-dist目录下的是zone.js

总结

到此,windows上编译angular就算是完成了。angular使用bazel作为编译工具,确实导致编译的成本高了很多,尤其是在windows平台,但是不停探索的过程,是一个不断学习的过程。这个过程,不挣钱,就是交个朋友。

-
文章作者: Arthur Ming
文章链接: http://blog.damingerdai.com/2021/05/17/front-end/build-angular-on-windows-02/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Damingerdai's Blog
\ No newline at end of file +
文章作者: Arthur Ming
文章链接: http://blog.damingerdai.com/2021/05/17/front-end/build-angular-on-windows-02/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Damingerdai's Blog
\ No newline at end of file diff --git a/2021/07/03/front-end/ts-optional-chaining/index.html b/2021/07/03/front-end/ts-optional-chaining/index.html index 798b7b66..c5a7507e 100644 --- a/2021/07/03/front-end/ts-optional-chaining/index.html +++ b/2021/07/03/front-end/ts-optional-chaining/index.html @@ -7,7 +7,7 @@ - + @@ -56,7 +56,7 @@ isHome: false, isHighlightShrink: false, isToc: true, - postUpdate: '2024-10-26 20:08:10' + postUpdate: '2024-10-29 20:47:38' }

TypeScript中可选链

TypeScript中可选链

什么是可选链

TypeScript 3.7中一个最引人关注的特性便是可选链(Optional Chaining)。

+ })(window)

TypeScript中可选链

TypeScript中可选链

什么是可选链

TypeScript 3.7中一个最引人关注的特性便是可选链(Optional Chaining)。

所谓可选链,就是当我们试图使用访问对象的字段或者方法时,如果对象为null或者undefined,TypeScript将会自动停止运行的代码,以防止空指针异常。

可选链的使用

首先定义一个接口 A, 有一个字段b,b可能是字符串,也可能是null:

1
2
3
interface A {
b: string | null
}
@@ -195,4 +195,4 @@

参考JS: The difference between “undefined”, “null” and “void 0”
  • 可选链操作符
  • -

    文章作者: Arthur Ming
    文章链接: http://blog.damingerdai.com/2021/07/03/front-end/ts-optional-chaining/
    版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Damingerdai's Blog
    \ No newline at end of file +
    文章作者: Arthur Ming
    文章链接: http://blog.damingerdai.com/2021/07/03/front-end/ts-optional-chaining/
    版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Damingerdai's Blog
    \ No newline at end of file diff --git a/2021/07/31/software/install/how-to-install-homebrew/index.html b/2021/07/31/software/install/how-to-install-homebrew/index.html index 20fe48c0..8522a640 100644 --- a/2021/07/31/software/install/how-to-install-homebrew/index.html +++ b/2021/07/31/software/install/how-to-install-homebrew/index.html @@ -7,7 +7,7 @@ - + @@ -57,7 +57,7 @@ isHome: false, isHighlightShrink: false, isToc: true, - postUpdate: '2024-10-26 20:08:10' + postUpdate: '2024-10-29 20:47:38' }

    Homebrew安装笔记

    Homebrew安装笔记

    简单记录一下Homebrew安装

    + })(window)

    Homebrew安装笔记

    文章作者: Arthur Ming
    文章链接: http://blog.damingerdai.com/2021/07/31/software/install/how-to-install-homebrew/
    版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Damingerdai's Blog
    \ No newline at end of file +
    文章作者: Arthur Ming
    文章链接: http://blog.damingerdai.com/2021/07/31/software/install/how-to-install-homebrew/
    版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Damingerdai's Blog
    \ No newline at end of file diff --git a/2021/08/22/front-end/build-typescript-with-bazel/index.html b/2021/08/22/front-end/build-typescript-with-bazel/index.html index 44e3a1a0..fc218a4b 100644 --- a/2021/08/22/front-end/build-typescript-with-bazel/index.html +++ b/2021/08/22/front-end/build-typescript-with-bazel/index.html @@ -7,7 +7,7 @@ - + @@ -57,7 +57,7 @@ isHome: false, isHighlightShrink: false, isToc: true, - postUpdate: '2024-10-26 20:08:10' + postUpdate: '2024-10-29 20:47:38' }

    使用Bazel编译TypeScript

    使用Bazel编译TypeScript

    准备

    请事先安装Nodejs,Yarn 1.xBazel

    + })(window)

    使用Bazel编译TypeScript

    使用Bazel编译TypeScript

    准备

    请事先安装Nodejs,Yarn 1.xBazel

    我使用的版本为:

    1. Nodejs: v14.17.3
    2. @@ -209,4 +209,4 @@

      编译
      1
      node  bazel-bin/src/index.js

      输出结果为:

      -
      1
      helle daming

    文章作者: Arthur Ming
    文章链接: http://blog.damingerdai.com/2021/08/22/front-end/build-typescript-with-bazel/
    版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Damingerdai's Blog
    \ No newline at end of file +
    1
    helle daming
    文章作者: Arthur Ming
    文章链接: http://blog.damingerdai.com/2021/08/22/front-end/build-typescript-with-bazel/
    版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Damingerdai's Blog
    \ No newline at end of file diff --git a/2021/10/20/front-end/node-docker-template/index.html b/2021/10/20/front-end/node-docker-template/index.html index f53a6176..71a45b37 100644 --- a/2021/10/20/front-end/node-docker-template/index.html +++ b/2021/10/20/front-end/node-docker-template/index.html @@ -7,7 +7,7 @@ - + @@ -57,7 +57,7 @@ isHome: false, isHighlightShrink: false, isToc: true, - postUpdate: '2024-10-26 20:08:10' + postUpdate: '2024-10-29 20:47:38' }

    Nodejs项目的Dockerfile模版

    Nodejs项目的Dockerfile模版

    基于Yarn

    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
    FROM node:14.17.6-alpine3.14 as build

    # 取消对https的证书限制
    # ENV SELF_SIGNED_CERT_IN_CHAIN=true
    # ENV NODE_TLS_REJECT_UNAUTHORIZED=0
    # RUN npm config set strict-ssl false
    # RUN yarn config set strict-ssl false

    RUN apk update && apk add bash

    COPY package.json yarn.lock .npmrc /tmp/
    RUN cd /tmp && yarn install --frozen-lockfile --non-interactive
    RUN mkdir -p /app && cp -a /tmp/node_modules /app/

    WORKDIR /app
    COPY . /app
    RUN yarn build


    FROM build AS ci
    WORKDIR /app
    RUN yarn run test:ci && yarn install --frozen-lockfile --non-interactive --production

    FROM node:14.17.6-alpine3.14 as release

    RUN mkdir -p /app && \
    addgroup -S daminggroup && \
    adduser -S -h /app -G daminggroup daminguser && \
    chown -R daminguser:daminggroup /app

    WORKDIR /app
    COPY --from=ci --chown=daminguser:daminggroup /app/dist ./dist
    COPY --from=ci --chown=daminguser:daminggroup /app/node_modules ./node_modules
    COPY --from=ci --chown=daminguser:daminggroup /app/package.json .

    HEALTHCHECK --interval=30s --timeout=30s CMD curl -f http://localhost:3978/ping || exit 1
    EXPOSE 3978
    CMD ["sh", "-c", "node dist/index.js"]
    + })(window)

    Nodejs项目的Dockerfile模版

    Nodejs项目的Dockerfile模版

    基于Yarn

    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
    FROM node:14.17.6-alpine3.14 as build

    # 取消对https的证书限制
    # ENV SELF_SIGNED_CERT_IN_CHAIN=true
    # ENV NODE_TLS_REJECT_UNAUTHORIZED=0
    # RUN npm config set strict-ssl false
    # RUN yarn config set strict-ssl false

    RUN apk update && apk add bash

    COPY package.json yarn.lock .npmrc /tmp/
    RUN cd /tmp && yarn install --frozen-lockfile --non-interactive
    RUN mkdir -p /app && cp -a /tmp/node_modules /app/

    WORKDIR /app
    COPY . /app
    RUN yarn build


    FROM build AS ci
    WORKDIR /app
    RUN yarn run test:ci && yarn install --frozen-lockfile --non-interactive --production

    FROM node:14.17.6-alpine3.14 as release

    RUN mkdir -p /app && \
    addgroup -S daminggroup && \
    adduser -S -h /app -G daminggroup daminguser && \
    chown -R daminguser:daminggroup /app

    WORKDIR /app
    COPY --from=ci --chown=daminguser:daminggroup /app/dist ./dist
    COPY --from=ci --chown=daminguser:daminggroup /app/node_modules ./node_modules
    COPY --from=ci --chown=daminguser:daminggroup /app/package.json .

    HEALTHCHECK --interval=30s --timeout=30s CMD curl -f http://localhost:3978/ping || exit 1
    EXPOSE 3978
    CMD ["sh", "-c", "node dist/index.js"]
    -

    基于NPM

    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
    FROM node:14.17.6-alpine3.14 as build

    # pwc network limit
    # ENV SELF_SIGNED_CERT_IN_CHAIN=true
    # ENV NODE_TLS_REJECT_UNAUTHORIZED=0
    # RUN npm config set strict-ssl false
    # RUN yarn config set strict-ssl false

    RUN apk update && apk add bash

    COPY package.json package-lock.json .npmrc /tmp/
    RUN cd /tmp && npm install
    RUN mkdir -p /app && cp -a /tmp/node_modules /app/

    WORKDIR /app
    COPY . /app
    RUN npm run build


    FROM build AS ci
    WORKDIR /app
    RUN npm run test:ci && npm install --production --ignore-scripts true

    FROM node:14.17.6-alpine3.14 as release

    RUN mkdir -p /app && \
    addgroup -S daminggroup && \
    adduser -S -h /app -G daminggroup daminguser && \
    chown -R daminguser:daminggroup /app

    WORKDIR /app
    COPY --from=ci --chown=daminguser:daminggroup /app/dist ./dist
    COPY --from=ci --chown=daminguser:daminggroup /app/node_modules ./node_modules
    COPY --from=ci --chown=daminguser:daminggroup /app/package.json .

    HEALTHCHECK --interval=30s --timeout=30s CMD curl -f http://localhost:3978/ping || exit 1
    EXPOSE 3978
    CMD ["sh", "-c", "node dist/index.js"]
    文章作者: Arthur Ming
    文章链接: http://blog.damingerdai.com/2021/10/20/front-end/node-docker-template/
    版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Damingerdai's Blog
    \ No newline at end of file +

    基于NPM

    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
    FROM node:14.17.6-alpine3.14 as build

    # pwc network limit
    # ENV SELF_SIGNED_CERT_IN_CHAIN=true
    # ENV NODE_TLS_REJECT_UNAUTHORIZED=0
    # RUN npm config set strict-ssl false
    # RUN yarn config set strict-ssl false

    RUN apk update && apk add bash

    COPY package.json package-lock.json .npmrc /tmp/
    RUN cd /tmp && npm install
    RUN mkdir -p /app && cp -a /tmp/node_modules /app/

    WORKDIR /app
    COPY . /app
    RUN npm run build


    FROM build AS ci
    WORKDIR /app
    RUN npm run test:ci && npm install --production --ignore-scripts true

    FROM node:14.17.6-alpine3.14 as release

    RUN mkdir -p /app && \
    addgroup -S daminggroup && \
    adduser -S -h /app -G daminggroup daminguser && \
    chown -R daminguser:daminggroup /app

    WORKDIR /app
    COPY --from=ci --chown=daminguser:daminggroup /app/dist ./dist
    COPY --from=ci --chown=daminguser:daminggroup /app/node_modules ./node_modules
    COPY --from=ci --chown=daminguser:daminggroup /app/package.json .

    HEALTHCHECK --interval=30s --timeout=30s CMD curl -f http://localhost:3978/ping || exit 1
    EXPOSE 3978
    CMD ["sh", "-c", "node dist/index.js"]
    文章作者: Arthur Ming
    文章链接: http://blog.damingerdai.com/2021/10/20/front-end/node-docker-template/
    版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Damingerdai's Blog
    \ No newline at end of file diff --git a/2021/10/29/back-end/gradle-ali-mirror/index.html b/2021/10/29/back-end/gradle-ali-mirror/index.html index 41e33a5a..15db0aed 100644 --- a/2021/10/29/back-end/gradle-ali-mirror/index.html +++ b/2021/10/29/back-end/gradle-ali-mirror/index.html @@ -7,7 +7,7 @@ - + @@ -56,7 +56,7 @@ isHome: false, isHighlightShrink: false, isToc: true, - postUpdate: '2024-10-26 20:08:10' + postUpdate: '2024-10-29 20:47:38' }

    Gradle配置阿里镜像

    Gradle配置阿里镜像

    为了加快gradle的国内下载的速度,我们可以为gradle配置阿里仓库的镜像

    + })(window)

    Gradle配置阿里镜像

    Gradle配置阿里镜像

    为了加快gradle的国内下载的速度,我们可以为gradle配置阿里仓库的镜像

    请在gradle的安装目录下的init.d的文件夹下添加init.gradle:

    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
    gradle.projectsLoaded {
    rootProject.allprojects {
    buildscript {
    repositories {
    def JCENTER_URL = 'https://maven.aliyun.com/repository/public'
    def GOOGLE_URL = 'https://maven.aliyun.com/repository/google'
    def NEXUS_URL = 'https://maven.aliyun.com/repository/central'
    all { ArtifactRepository repo ->
    if (repo instanceof MavenArtifactRepository) {
    def url = repo.url.toString()
    if (url.startsWith('https://jcenter.bintray.com/')) {
    project.logger.lifecycle "Repository ${repo.url} replaced by $JCENTER_URL."
    println("buildscript ${repo.url} replaced by $JCENTER_URL.")
    remove repo
    }
    else if (url.startsWith('https://dl.google.com/dl/android/maven2/')) {
    project.logger.lifecycle "Repository ${repo.url} replaced by $GOOGLE_URL."
    println("buildscript ${repo.url} replaced by $GOOGLE_URL.")
    remove repo
    }
    else if (url.startsWith('https://repo1.maven.org/maven2')) {
    project.logger.lifecycle "Repository ${repo.url} replaced by $REPOSITORY_URL."
    println("buildscript ${repo.url} replaced by $REPOSITORY_URL.")
    remove repo
    }
    }
    }
    jcenter {
    url JCENTER_URL
    }
    google {
    url GOOGLE_URL
    }
    maven {
    url NEXUS_URL
    }
    }
    }
    repositories {
    def JCENTER_URL = 'https://maven.aliyun.com/repository/public'
    def GOOGLE_URL = 'https://maven.aliyun.com/repository/google'
    def NEXUS_URL = 'https://maven.aliyun.com/repository/central'
    all { ArtifactRepository repo ->
    if (repo instanceof MavenArtifactRepository) {
    def url = repo.url.toString()
    if (url.startsWith('https://jcenter.bintray.com/')) {
    project.logger.lifecycle "Repository ${repo.url} replaced by $JCENTER_URL."
    println("buildscript ${repo.url} replaced by $JCENTER_URL.")
    remove repo
    }
    else if (url.startsWith('https://dl.google.com/dl/android/maven2/')) {
    project.logger.lifecycle "Repository ${repo.url} replaced by $GOOGLE_URL."
    println("buildscript ${repo.url} replaced by $GOOGLE_URL.")
    remove repo
    }
    else if (url.startsWith('https://repo1.maven.org/maven2')) {
    project.logger.lifecycle "Repository ${repo.url} replaced by $REPOSITORY_URL."
    println("buildscript ${repo.url} replaced by $REPOSITORY_URL.")
    remove repo
    }
    }
    }
    jcenter {
    url JCENTER_URL
    }
    google {
    url GOOGLE_URL
    }
    maven {
    url NEXUS_URL
    }
    }
    }
    }
    @@ -180,4 +180,4 @@

    参考如何构建 Spring 源码环境?
  • 阿里云云效 Maven
  • -

    文章作者: Arthur Ming
    文章链接: http://blog.damingerdai.com/2021/10/29/back-end/gradle-ali-mirror/
    版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Damingerdai's Blog
    \ No newline at end of file +
    文章作者: Arthur Ming
    文章链接: http://blog.damingerdai.com/2021/10/29/back-end/gradle-ali-mirror/
    版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Damingerdai's Blog
    \ No newline at end of file diff --git a/2021/11/29/back-end/migrate-springdoc-from-springfox/index.html b/2021/11/29/back-end/migrate-springdoc-from-springfox/index.html index 5f10bf0e..e15a103a 100644 --- a/2021/11/29/back-end/migrate-springdoc-from-springfox/index.html +++ b/2021/11/29/back-end/migrate-springdoc-from-springfox/index.html @@ -7,7 +7,7 @@ - + @@ -59,7 +59,7 @@ isHome: false, isHighlightShrink: false, isToc: true, - postUpdate: '2024-10-26 20:08:10' + postUpdate: '2024-10-29 20:47:38' }

    从springfox迁移到springdoc

    前言

    之所以考虑从springfox迁移到springdoc是因为我的开源项目hoteler在升级到spring boot 2.6之后,UT的CI/CD挂了:

    + })(window)

    从springfox迁移到springdoc

    前言

    之所以考虑从springfox迁移到springdoc是因为我的开源项目hoteler在升级到spring boot 2.6之后,UT的CI/CD挂了:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    HotelerApplicationTests > contextLoads() FAILED
    java.lang.IllegalStateException at DefaultCacheAwareContextLoaderDelegate.java:132
    Caused by: org.springframework.context.ApplicationContextException at DefaultLifecycleProcessor.java:181
    Caused by: java.lang.NullPointerException at WebMvcPatternsRequestConditionWrapper.java:56

    ErrorPropTest > setErrors() FAILED
    java.lang.IllegalStateException at DefaultCacheAwareContextLoaderDelegate.java:132
    Caused by: org.springframework.context.ApplicationContextException at DefaultLifecycleProcessor.java:181
    Caused by: java.lang.NullPointerException at WebMvcPatternsRequestConditionWrapper.java:56

    ... more

    在一番定位和谷歌之后,在Spring 5.3/Spring Boot 2.4 supportspring boot升级2.6.0。启动报错 原因详见:springfox/springfox#3462中的提示下,猜测是springfox未升级导致的不兼容导致的问题。本来计划等待springfox官方自行升级,结果一看github的提价记录,springfox从2020年10月14号之后就在也没有更新代码了,因此决定,从springfox迁移到springdoc

    @@ -243,4 +243,4 @@

    效果

    swagger-ui

    Github

    feat: 从springfox迁移到springdoc以及修复AuthenticationFilter过滤失败的问题

    -
    文章作者: Arthur Ming
    文章链接: http://blog.damingerdai.com/2021/11/29/back-end/migrate-springdoc-from-springfox/
    版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Damingerdai's Blog
    \ No newline at end of file +
    文章作者: Arthur Ming
    文章链接: http://blog.damingerdai.com/2021/11/29/back-end/migrate-springdoc-from-springfox/
    版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Damingerdai's Blog
    \ No newline at end of file diff --git a/2021/12/15/front-end/log-migrate-apollo-server-v3/index.html b/2021/12/15/front-end/log-migrate-apollo-server-v3/index.html index 41a26190..b4e209d3 100644 --- a/2021/12/15/front-end/log-migrate-apollo-server-v3/index.html +++ b/2021/12/15/front-end/log-migrate-apollo-server-v3/index.html @@ -7,7 +7,7 @@ - + @@ -58,7 +58,7 @@ isHome: false, isHighlightShrink: false, isToc: true, - postUpdate: '2024-10-26 20:08:10' + postUpdate: '2024-10-29 20:47:38' }

    记录一次迁移Apollo Server V3的过程

    记录一次迁移Apollo Server V3的过程

    前言

    Apollo Server V3出来也快半年了,是时候把express-postgres-ts-starter的graphql部分升级了。

    + })(window)

    记录一次迁移Apollo Server V3的过程

    记录一次迁移Apollo Server V3的过程

    前言

    Apollo Server V3出来也快半年了,是时候把express-postgres-ts-starter的graphql部分升级了。

    使用dependabot帮助更新版本

    dependabot是一个github的工具(似乎也支持gitlab,但是我不确定),用于检测repo依赖安全性,同时也可以帮助我定期更新repo的依赖版本。

    这是我的dependabot的配置文件:

    1
    2
    3
    4
    5
    6
    7
    version: 2
    updates:
    - package-ecosystem: npm
    directory: '/'
    schedule:
    interval: weekly
    open-pull-requests-limit: 10
    @@ -202,4 +202,4 @@

    1
    2
    3
    4
    const app = express();
    const server = new ApolloServer({...});
    await server.start();
    server.applyMiddleware({ app });

    结束

    现在可以在浏览器打开GraphQL Playground, 以express-postgres-ts-starter为例,使用http://127.0.0.1:3000/graphql就可以看到效果了。

    -

    文章作者: Arthur Ming
    文章链接: http://blog.damingerdai.com/2021/12/15/front-end/log-migrate-apollo-server-v3/
    版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Damingerdai's Blog
    \ No newline at end of file +
    文章作者: Arthur Ming
    文章链接: http://blog.damingerdai.com/2021/12/15/front-end/log-migrate-apollo-server-v3/
    版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Damingerdai's Blog
    \ No newline at end of file diff --git a/2021/12/31/summary/2022/index.html b/2021/12/31/summary/2022/index.html index 811d148e..536b9f44 100644 --- a/2021/12/31/summary/2022/index.html +++ b/2021/12/31/summary/2022/index.html @@ -7,7 +7,7 @@ - +

    2022年度总结

    2022年度总结

    2022年真的是一个让人难以忘怀的年份,尤其在先后经历了上海封城、老丈人去世、领证结婚。

    + })(window)

    2022年度总结

    2022年度总结

    2022年真的是一个让人难以忘怀的年份,尤其在先后经历了上海封城、老丈人去世、领证结婚。

    疫情

    还记得2020年疫情刚开始的时候,那时侯自己一个人开车回上海,路上的车辆非常少,开车的感觉真的可以说非常爽,完全可以闭着眼开车,反正看不到车,即使进了上海市区。那个时候单纯的想,少则三个月,多则半年,疫情就会自然而然的过去,到时候我们该吃吃该喝喝。虽然这个判断翻车了,但是2021年也是对国内疫情还是比较乐观。但是2022年的上海封城打破了我所有的幻想。我从来没想过上海居然玩砸了“动态清理”,从华亭宾馆开始,上海的疫情持续不断,感染人数死活都下不去。

    3月份我刚搬到南翔就被封控了,但是我刚开始还好,虽然什么吃的都没有,但是只要封控时间到了就能出去买点东西。但遗憾的是,从4月份开始,上海开始静默了,我足足封在家里差不多两个月。我本来是不反对封城的,但是上海市政府真的很让人失望,疫情两年了,市政府似乎没有做好任何相关封城的预案。而且总感觉可能涉及到二十大的高层安排,市政府决策层应该是存在分歧的,并且和医疗系统的人也存在一定的隔阂。由于上层的问题,基层机构出现各种乱七八糟的事儿那也能理解了。

    在经过了白纸运动之后,我们的防疫政策从一个极端走向另外一个极端。我们彻底放开了,让80%以上的人感染了一遍。我不是反对放开,但是我比较反对如此毫无征兆的放开,没有准备好各种的退烧药,没有准备好口罩。

    @@ -184,4 +184,4 @@

    技术今年其实还是探索了很多的技术。比如minio, harbor, drone, gogsgitea

    个人生活

    今天对我最大的事儿就是结婚了,没有比举办婚礼更重要的事儿了。本来由于收到上半年疫情的影响,原来不指望今年结婚的。本来定的日子是明年的正月办酒席,但是丈母娘觉得今年的夏天那么热,冬天一定很会冷,希望我们今年就是把事儿办了。所以婚期提前到11月份举行,本来日子选的好好的,也没啥好纠结的,毕竟妹子是自己谈的。但是明天和意外你永远都不知道哪个先来,我老丈人在婚礼的前两天去世了。在婚礼前的几个礼拜,我老丈人生病了,是便秘导致的肠梗阻。在医院治疗了一段时间本来已经治好了,但是不知道是医院的水平问题还是我老丈人本身的问题,在治疗过程中可能没有控制好糖尿病导致肺部感染, 在icu躺了几天之后终究将抢救无效去世,年仅50岁。在殡仪馆里,我看到同批火化的人中就属我老丈人最年轻。有的时间真的感觉世事无常,国庆节回去的时候,老丈人还好好的,结果才过去一个月不到,人就没了。

    展望未来

    对2023年这个经济判断是真的不太好说,谁也不知道明年会怎么想,我也不敢瞎说,我只能我大概率会重点关注·DeFi·。然后希望能够保住就业,保住现金流。

    -
    文章作者: Arthur Ming
    文章链接: http://blog.damingerdai.com/2021/12/31/summary/2022/
    版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Damingerdai's Blog
    \ No newline at end of file +
    文章作者: Arthur Ming
    文章链接: http://blog.damingerdai.com/2021/12/31/summary/2022/
    版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Damingerdai's Blog
    \ No newline at end of file diff --git a/2022/01/17/software/k8s/how-to-install-minkube-on-mac/index.html b/2022/01/17/software/k8s/how-to-install-minkube-on-mac/index.html index e69c8715..0bffaaa1 100644 --- a/2022/01/17/software/k8s/how-to-install-minkube-on-mac/index.html +++ b/2022/01/17/software/k8s/how-to-install-minkube-on-mac/index.html @@ -7,7 +7,7 @@ - + @@ -59,7 +59,7 @@ isHome: false, isHighlightShrink: false, isToc: true, - postUpdate: '2024-10-26 20:08:10' + postUpdate: '2024-10-29 20:47:38' }

    Mac版minikube安装笔记

    Mac版minikube安装笔记

    minikube是一个专注于让Kubernetes更加容易学习和开发的本地Kubernetes。
    只需要Docker或者虚拟机环境,我们便可以通过minikube start就能快速启动Kubernetes。

    + })(window)

    Mac版minikube安装笔记

    文章作者: Arthur Ming
    文章链接: http://blog.damingerdai.com/2022/01/17/software/k8s/how-to-install-minkube-on-mac/
    版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Damingerdai's Blog
    \ No newline at end of file +
    文章作者: Arthur Ming
    文章链接: http://blog.damingerdai.com/2022/01/17/software/k8s/how-to-install-minkube-on-mac/
    版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Damingerdai's Blog
    \ No newline at end of file diff --git a/2022/03/23/back-end/two-easy-ways-to-use-local-docker-images-in-minikube/index.html b/2022/03/23/back-end/two-easy-ways-to-use-local-docker-images-in-minikube/index.html index 30e82551..dc871d71 100644 --- a/2022/03/23/back-end/two-easy-ways-to-use-local-docker-images-in-minikube/index.html +++ b/2022/03/23/back-end/two-easy-ways-to-use-local-docker-images-in-minikube/index.html @@ -7,7 +7,7 @@ - + @@ -58,7 +58,7 @@ isHome: false, isHighlightShrink: false, isToc: true, - postUpdate: '2024-10-26 20:08:10' + postUpdate: '2024-10-29 20:47:38' }

    两种在Minikube中运行本地Docker镜像的简单方式

    两种在Minikube中运行本地Docker镜像的简单方式

    前言

    本文将分享两种在Minikube中运行本地Docker镜像的简单方式

    + })(window)

    两种在Minikube中运行本地Docker镜像的简单方式

    文章作者: Arthur Ming
    文章链接: http://blog.damingerdai.com/2022/03/23/back-end/two-easy-ways-to-use-local-docker-images-in-minikube/
    版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Damingerdai's Blog
    \ No newline at end of file +
    文章作者: Arthur Ming
    文章链接: http://blog.damingerdai.com/2022/03/23/back-end/two-easy-ways-to-use-local-docker-images-in-minikube/
    版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Damingerdai's Blog
    \ No newline at end of file diff --git a/2022/04/16/back-end/github-action-push-docker-image-to-github-packages/index.html b/2022/04/16/back-end/github-action-push-docker-image-to-github-packages/index.html index 3a2d6834..70bf9cae 100644 --- a/2022/04/16/back-end/github-action-push-docker-image-to-github-packages/index.html +++ b/2022/04/16/back-end/github-action-push-docker-image-to-github-packages/index.html @@ -7,7 +7,7 @@ - + @@ -58,7 +58,7 @@ isHome: false, isHighlightShrink: false, isToc: true, - postUpdate: '2024-10-26 20:08:10' + postUpdate: '2024-10-29 20:47:38' }

    使用github action推送到docker的镜像仓库

    准备

    请在github的设置页面上创建一个token,并确保有以下的权限:

    + })(window)

    使用github action推送到docker的镜像仓库

    文章作者: Arthur Ming
    文章链接: http://blog.damingerdai.com/2022/04/16/back-end/github-action-push-docker-image-to-github-packages/
    版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Damingerdai's Blog
    \ No newline at end of file +
    文章作者: Arthur Ming
    文章链接: http://blog.damingerdai.com/2022/04/16/back-end/github-action-push-docker-image-to-github-packages/
    版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Damingerdai's Blog
    \ No newline at end of file diff --git a/2022/05/15/software/install/drone-gogs-docker-devops/index.html b/2022/05/15/software/install/drone-gogs-docker-devops/index.html index 907b5761..a7f26936 100644 --- a/2022/05/15/software/install/drone-gogs-docker-devops/index.html +++ b/2022/05/15/software/install/drone-gogs-docker-devops/index.html @@ -7,7 +7,7 @@ - + @@ -58,7 +58,7 @@ isHome: false, isHighlightShrink: false, isToc: true, - postUpdate: '2024-10-26 20:08:10' + postUpdate: '2024-10-29 20:47:38' }

    drone + gogs + docker实现持续自动化部署

    准备

    我们使用docker-compose来安装gogs和drone。

    + })(window)

    drone + gogs + docker实现持续自动化部署

    准备

    我们使用docker-compose来安装gogs和drone。

    首先我们准备数据库,gogs支持mysql,postgres, sqlite, sql server和TiDB。
    这里我们选择使用postgre:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    version: '3'
    services:
    postgres:
    image: postgres:14.2
    container_name: postgres
    ports:
    - 5432:5432
    volumes:
    - ./postgres:/var/lib/postgresql/data
    environment:
    POSTGRES_USER: postgres
    POSTGRES_PASSWORD: 123456
    POSTGRES_DB: postgres
    networks:
    - ci-network

    networks:
    ci-network:
    external: true
    @@ -253,4 +253,4 @@

    Drone 教程
  • 轻量快速的CI工具Drone快速入门
  • -

    文章作者: Arthur Ming
    文章链接: http://blog.damingerdai.com/2022/05/15/software/install/drone-gogs-docker-devops/
    版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Damingerdai's Blog
    \ No newline at end of file +
    文章作者: Arthur Ming
    文章链接: http://blog.damingerdai.com/2022/05/15/software/install/drone-gogs-docker-devops/
    版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Damingerdai's Blog
    \ No newline at end of file diff --git a/2022/05/15/software/k8s/k3s-install-with-docker/index.html b/2022/05/15/software/k8s/k3s-install-with-docker/index.html index 1d65a7ba..f639e34f 100644 --- a/2022/05/15/software/k8s/k3s-install-with-docker/index.html +++ b/2022/05/15/software/k8s/k3s-install-with-docker/index.html @@ -7,7 +7,7 @@ - + @@ -59,7 +59,7 @@ isHome: false, isHighlightShrink: false, isToc: true, - postUpdate: '2024-10-26 20:08:10' + postUpdate: '2024-10-29 20:47:38' }

    K3S安装的时候默认使用docker

    K3S安装的时候默认使用docker

    问题

    k8s在1.20之后就弃用docker的运行时了,所以k3s也开始默认使用containerd作为默认的运行时。
    这导致一个问题。那就是k3s无法访问本地docker镜像。

    + })(window)

    K3S安装的时候默认使用docker

    K3S安装的时候默认使用docker

    问题

    k8s在1.20之后就弃用docker的运行时了,所以k3s也开始默认使用containerd作为默认的运行时。
    这导致一个问题。那就是k3s无法访问本地docker镜像。

    解决方案

    一种解决方案就是使用containerd的镜像,而不是docker。还有一种方式是在安装时就指定k3s使用docker作为运行环境。

    1
    2
    /usr/local/bin/k3s-uninstall.sh
    curl -sfL https://get.k3s.io | sh -s - server --docker

    国内用户,可以使用以下方法加速安装:

    1
    curl -sfL https://rancher-mirror.rancher.cn/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn sh -s - server --docker
    -
    文章作者: Arthur Ming
    文章链接: http://blog.damingerdai.com/2022/05/15/software/k8s/k3s-install-with-docker/
    版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Damingerdai's Blog
    \ No newline at end of file +
    文章作者: Arthur Ming
    文章链接: http://blog.damingerdai.com/2022/05/15/software/k8s/k3s-install-with-docker/
    版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Damingerdai's Blog
    \ No newline at end of file diff --git a/2022/06/09/front-end/angular-standalone-components-app/index.html b/2022/06/09/front-end/angular-standalone-components-app/index.html index d949869f..890415c4 100644 --- a/2022/06/09/front-end/angular-standalone-components-app/index.html +++ b/2022/06/09/front-end/angular-standalone-components-app/index.html @@ -7,7 +7,7 @@ - + @@ -56,7 +56,7 @@ isHome: false, isHighlightShrink: false, isToc: true, - postUpdate: '2024-10-26 20:08:10' + postUpdate: '2024-10-29 20:47:38' }

    Angular独立组件简单体验

    Angular独立组件简单体验

    前言

    Angular 14一项令人兴奋的特性就是Angular的独立组件终于来了。

    + })(window)

    Angular独立组件简单体验

    Angular独立组件简单体验

    前言

    Angular 14一项令人兴奋的特性就是Angular的独立组件终于来了。

    在Angular 14中, 开发者可以尝试使用独立组件开发各种组件,但是值得注意的是Angular独立组件的API仍然没有稳定下,将来可能存在一些破坏性更新,所以不推荐在生产环境中使用。

    如何创建一个独立组件

    对于已有的组件,我们可以在@Component()中添加standalone: true的标识,然后我们可以在没有@NgModule()的情况下直接使用imports导入其他模块了。
    如果是新建组件,可以使用ng generate component <name> --standalone的命令,直接创建一个独立组件, 例如:

    1
    ng generate component button-list --standalone
    @@ -225,4 +225,4 @@

    Getting started with standalone components
  • Angular Material
  • -

    文章作者: Arthur Ming
    文章链接: http://blog.damingerdai.com/2022/06/09/front-end/angular-standalone-components-app/
    版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Damingerdai's Blog
    \ No newline at end of file +
    文章作者: Arthur Ming
    文章链接: http://blog.damingerdai.com/2022/06/09/front-end/angular-standalone-components-app/
    版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Damingerdai's Blog
    \ No newline at end of file diff --git a/2022/06/18/back-end/add-ssl-for-ingress/index.html b/2022/06/18/back-end/add-ssl-for-ingress/index.html index 3ce2e2dd..bd70c00d 100644 --- a/2022/06/18/back-end/add-ssl-for-ingress/index.html +++ b/2022/06/18/back-end/add-ssl-for-ingress/index.html @@ -7,7 +7,7 @@ - + @@ -58,7 +58,7 @@ isHome: false, isHighlightShrink: false, isToc: true, - postUpdate: '2024-10-26 20:08:10' + postUpdate: '2024-10-29 20:47:38' }

    给Ingress上配置ssl证书

    给Ingress上配置ssl证书

    创建secret

    1
    2
    3
    4
    kubectl create secret tls [secretName]  --cert=[pem文件路径] --key=[key文件路径] --namespace [namespace] -o yaml --dry-run=client > ingress-default-cert.yaml


    kubectl apply -f ingress-default-cert.yaml
    + })(window)

    给Ingress上配置ssl证书

    给Ingress上配置ssl证书

    创建secret

    1
    2
    3
    4
    kubectl create secret tls [secretName]  --cert=[pem文件路径] --key=[key文件路径] --namespace [namespace] -o yaml --dry-run=client > ingress-default-cert.yaml


    kubectl apply -f ingress-default-cert.yaml

    Ingress添加证书

    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
    apiVersion: networking.k8s.io/v1beta1
    kind: Ingress
    metadata:
    name: [ingress-name]
    namespace: [namespace] # ingress要和secret在同一个名称空间下
    annotations:
    kubernetes.io/ingress.class: traefik
    traefik.frontend.rule.type: PathPrefixStrip
    # http 重定向到 https
    ingress.kubernetes.io/ssl-redirect: "True"
    spec:
    tls:
    - hosts:
    - xxxx.xxxx # 这里是下面要配置https的域名
    - xxxx.xxxx # 这里是下面要配置https的域名
    secretName:
    [secret-name]:
    rules:
    - host: xxx.xxx.com
    http:
    paths:
    - path: /
    pathType: Prefix
    backend:
    service:
    name: [service-name]
    port:
    number: 8080

    @@ -183,4 +183,4 @@

    为k8s集群配置SSL证书
  • k3s配置ingress使用ssl证书
  • -

    文章作者: Arthur Ming
    文章链接: http://blog.damingerdai.com/2022/06/18/back-end/add-ssl-for-ingress/
    版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Damingerdai's Blog
    \ No newline at end of file +
    文章作者: Arthur Ming
    文章链接: http://blog.damingerdai.com/2022/06/18/back-end/add-ssl-for-ingress/
    版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Damingerdai's Blog
    \ No newline at end of file diff --git a/2022/09/03/back-end/k3s-uses-letsencrypt-and-traefik-to-deploy-the-https/index.html b/2022/09/03/back-end/k3s-uses-letsencrypt-and-traefik-to-deploy-the-https/index.html index 77b02d4a..46339392 100644 --- a/2022/09/03/back-end/k3s-uses-letsencrypt-and-traefik-to-deploy-the-https/index.html +++ b/2022/09/03/back-end/k3s-uses-letsencrypt-and-traefik-to-deploy-the-https/index.html @@ -7,7 +7,7 @@ - + @@ -59,7 +59,7 @@ isHome: false, isHighlightShrink: false, isToc: true, - postUpdate: '2024-10-26 20:08:10' + postUpdate: '2024-10-29 20:47:38' }

    k3s使用Let‘s Encrypt配置https入口部署

    前言

    本文记录k3s使用letsencrypt配置ssl证书和续签。

    + })(window)

    k3s使用Let‘s Encrypt配置https入口部署

    前言

    本文记录k3s使用letsencrypt配置ssl证书和续签。

    本文使用的k3s版本为: v1.23.6+k3s1。

    安装 cert-manager

    1
    2
    3
    # 使用官网提供的配置文件一键安装
    # 如果拉取 github 资源有困难,可以从网络通畅的位置下载好粘贴过去
    $ kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.9.1/cert-manager.yaml
    @@ -220,4 +220,4 @@

    Securing NGINX-ingress
  • Documenting “context deadline exceeded” errors relating to the webhook
  • -

    文章作者: Arthur Ming
    文章链接: http://blog.damingerdai.com/2022/09/03/back-end/k3s-uses-letsencrypt-and-traefik-to-deploy-the-https/
    版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Damingerdai's Blog
    \ No newline at end of file +
    文章作者: Arthur Ming
    文章链接: http://blog.damingerdai.com/2022/09/03/back-end/k3s-uses-letsencrypt-and-traefik-to-deploy-the-https/
    版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Damingerdai's Blog
    \ No newline at end of file diff --git a/2023/01/07/web3/some-token-faucet/index.html b/2023/01/07/web3/some-token-faucet/index.html index d5f079f7..9d2bc1cf 100644 --- a/2023/01/07/web3/some-token-faucet/index.html +++ b/2023/01/07/web3/some-token-faucet/index.html @@ -7,7 +7,7 @@ - + @@ -58,7 +58,7 @@ isHome: false, isHighlightShrink: false, isToc: true, - postUpdate: '2024-10-26 20:08:10' + postUpdate: '2024-10-29 20:47:38' }

    记录一些测试币的水龙头

    记录一些测试币的水龙头

    记录一些常用的区块链水龙头,以防忘记

    + })(window)

    记录一些测试币的水龙头

    记录一些测试币的水龙头

    记录一些常用的区块链水龙头,以防忘记

    Goerli

    Goerli Testnet Faucet: 不太记得当初是怎么知道了,但是似乎永远失败…

    GOERLI FAUCET, 每天可以获取0.1 ETH(以前是可以每天领取0.25ETH), 需要使用Alchemy账号.

    Mining Faucet, 使用cpu的算力去挖矿,问题不大,可以使用。

    @@ -182,4 +182,4 @@

    polyg

    参考资料

    1. 免費取得Goerli測試幣
    -
    文章作者: Arthur Ming
    文章链接: http://blog.damingerdai.com/2023/01/07/web3/some-token-faucet/
    版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Damingerdai's Blog
    \ No newline at end of file +
    文章作者: Arthur Ming
    文章链接: http://blog.damingerdai.com/2023/01/07/web3/some-token-faucet/
    版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Damingerdai's Blog
    \ No newline at end of file diff --git a/2023/02/25/back-end/pg_dump_ssl_issues/index.html b/2023/02/25/back-end/pg_dump_ssl_issues/index.html index 21e73fdf..38e3c59b 100644 --- a/2023/02/25/back-end/pg_dump_ssl_issues/index.html +++ b/2023/02/25/back-end/pg_dump_ssl_issues/index.html @@ -7,7 +7,7 @@ - + @@ -58,7 +58,7 @@ isHome: false, isHighlightShrink: false, isToc: true, - postUpdate: '2024-10-26 20:08:10' + postUpdate: '2024-10-29 20:47:38' }

    记录使用pg_dump中遇到的ssl问题

    记录使用pg_dump中遇到的ssl问题

    问题描述

    在使用pg_dump过程中遇到的两个问题:

    + })(window)

    记录使用pg_dump中遇到的ssl问题

    文章作者: Arthur Ming
    文章链接: http://blog.damingerdai.com/2023/02/25/back-end/pg_dump_ssl_issues/
    版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Damingerdai's Blog
    \ No newline at end of file +
    文章作者: Arthur Ming
    文章链接: http://blog.damingerdai.com/2023/02/25/back-end/pg_dump_ssl_issues/
    版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Damingerdai's Blog
    \ No newline at end of file diff --git a/2023/02/26/back-end/windows_docker_port_in_use_issues/index.html b/2023/02/26/back-end/windows_docker_port_in_use_issues/index.html index 283b1c9c..21a8eab2 100644 --- a/2023/02/26/back-end/windows_docker_port_in_use_issues/index.html +++ b/2023/02/26/back-end/windows_docker_port_in_use_issues/index.html @@ -7,7 +7,7 @@ - + @@ -58,7 +58,7 @@ isHome: false, isHighlightShrink: false, isToc: true, - postUpdate: '2024-10-26 20:08:10' + postUpdate: '2024-10-29 20:47:38' }

    解决Windows下Docker启动容器时,端口被占用错误

    解决Windows下Docker启动容器时,端口被占用错误

    问题描述

    在使用docker-compose启动mysql的时候遇到一个问题:

    + })(window)

    解决Windows下Docker启动容器时,端口被占用错误

    文章作者: Arthur Ming
    文章链接: http://blog.damingerdai.com/2023/02/26/back-end/windows_docker_port_in_use_issues/
    版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Damingerdai's Blog
    \ No newline at end of file +
    文章作者: Arthur Ming
    文章链接: http://blog.damingerdai.com/2023/02/26/back-end/windows_docker_port_in_use_issues/
    版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Damingerdai's Blog
    \ No newline at end of file diff --git a/2023/04/14/back-end/how-to-user-k3s-deploy-postgresql-for-dev/index.html b/2023/04/14/back-end/how-to-user-k3s-deploy-postgresql-for-dev/index.html index dfc6d7b3..246b7b3b 100644 --- a/2023/04/14/back-end/how-to-user-k3s-deploy-postgresql-for-dev/index.html +++ b/2023/04/14/back-end/how-to-user-k3s-deploy-postgresql-for-dev/index.html @@ -7,7 +7,7 @@ - + @@ -57,7 +57,7 @@ isHome: false, isHighlightShrink: false, isToc: true, - postUpdate: '2024-10-26 20:08:10' + postUpdate: '2024-10-29 20:47:38' }

    用k3s部署PostgreSQL用于开发

    前言

    PostgreSQL是世界上最先进的开源数据库。
    本文的目的是使用k3s本地部署PostgreSQL用于本地开发使用,不具备直接上生产的能力。

    + })(window)

    用k3s部署PostgreSQL用于开发

    前言

    PostgreSQL是世界上最先进的开源数据库。
    本文的目的是使用k3s本地部署PostgreSQL用于本地开发使用,不具备直接上生产的能力。

    安装PostgreSQL

    首先准备config.yaml用于定义PostgreSQL的配置:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    apiVersion: v1
    kind: ConfigMap
    metadata:
    name: postgres-config
    namespace: default
    labels:
    app: postgres
    data:
    POSTGRES_USER: postgres
    POSTGRES_PASSWORD: '123456'
    POSTGRES_DB: postgres
    @@ -233,4 +233,4 @@

    总结

    本文实现了使用k3s部署PostgreSQL和PgBouncer,可以用于一般的本地开发坏境使用,也在docker destkop上测试通过,但是没有在minikube上测试过。

    以上资源可以在health-master-deployments-dbhealth-master-deployments-pgbouncer上获取。

    -
    文章作者: Arthur Ming
    文章链接: http://blog.damingerdai.com/2023/04/14/back-end/how-to-user-k3s-deploy-postgresql-for-dev/
    版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Damingerdai's Blog
    \ No newline at end of file +
    文章作者: Arthur Ming
    文章链接: http://blog.damingerdai.com/2023/04/14/back-end/how-to-user-k3s-deploy-postgresql-for-dev/
    版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Damingerdai's Blog
    \ No newline at end of file diff --git a/2023/07/03/hello-world/index.html b/2023/07/03/hello-world/index.html index adaf3990..582915ca 100644 --- a/2023/07/03/hello-world/index.html +++ b/2023/07/03/hello-world/index.html @@ -7,7 +7,7 @@ - +

    Hello World

    Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub.

    + })(window)

    Hello World

    Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub.

    Quick Start

    Create a new post

    1
    $ hexo new "My New Post"

    More info: Writing

    @@ -184,4 +184,4 @@

    Deploy to remote sites

    1
    $ hexo deploy

    More info: Deployment

    -
    文章作者: Arthur Ming
    文章链接: http://blog.damingerdai.com/2023/07/03/hello-world/
    版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Damingerdai's Blog
    \ No newline at end of file +
    文章作者: Arthur Ming
    文章链接: http://blog.damingerdai.com/2023/07/03/hello-world/
    版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Damingerdai's Blog
    \ No newline at end of file diff --git a/2023/08/10/front-end/how-to-use-bazel-to-build-nodejs-typescript-expressjs/index.html b/2023/08/10/front-end/how-to-use-bazel-to-build-nodejs-typescript-expressjs/index.html index 93cde3a1..f7a8fa95 100644 --- a/2023/08/10/front-end/how-to-use-bazel-to-build-nodejs-typescript-expressjs/index.html +++ b/2023/08/10/front-end/how-to-use-bazel-to-build-nodejs-typescript-expressjs/index.html @@ -7,7 +7,7 @@ - + @@ -58,7 +58,7 @@ isHome: false, isHighlightShrink: false, isToc: true, - postUpdate: '2024-10-26 20:08:10' + postUpdate: '2024-10-29 20:47:38' }

    如何使用bazel去构建基于express和typescript的nodejs项目

    前言

    Bazel 是一款类似于 Make、Maven 和 Gradle的开源构建和测试工具。它使用可读的高级构建语言,支持多种变成语言编写的项目,并且能够为多个平台进行构建。Bazel 支持构建包含多个仓库、大量开发人员的大型代码库。

    + })(window)

    如何使用bazel去构建基于express和typescript的nodejs项目

    前言

    Bazel 是一款类似于 Make、Maven 和 Gradle的开源构建和测试工具。它使用可读的高级构建语言,支持多种变成语言编写的项目,并且能够为多个平台进行构建。Bazel 支持构建包含多个仓库、大量开发人员的大型代码库。

    详细介绍可见Bazel官网

    目的

    本文的目的是使用bazel5去构建一个完整的nodejs后端项目,并不负责bazel相关知识的介绍。

    配置

    首先在package.json文件中·devDependencies·部分添加:

    @@ -240,4 +240,4 @@

    参考angular
  • feat: add bazel support
  • -

    文章作者: Arthur Ming
    文章链接: http://blog.damingerdai.com/2023/08/10/front-end/how-to-use-bazel-to-build-nodejs-typescript-expressjs/
    版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Damingerdai's Blog
    \ No newline at end of file +
    文章作者: Arthur Ming
    文章链接: http://blog.damingerdai.com/2023/08/10/front-end/how-to-use-bazel-to-build-nodejs-typescript-expressjs/
    版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Damingerdai's Blog
    \ No newline at end of file diff --git a/2023/09/27/software/k8s/horizontal-pod-autoscaler-getting-started/index.html b/2023/09/27/software/k8s/horizontal-pod-autoscaler-getting-started/index.html index 9a2a0777..2516be1a 100644 --- a/2023/09/27/software/k8s/horizontal-pod-autoscaler-getting-started/index.html +++ b/2023/09/27/software/k8s/horizontal-pod-autoscaler-getting-started/index.html @@ -7,7 +7,7 @@ - + @@ -59,7 +59,7 @@ isHome: false, isHighlightShrink: false, isToc: true, - postUpdate: '2024-10-26 20:08:10' + postUpdate: '2024-10-29 20:47:38' }

    HorizontalPodAutoscaler入门实践

    HorizontalPodAutoscaler

    在Kubernetes中,HorizontalPodAutoscaler 自动更新工作负载资源(例如Deployment或者StatefulSet),目的是自动扩缩工作负载以满足需求。水平扩缩意味着对增加的负载的响应是部署更多的 Pod。

    + })(window)

    HorizontalPodAutoscaler入门实践

    HorizontalPodAutoscaler

    在Kubernetes中,HorizontalPodAutoscaler 自动更新工作负载资源(例如Deployment或者StatefulSet),目的是自动扩缩工作负载以满足需求。水平扩缩意味着对增加的负载的响应是部署更多的 Pod。

    本文目的是通过Docker Desktop上的Kubernetes实例去实践pod的水平扩展。

    本文默认Docker Desktop上的Kubernetes已经安装完成。如果需要帮助,可以阅读Docker Desktop自带k8s安装笔记

    安装 Metrics server

    由于Docker Desktop上的Kubernetes默认并没有安装Metrics server,而HorizontalPodAutoscaler依赖通过Metrics server获取到的数据, 因此需要提前安装。

    @@ -207,4 +207,4 @@

    参考How kubernetes HPA with 2 or more metrics behaves - especially the no.of replicas calculation?
  • feat: 使用k8s的HorizontalPodAutoscaler进行水平的资源缩放
  • -

    文章作者: Arthur Ming
    文章链接: http://blog.damingerdai.com/2023/09/27/software/k8s/horizontal-pod-autoscaler-getting-started/
    版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Damingerdai's Blog
    \ No newline at end of file +
    文章作者: Arthur Ming
    文章链接: http://blog.damingerdai.com/2023/09/27/software/k8s/horizontal-pod-autoscaler-getting-started/
    版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Damingerdai's Blog
    \ No newline at end of file diff --git a/2023/12/14/software/multipass-learning/index.html b/2023/12/14/software/multipass-learning/index.html index caad28dc..3cd679f4 100644 --- a/2023/12/14/software/multipass-learning/index.html +++ b/2023/12/14/software/multipass-learning/index.html @@ -7,7 +7,7 @@ - + @@ -56,7 +56,7 @@ isHome: false, isHighlightShrink: false, isToc: true, - postUpdate: '2024-10-26 20:08:10' + postUpdate: '2024-10-29 20:47:38' }

    学习multipass笔记

    前言

    Multipass 是一个轻量虚拟机管理器,是由 Ubuntu 运营公司 Canonical 所推出的开源项目。运行环境支持 Linux、Windows、macOS。在不同的操作系统上,使用的是不同的虚拟化技术。在 Linux 上使用的是 KVM、Window 上使用 Hyper-V、macOS 中使用 HyperKit 以最小开销运行 VM,支持在笔记本模拟小型云。

    + })(window)

    学习multipass笔记

    前言

    Multipass 是一个轻量虚拟机管理器,是由 Ubuntu 运营公司 Canonical 所推出的开源项目。运行环境支持 Linux、Windows、macOS。在不同的操作系统上,使用的是不同的虚拟化技术。在 Linux 上使用的是 KVM、Window 上使用 Hyper-V、macOS 中使用 HyperKit 以最小开销运行 VM,支持在笔记本模拟小型云。

    同时,Multipass 提供了一个命令行界面来启动和管理 Linux 实例。下载一个全新的镜像需要几秒钟的时间,并且在几分钟内就可以启动并运行 VM。

    安装

    在window环境下进行部署,下载最新安装包:https://github.com/canonical/multipass/releases/

    创建vm

    创建实例

    @@ -193,4 +193,4 @@

    引用轻量虚拟机 Multipass 的部署和使用
  • Multipass - 如 Docker 般的虛擬機
  • -

    文章作者: Arthur Ming
    文章链接: http://blog.damingerdai.com/2023/12/14/software/multipass-learning/
    版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Damingerdai's Blog
    \ No newline at end of file +
    文章作者: Arthur Ming
    文章链接: http://blog.damingerdai.com/2023/12/14/software/multipass-learning/
    版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Damingerdai's Blog
    \ No newline at end of file diff --git a/2024/01/06/summary/2023/index.html b/2024/01/06/summary/2023/index.html index a73486d8..4f5487fa 100644 --- a/2024/01/06/summary/2023/index.html +++ b/2024/01/06/summary/2023/index.html @@ -7,7 +7,7 @@ - +

    2023年度总结

    2023年度总结

    2023年就这样子莫名其妙的过了,又是稀里糊涂的一年。这一年,和最爱的人去了一趟西藏,圆了她心心念念的梦想;这一年,坐了30多小时的火车,跨越千里去见证一段美好的爱情;这一年,参加了加入PWC以来第二次的线下年会,疫情总算是过去了。

    + })(window)

    2023年度总结

    2023年度总结

    2023年就这样子莫名其妙的过了,又是稀里糊涂的一年。这一年,和最爱的人去了一趟西藏,圆了她心心念念的梦想;这一年,坐了30多小时的火车,跨越千里去见证一段美好的爱情;这一年,参加了加入PWC以来第二次的线下年会,疫情总算是过去了。

    美好的西藏

    其实是先从上海到成都出发,在成都带了两天,陪她那只叫做花花的大熊猫。 其实19年时候我去过成都大熊貓繁育研究基地,那个时候还没有花花,也没有那么多的游客,当然也有可能我去的是淡季,不过总算是满足她的心愿了。吃了当地的特色,三大炮,鸡豆花,兔腿,麻婆豆腐,其实那个陈麻婆的那个夫妻肺片还是很有特色的,不辣,有点甜,和紫燕百味鸡的那个压根就不一样的。

    我们是报了一个旅行团,四个人,一个司机。除了我们之外,还有一个山东小哥,一个四川小伙。山东小哥是真的很社牛,和什么人都能聊起来,喜欢旅游,朋友圈三天两头出去玩,晒各地的美景。四川小伙是拿到美国一家博士的offer了,想在出国前能够好好放松一下。四个人一个司机,就这样子从成都沿着318国道出发了。

    去了很多地方,但是我没记住,因为这不是我热爱的,吃了很多美食,我记住了它们的味道,永远不会忘记。

    @@ -192,4 +192,4 @@

    其他参加她的大学同学的婚礼

    南京婚礼

    最后

    Time files over us, but leaves its shadow behind.

    -
    文章作者: Arthur Ming
    文章链接: http://blog.damingerdai.com/2024/01/06/summary/2023/
    版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Damingerdai's Blog
    \ No newline at end of file +
    文章作者: Arthur Ming
    文章链接: http://blog.damingerdai.com/2024/01/06/summary/2023/
    版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Damingerdai's Blog
    \ No newline at end of file diff --git a/2024/01/21/software/podman-hello-world/index.html b/2024/01/21/software/podman-hello-world/index.html index 3a06bf1e..b16e7647 100644 --- a/2024/01/21/software/podman-hello-world/index.html +++ b/2024/01/21/software/podman-hello-world/index.html @@ -7,7 +7,7 @@ - + @@ -57,7 +57,7 @@ isHome: false, isHighlightShrink: false, isToc: true, - postUpdate: '2024-10-26 20:08:10' + postUpdate: '2024-10-29 20:47:38' }

    Podman的hello world入门

    前言

    Podnam是一个符合OCI,用于在 Linux® 系统上开发、提供了与 Docker 等类似的功能来管理容器。管理和运行容器开源工具。 Podman 最初由 Red Hat® 工程师与开源社区一起开发。Podman使用 libpod 库管理整个容器生态系统。

    + })(window)

    Podman的hello world入门

    前言

    Podnam是一个符合OCI,用于在 Linux® 系统上开发、提供了与 Docker 等类似的功能来管理容器。管理和运行容器开源工具。 Podman 最初由 Red Hat® 工程师与开源社区一起开发。Podman使用 libpod 库管理整个容器生态系统。

    安装

    如果你使用Macos, 可以使用homebrew安装:

    1
    brew install podman
    @@ -213,4 +213,4 @@

    Podman “Error: no registries found in registries.conf, a registry must be provided” while logging/pulling from docker.io
  • What is Podman?
  • -

    文章作者: Arthur Ming
    文章链接: http://blog.damingerdai.com/2024/01/21/software/podman-hello-world/
    版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Damingerdai's Blog
    \ No newline at end of file +
    文章作者: Arthur Ming
    文章链接: http://blog.damingerdai.com/2024/01/21/software/podman-hello-world/
    版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Damingerdai's Blog
    \ No newline at end of file diff --git a/2024/02/11/back-end/use-bazel-build-and-run-spring-boot/index.html b/2024/02/11/back-end/use-bazel-build-and-run-spring-boot/index.html index d2bc5583..d7fbffd1 100644 --- a/2024/02/11/back-end/use-bazel-build-and-run-spring-boot/index.html +++ b/2024/02/11/back-end/use-bazel-build-and-run-spring-boot/index.html @@ -7,7 +7,7 @@ - + @@ -58,7 +58,7 @@ isHome: false, isHighlightShrink: false, isToc: true, - postUpdate: '2024-10-26 20:08:10' + postUpdate: '2024-10-29 20:47:38' }

    使用bazel构建spring boot项目

    前言

    根据官网的定义,Bazel是类似于Make,Maven和Gradle的开源构建和测试工具。它使用人类可读的高级构建语言Starlark(一种基于python的方言)。 Bazel支持多种语言的项目,并为多种平台构建输出。

    + })(window)

    使用bazel构建spring boot项目

    前言

    根据官网的定义,Bazel是类似于Make,Maven和Gradle的开源构建和测试工具。它使用人类可读的高级构建语言Starlark(一种基于python的方言)。 Bazel支持多种语言的项目,并为多种平台构建输出。

    从我个人角度来看,bazel是一个强大且复杂的构建系统,通过build rule的概念,支持多种语言、不同平台,支持构建C/C++,Java,Android,IOS,Golang,Nodejs,Docker项目

    本文的目的是使用bazel去构建并运行一个spring boot项目。

    配置bazel编译java项目

    在项目根目录中创建.bazelrc文件,设置bazel使用java17构建:

    @@ -236,4 +236,4 @@

    从springfox迁移到springdoc
  • New Java Project With Bazel
  • -

    文章作者: Arthur Ming
    文章链接: http://blog.damingerdai.com/2024/02/11/back-end/use-bazel-build-and-run-spring-boot/
    版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Damingerdai's Blog
    \ No newline at end of file +
    文章作者: Arthur Ming
    文章链接: http://blog.damingerdai.com/2024/02/11/back-end/use-bazel-build-and-run-spring-boot/
    版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Damingerdai's Blog
    \ No newline at end of file diff --git a/2024/06/09/ai/how-to-use-langchain-in-10-minutes/index.html b/2024/06/09/ai/how-to-use-langchain-in-10-minutes/index.html index 73c2a935..0d4a2506 100644 --- a/2024/06/09/ai/how-to-use-langchain-in-10-minutes/index.html +++ b/2024/06/09/ai/how-to-use-langchain-in-10-minutes/index.html @@ -7,7 +7,7 @@ - + @@ -58,7 +58,7 @@ isHome: false, isHighlightShrink: false, isToc: true, - postUpdate: '2024-10-26 20:08:10' + postUpdate: '2024-10-29 20:47:38' }

    如何在10分钟内使用LangChain

    如何在10分钟内使用LangChain

    LangChain是一个强大的Python和Javascript/Typescript库,它可以让你快速地原型化大型语言模型应用。它允许你将LLM任务链在一起(因此得名),甚至可以让你快速轻松地运行自主代理(autonomous agents)。今天,我们将介绍chain的基础知识,这样你就可以立即开始你最新的LLM项目。

    + })(window)

    如何在10分钟内使用LangChain

    如何在10分钟内使用LangChain

    LangChain是一个强大的Python和Javascript/Typescript库,它可以让你快速地原型化大型语言模型应用。它允许你将LLM任务链在一起(因此得名),甚至可以让你快速轻松地运行自主代理(autonomous agents)。今天,我们将介绍chain的基础知识,这样你就可以立即开始你最新的LLM项目。

    前言

    本文主要讨论了LangChain的使用和优势。LangChain是一个对于希望快速创建大型语言模型应用的人来说非常有用的工具。它可以在几分钟内创建链、定义提示,甚至将多个LLM调用链接在一起以创建动态的TikTok脚本。

    LangChain的优势在于其简单性和灵活性。无论你是经验丰富的开发者还是刚刚起步,LangChain的直观设计都让你能够像从未有过的那样利用大型语言模型的能力。从生成创意内容到运行自主代理,可能性是无穷无尽的。

    此外,如果你正在寻找将AI集成到你现有的工作流程或产品中,TimeSurge Labs可以提供帮助。他们专注于AI咨询、开发、内部工具和LLM托管,他们的团队致力于构建AI的未来,并帮助你的业务在这个快速变化的行业中蓬勃发展。

    @@ -236,4 +236,4 @@

    总结LangChain的力量在于其简单性和灵活性。无论你是经验丰富的开发者还是刚刚起步,LangChain的直观设计都让你能够像从未有过的那样利用大型语言模型的能力。从生成创意内容到运行自主代理,可能性是无穷无尽的。

    那么为什么等待呢?立即深入LangChain,释放你的项目中的AI潜力。如果你正在寻找将AI集成到你现有的工作流程或产品中,TimeSurge Labs在这里提供帮助。我们专注于AI咨询、开发、内部工具和LLM托管,我们的热情的AI专家团队致力于构建AI的未来,并帮助你的业务在这个快速变化的行业中蓬勃发展。今天就联系我们!

    声明

    本文翻译自How To Use LangChain in 10 Minutes

    -
    文章作者: Arthur Ming
    文章链接: http://blog.damingerdai.com/2024/06/09/ai/how-to-use-langchain-in-10-minutes/
    版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Damingerdai's Blog
    \ No newline at end of file +
    文章作者: Arthur Ming
    文章链接: http://blog.damingerdai.com/2024/06/09/ai/how-to-use-langchain-in-10-minutes/
    版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Damingerdai's Blog
    \ No newline at end of file diff --git a/2024/07/10/back-end/back-end-how-to-backup-postgres-docker-container/index.html b/2024/07/10/back-end/back-end-how-to-backup-postgres-docker-container/index.html index 03a8659c..e9b08278 100644 --- a/2024/07/10/back-end/back-end-how-to-backup-postgres-docker-container/index.html +++ b/2024/07/10/back-end/back-end-how-to-backup-postgres-docker-container/index.html @@ -7,7 +7,7 @@ - +

    使用docker-compose备份Postgres Docker容器的解决方案

    使用docker-compose备份Postgres Docker容器的解决方案

    备份

    使用pg_dumpall命令备份Postgres数据库。

    + })(window)

    使用docker-compose备份Postgres Docker容器的解决方案

    使用docker-compose备份Postgres Docker容器的解决方案

    备份

    使用pg_dumpall命令备份Postgres数据库。

    1
    docker-compose exec <postgres_service> pg_dumpall -U postgres > dump_`date +%Y-%m-%d"_"%H_%M_%S`.sql
      @@ -191,4 +191,4 @@

      恢复参考资料

      1. 使用docker-compose备份和恢复Postgres数据库
      -
    文章作者: Arthur Ming
    文章链接: http://blog.damingerdai.com/2024/07/10/back-end/back-end-how-to-backup-postgres-docker-container/
    版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Damingerdai's Blog
    \ No newline at end of file +
    文章作者: Arthur Ming
    文章链接: http://blog.damingerdai.com/2024/07/10/back-end/back-end-how-to-backup-postgres-docker-container/
    版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Damingerdai's Blog
    \ No newline at end of file diff --git a/2024/10/20/front-end/javascript-closure/index.html b/2024/10/20/front-end/javascript-closure/index.html index eb1ba006..1073742c 100644 --- a/2024/10/20/front-end/javascript-closure/index.html +++ b/2024/10/20/front-end/javascript-closure/index.html @@ -7,7 +7,7 @@ - + @@ -56,7 +56,7 @@ isHome: false, isHighlightShrink: false, isToc: true, - postUpdate: '2024-10-26 20:08:10' + postUpdate: '2024-10-29 20:47:38' }

    JavaScript中的闭包

    定义

    闭包(closure)是一个函数以及其捆绑的周边环境状态(lexical environment,词法环境)的引用的组合。换而言之,闭包让开发者可以从内部函数访问外部函数的作用域。在 JavaScript 中,闭包就是能够读取其他函数内部变量的, 闭包会随着函数的创建而被同时创建。

    + })(window)

    JavaScript中的闭包

    定义

    闭包(closure)是一个函数以及其捆绑的周边环境状态(lexical environment,词法环境)的引用的组合。换而言之,闭包让开发者可以从内部函数访问外部函数的作用域。在 JavaScript 中,闭包就是能够读取其他函数内部变量的, 闭包会随着函数的创建而被同时创建。

    作用

    本部分例子来自chatgpt

    @@ -215,4 +215,4 @@

    闭包
  • 学习Javascript闭包(Closure)
  • -

    文章作者: Arthur Ming
    文章链接: http://blog.damingerdai.com/2024/10/20/front-end/javascript-closure/
    版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Damingerdai's Blog
    \ No newline at end of file +
    文章作者: Arthur Ming
    文章链接: http://blog.damingerdai.com/2024/10/20/front-end/javascript-closure/
    版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Damingerdai's Blog
    \ No newline at end of file diff --git a/2024/10/20/front-end/mock-interview/index.html b/2024/10/20/front-end/mock-interview/index.html index 0567a3bc..3af49221 100644 --- a/2024/10/20/front-end/mock-interview/index.html +++ b/2024/10/20/front-end/mock-interview/index.html @@ -7,7 +7,7 @@ - +

    模拟面试

    敏捷开发

    敏捷开发是一种以迭代增量的方式来开发软件的流程,它注重团队协作快速反馈以及应对变化的能力。在敏捷开发中,Sprint(冲刺) 是一个核心概念。下面我为你总结了敏捷开发流程中的Sprint、迭代节奏、和时间周期:

    + })(window)

    模拟面试

    敏捷开发

    敏捷开发是一种以迭代增量的方式来开发软件的流程,它注重团队协作快速反馈以及应对变化的能力。在敏捷开发中,Sprint(冲刺) 是一个核心概念。下面我为你总结了敏捷开发流程中的Sprint、迭代节奏、和时间周期:

    1. Sprint(冲刺)

    \ No newline at end of file +
    文章作者: Arthur Ming
    文章链接: http://blog.damingerdai.com/2024/10/20/front-end/mock-interview/
    版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Damingerdai's Blog
    avatar
    Arthur Ming
    大明二代的博客
    Follow Me
    公告
    大家好,我是大明二代
    最新文章
    \ No newline at end of file diff --git a/2024/10/26/front-end/angular-mock-interview/index.html b/2024/10/26/front-end/angular-mock-interview/index.html index 4357103a..f5838c9e 100644 --- a/2024/10/26/front-end/angular-mock-interview/index.html +++ b/2024/10/26/front-end/angular-mock-interview/index.html @@ -7,8 +7,11 @@ - + + + +

    Angular的模拟面试

    前言

    本文是针对angular前端的模拟面试

    + })(window)

    Angular的模拟面试

    前言

    本文是针对angular前端的模拟面试

    问题

    前端CSS的优先级

    在 CSS 中,选择器用于选择 HTML 元素并应用样式。不同选择器的优先级(权重)决定了样式的应用顺序。以下是常用选择器类型及其优先级规则:

    1. CSS 选择器类型

      @@ -347,4 +350,4 @@

    2. 时间估算:使用故事点、任务估算和时间盒的方法来提高准确性和效率。
    3. 这些特点使敏捷开发适合快速变化的项目需求和高动态环境。

      -

    文章作者: Arthur Ming
    文章链接: http://blog.damingerdai.com/2024/10/26/front-end/angular-mock-interview/
    版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Damingerdai's Blog
    \ No newline at end of file +
    文章作者: Arthur Ming
    文章链接: http://blog.damingerdai.com/2024/10/26/front-end/angular-mock-interview/
    版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Damingerdai's Blog
    \ No newline at end of file diff --git a/2024/10/29/front-end/nodejs-mock-interview/index.html b/2024/10/29/front-end/nodejs-mock-interview/index.html new file mode 100644 index 00000000..10dce6e7 --- /dev/null +++ b/2024/10/29/front-end/nodejs-mock-interview/index.html @@ -0,0 +1,341 @@ +nodejs-mock-interview | Damingerdai's Blog + + + + + + + + + + + + + +

    nodejs-mock-interview

    CommonJS是什么

    CommonJS(简称CJS)是一种JavaScript模块化规范,最初为在服务端(如Node.js)实现模块化而设计。在CommonJS中,每个文件都被视为一个独立的模块,并通过module.exports导出和require引入其他模块,形成清晰的模块依赖结构。以下是CommonJS的几个关键点:

    +
      +
    1. 模块导出和导入:CommonJS使用module.exports导出内容,其他文件使用require导入。例如:
    2. +
    +
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    // 导出模块
    // math.js
    module.exports = {
    add: (a, b) => a + b,
    subtract: (a, b) => a - b,
    };

    // 导入模块
    const math = require('./math');
    console.log(math.add(2, 3)); // 输出5

    + +
      +
    1. 同步加载:CommonJS模块是同步加载的,这在服务端环境中是合理的,因为文件系统通常是本地的,读取速度快。但在浏览器端不适用,因为网络加载是异步的,CommonJS因此不适用于前端模块化。

      +
    2. +
    3. 模块作用域:CommonJS模块会为每个文件创建独立的作用域,因此不会污染全局命名空间。模块内定义的变量或函数不会泄露到其他模块。

      +
    4. +
    5. 在Node.js中的应用:Node.js遵循CommonJS规范,使开发者能够轻松创建模块化代码结构。CommonJS适合Node.js应用的模块化和依赖管理,但随着ECMAScript模块(ESM)的标准化,Node.js现已支持ESM标准。

      +
    6. +
    +

    CommonJS中require是怎么实现的

    在CommonJS中,require的实现是通过Node.js的Module系统来管理和加载模块的。require本质上是一个函数,用来加载模块、解析依赖、缓存已加载的模块,从而确保模块的高效加载。下面是require的实现原理分解:

    +

    1. 路径解析

      +
    • require首先会解析模块的路径,以确定该路径对应的文件位置。
    • +
    • 如果是核心模块(如fspath等),Node.js会直接加载这些模块,因为它们内置在Node.js中。
    • +
    • 如果是自定义模块或第三方库,Node.js会在node_modules目录中查找指定模块。
    • +
    • Node.js的路径解析规则是先查找本地文件,然后查找node_modules,并遵循目录层级查找(从当前目录逐层往上)。
    • +
    +

    2. 模块缓存

      +
    • Node.js会缓存已经加载的模块,保存在require.cache对象中。缓存的模块是一个Module对象,其exports属性包含模块的导出内容。
    • +
    • 如果模块已经加载并存在于缓存中,require会直接从缓存返回导出的内容,避免重复加载。
    • +
    +

    3. 创建Module对象

      +
    • 如果模块没有被缓存,Node.js会为该模块创建一个新的Module对象:
      1
      const module = new Module(filename);
    • +
    • 这个Module对象包含idfilenameloadedexports等属性,用来表示模块的唯一标识、文件路径、加载状态、导出对象等。
    • +
    +

    4. 加载模块并执行

      +
    • require会读取模块文件内容,然后将代码包裹在一个自执行函数中,这个函数接收exportsrequiremodule__filename__dirname五个参数,从而确保每个模块都有自己的作用域。
    • +
    • 例如,假设模块代码是:
      1
      2
      3
      module.exports = {
      add: (a, b) => a + b
      };
      +加载时,Node.js会将其转换为如下结构:
      1
      2
      3
      4
      5
      (function(exports, require, module, __filename, __dirname) {
      module.exports = {
      add: (a, b) => a + b
      };
      });
    • +
    • require执行该函数,将执行结果赋值给module.exports。执行完后,module.exports就包含了模块的导出内容。
    • +
    +

    5. 返回module.exports

      +
    • 执行完成后,require函数返回module.exports的内容。其他模块可以通过调用require访问该模块的导出对象。
    • +
    +

    6. 循环依赖处理

      +
    • 如果模块A和模块B存在循环依赖,Node.js会在加载时创建一个未完成的module.exports对象放入缓存,使得相互依赖的模块可以访问未完成的内容,从而避免死循环。
    • +
    +

    简化版代码示例

    以下代码是Node.js中require实现的简化示例:

    +
    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
    // 简化的 CommonJS require 实现
    const Module = function(filename) {
    this.filename = filename;
    this.exports = {}; // 导出对象
    this.loaded = false; // 加载状态
    };

    Module._cache = {}; // 模块缓存

    Module._load = function(filename) {
    // 检查缓存
    if (Module._cache[filename]) {
    return Module._cache[filename].exports;
    }

    // 创建新的模块并缓存
    const module = new Module(filename);
    Module._cache[filename] = module;

    // 读取文件内容并包装为函数
    const wrappedSrc = `(function(exports, require, module, __filename, __dirname) { ${readFileSync(filename)} \n})`;
    const compiledWrapper = eval(wrappedSrc);

    // 执行模块函数
    compiledWrapper(module.exports, require, module, filename, dirname(filename));

    // 设置加载完成状态
    module.loaded = true;

    return module.exports;
    };

    function require(filename) {
    return Module._load(filename);
    }
    + +

    总结

    require的核心在于以下几步:

    +
      +
    1. 解析路径以找到模块文件。
    2. +
    3. 检查缓存以避免重复加载。
    4. +
    5. 创建并缓存模块对象,防止循环依赖。
    6. +
    7. 包装和执行代码以提供模块独立作用域。
    8. +
    9. 返回module.exports的内容供调用方使用。
    10. +
    +

    这就是CommonJS中require的基本实现逻辑,通过缓存、作用域隔离等机制,确保模块的高效、独立运行。

    +

    CommonJS和ESM的区别:

      +
    • 导入/导出语法:CommonJS使用requiremodule.exports,而ESM使用importexport
    • +
    • 加载方式:CommonJS是同步加载,ESM支持异步加载。
    • +
    • 执行时机:CommonJS模块在加载时立即执行,ESM模块则在编译时静态分析依赖关系。
    • +
    +

    总体来说,CommonJS是Node.js中常见的模块化规范,对服务端开发尤其重要,而在前端开发中更推荐使用ES模块化(ESM)标准。

    +

    ESM是什么

    ESM(ECMAScript Module)是JavaScript在ECMAScript 6(ES6)标准中引入的模块系统,也称为ES模块。它为JavaScript提供了一种官方、标准化的模块化方式,在浏览器和Node.js环境中都支持。ESM解决了JavaScript早期模块化规范(如CommonJS、AMD)存在的诸多问题,并引入了一些重要的新特性。

    +

    ESM的特点和语法

      +
    1. 静态导入和导出

      +
        +
      • ESM支持静态分析,这意味着在编译阶段,JavaScript引擎就能确定模块依赖关系,而不是像CommonJS那样动态加载。这种静态结构有助于性能优化和代码检查。
      • +
      • 导出使用export关键字,支持命名导出和默认导出:
        1
        2
        3
        4
        5
        6
        // named export
        export const add = (a, b) => a + b;
        export function subtract(a, b) { return a - b; }

        // default export
        export default function multiply(a, b) { return a * b; }
      • +
      • 导入使用import关键字,可以选择导入模块的部分内容,或者直接导入默认导出:
        1
        2
        import { add, subtract } from './math.js';
        import multiply from './math.js';
      • +
      +
    2. +
    3. 支持异步加载

      +
        +
      • 在浏览器环境中,ES模块可以异步加载,且在模块中可以使用<script type="module">标签加载脚本,且模块默认是异步加载的。这使得ESM在浏览器端比CommonJS更高效。
      • +
      • 例如,import()动态导入函数允许在运行时加载模块,是一种非常灵活的用法:
        1
        2
        3
        import('./math.js').then(module => {
        console.log(module.add(2, 3));
        });
      • +
      +
    4. +
    5. 模块作用域

      +
        +
      • ESM模块代码默认在模块作用域内执行,不会污染全局作用域。
      • +
      • ESM模块中的顶层this值为undefined,避免了变量污染。
      • +
      +
    6. +
    7. 浏览器和Node.js的支持

      +
        +
      • 浏览器原生支持ESM,不需要任何工具或库即可直接加载。
      • +
      • Node.js 12及以上版本也支持ES模块(文件后缀为.mjs,或在package.json中指定"type": "module")。这使得ESM成为了跨平台的标准模块化方案。
      • +
      +
    8. +
    9. Tree Shaking

      +
        +
      • 由于ESM是静态结构的模块,构建工具(如Webpack、Rollup)可以在编译阶段优化代码,删除未使用的导出(Tree Shaking),减少最终打包文件的大小。
      • +
      +
    10. +
    +

    ESM与CommonJS的区别

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    特性ESMCommonJS
    导入/导出语法import / exportrequire / module.exports
    依赖解析时间静态解析动态解析
    加载方式异步加载(浏览器端)同步加载
    缓存机制缓存,但不可变缓存,但内容可变
    顶层thisundefinedglobal(在Node.js中)
    Tree Shaking支持支持(便于编译优化)不支持
    +

    示例

    假设我们有一个math.js文件,包含以下代码:

    +
    1
    2
    3
    4
    5
    6
    // math.js
    export const add = (a, b) => a + b;
    export const subtract = (a, b) => a - b;
    export default function multiply(a, b) {
    return a * b;
    }
    + +

    使用ESM导入该模块:

    +
    1
    2
    3
    4
    5
    6
    7
    // app.js
    import { add, subtract } from './math.js';
    import multiply from './math.js';

    console.log(add(2, 3)); // 输出5
    console.log(subtract(5, 3)); // 输出2
    console.log(multiply(4, 5)); // 输出20
    + +

    总结

    ESM模块系统在JavaScript生态系统中逐渐成为主流,因其具有静态分析、异步加载、Tree Shaking支持等优势,成为了现代JavaScript开发中的重要模块化工具。

    +

    module.exports和exports的区别

    在Node.js中,module.exportsexports都是用于模块导出的对象,但它们之间有一些细微的区别。理解这些区别可以帮助你避免一些常见的错误。

    +

    1. 默认引用关系

      +
    • exportsmodule.exports在模块开始时是指向同一个对象的,也就是说,exportsmodule.exports的引用。
    • +
    • 例如,默认情况下它们等价于:
      1
      const exports = module.exports = {};
    • +
    +

    2. 导出整个对象

      +
    • module.exports是真正导出的对象,require的返回值最终是module.exports的值。
    • +
    • 如果想要导出一个新的对象或函数,应直接赋值给module.exports,而不是exports,否则不会生效。
    • +
    • 例如:
      1
      2
      3
      4
      5
      6
      7
      module.exports = {
      foo: 'bar',
      };
      // 或者导出函数
      module.exports = function() {
      console.log("Hello");
      };
    • +
    • 错误示例,如果直接修改exportsmodule.exports不会受影响:
      1
      2
      3
      4
      exports = {
      foo: 'bar',
      };
      // require时返回的是一个空对象,而不是{ foo: 'bar' }
    • +
    +

    3. 添加属性或方法

      +
    • 如果只是想给模块添加一些属性或方法,可以直接在exports上添加属性,因为exportsmodule.exports的引用。
    • +
    • 例如,以下两种写法都可以:
      1
      2
      3
      4
      5
      // 方法一:使用 exports
      exports.foo = 'bar';

      // 方法二:使用 module.exports
      module.exports.foo = 'bar';
    • +
    +

    4. 覆盖 vs. 扩展

      +
    • 当需要覆盖整个导出对象时,必须使用module.exports
    • +
    • 而当只是想在现有的导出对象上添加属性或方法时,可以使用exportsmodule.exports,效果相同。
    • +
    +

    例子比较

    假设有一个模块myModule.js

    +
    1
    2
    3
    4
    5
    6
    7
    8
    // 错误写法
    exports = { foo: 'bar' }; // 此时 `exports` 不再指向 `module.exports`,不会生效

    // 正确写法
    module.exports = { foo: 'bar' };

    // 添加属性的正确写法
    exports.foo = 'bar'; // 或者 module.exports.foo = 'bar';
    + +

    总结

      +
    • module.exports是真正的导出对象。
    • +
    • exports只是module.exports的引用,主要用于辅助导出属性或方法。
    • +
    • 覆盖整个导出对象时使用module.exports;仅添加属性或方法时两者皆可。
    • +
    +
    文章作者: Arthur Ming
    文章链接: http://blog.damingerdai.com/2024/10/29/front-end/nodejs-mock-interview/
    版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Damingerdai's Blog
    \ No newline at end of file diff --git a/about/index.html b/about/index.html index c979afe5..94b70aa6 100644 --- a/about/index.html +++ b/about/index.html @@ -7,7 +7,7 @@ - +

    Welcome to damingerdai

    大家好, 我是明国宾。,目前在普华永道信息技术(上海)有限公司做全栈开发。

    + })(window)

    Welcome to damingerdai

    大家好, 我是明国宾。,目前在普华永道信息技术(上海)有限公司做全栈开发。

    在普华永道里,我以Angular Commit Message规范为基础,逐步发展了一套基于Nodejs生态的开发部署规范,在PM和其他开发同事的支持下,成功地在项目中推广,而我也在从中获得收获成长。

    作为一名非计算机专业出生的普通人,我使用过Spring BootNodejsAngular做过项目, 但是由于种种原因,并没有好好深入研究过技术的底层原理,更多的还是一些简单的技术应用。

    因此我希望我将来可以花费更多深研技术:

    @@ -183,12 +183,12 @@
  • Bazel是谷歌开源的编译工具,性能好,支持多语言。但是由于可参考的资料非常少,希望能有机会勉强掌握。
  • 随着年岁的增长,我越来越发现,自己的时间太少,而需要学习的知识只会越来越多。有的时候也会觉得迷茫,但是我想对我自己说一句:我是要成为架构师的男人!

    -
    \ No newline at end of file +
  • AI1
  • web31
  • 前端13
  • 后端10
  • 软件10
  • +
    网站资讯
    文章数目 :
    39
    本站访客数 :
    本站总访问量 :
    最后更新时间 :
    \ No newline at end of file diff --git a/archives/2021/01/index.html b/archives/2021/01/index.html index cd36705d..181fefe5 100644 --- a/archives/2021/01/index.html +++ b/archives/2021/01/index.html @@ -53,7 +53,7 @@ isHome: false, isHighlightShrink: false, isToc: false, - postUpdate: '2024-10-26 20:08:28' + postUpdate: '2024-10-29 20:47:47' }
    avatar
    Arthur Ming
    大明二代的博客
    Follow Me
    公告
    大家好,我是大明二代
    最新文章
    网站资讯
    文章数目 :
    39
    本站访客数 :
    本站总访问量 :
    最后更新时间 :
    \ No newline at end of file diff --git a/archives/2021/02/index.html b/archives/2021/02/index.html index 0fb21064..38820455 100644 --- a/archives/2021/02/index.html +++ b/archives/2021/02/index.html @@ -53,7 +53,7 @@ isHome: false, isHighlightShrink: false, isToc: false, - postUpdate: '2024-10-26 20:08:28' + postUpdate: '2024-10-29 20:47:47' }
    文章总览 - 1
    2021
    Angular和React构建体积简单对比
    Angular和React构建体积简单对比
    avatar
    Arthur Ming
    大明二代的博客
    Follow Me
    公告
    大家好,我是大明二代
    最新文章
    网站资讯
    文章数目 :
    39
    本站访客数 :
    本站总访问量 :
    最后更新时间 :
    \ No newline at end of file diff --git a/archives/2021/05/index.html b/archives/2021/05/index.html index f7bbcae9..4d4929f2 100644 --- a/archives/2021/05/index.html +++ b/archives/2021/05/index.html @@ -53,7 +53,7 @@ isHome: false, isHighlightShrink: false, isToc: false, - postUpdate: '2024-10-26 20:08:28' + postUpdate: '2024-10-29 20:47:47' }
    avatar
    Arthur Ming
    大明二代的博客
    Follow Me
    公告
    大家好,我是大明二代
    最新文章
    网站资讯
    文章数目 :
    39
    本站访客数 :
    本站总访问量 :
    最后更新时间 :
    \ No newline at end of file diff --git a/archives/2021/07/index.html b/archives/2021/07/index.html index 71cbe6b0..4eaf9187 100644 --- a/archives/2021/07/index.html +++ b/archives/2021/07/index.html @@ -53,7 +53,7 @@ isHome: false, isHighlightShrink: false, isToc: false, - postUpdate: '2024-10-26 20:08:28' + postUpdate: '2024-10-29 20:47:47' }
    文章总览 - 2
    2021
    Homebrew安装笔记
    Homebrew安装笔记
    TypeScript中可选链
    TypeScript中可选链
    avatar
    Arthur Ming
    大明二代的博客
    Follow Me
    公告
    大家好,我是大明二代
    最新文章
    网站资讯
    文章数目 :
    39
    本站访客数 :
    本站总访问量 :
    最后更新时间 :
    \ No newline at end of file diff --git a/archives/2021/08/index.html b/archives/2021/08/index.html index 6b96b405..abeca1cb 100644 --- a/archives/2021/08/index.html +++ b/archives/2021/08/index.html @@ -53,7 +53,7 @@ isHome: false, isHighlightShrink: false, isToc: false, - postUpdate: '2024-10-26 20:08:28' + postUpdate: '2024-10-29 20:47:47' }
    文章总览 - 1
    2021
    使用Bazel编译TypeScript
    使用Bazel编译TypeScript
    avatar
    Arthur Ming
    大明二代的博客
    Follow Me
    公告
    大家好,我是大明二代
    最新文章
    网站资讯
    文章数目 :
    39
    本站访客数 :
    本站总访问量 :
    最后更新时间 :
    \ No newline at end of file diff --git a/archives/2021/10/index.html b/archives/2021/10/index.html index 11ddc5e9..36483919 100644 --- a/archives/2021/10/index.html +++ b/archives/2021/10/index.html @@ -53,7 +53,7 @@ isHome: false, isHighlightShrink: false, isToc: false, - postUpdate: '2024-10-26 20:08:28' + postUpdate: '2024-10-29 20:47:47' }
    文章总览 - 2
    2021
    Gradle配置阿里镜像
    Gradle配置阿里镜像
    Nodejs项目的Dockerfile模版
    Nodejs项目的Dockerfile模版
    avatar
    Arthur Ming
    大明二代的博客
    Follow Me
    公告
    大家好,我是大明二代
    最新文章
    网站资讯
    文章数目 :
    39
    本站访客数 :
    本站总访问量 :
    最后更新时间 :
    \ No newline at end of file diff --git a/archives/2021/11/index.html b/archives/2021/11/index.html index f39e3912..733c112f 100644 --- a/archives/2021/11/index.html +++ b/archives/2021/11/index.html @@ -53,7 +53,7 @@ isHome: false, isHighlightShrink: false, isToc: false, - postUpdate: '2024-10-26 20:08:28' + postUpdate: '2024-10-29 20:47:47' }
    文章总览 - 1
    2021
    从springfox迁移到springdoc
    从springfox迁移到springdoc
    avatar
    Arthur Ming
    大明二代的博客
    Follow Me
    公告
    大家好,我是大明二代
    最新文章
    网站资讯
    文章数目 :
    39
    本站访客数 :
    本站总访问量 :
    最后更新时间 :
    \ No newline at end of file diff --git a/archives/2021/12/index.html b/archives/2021/12/index.html index 9a90af49..4010486d 100644 --- a/archives/2021/12/index.html +++ b/archives/2021/12/index.html @@ -53,7 +53,7 @@ isHome: false, isHighlightShrink: false, isToc: false, - postUpdate: '2024-10-26 20:08:28' + postUpdate: '2024-10-29 20:47:47' }
    文章总览 - 2
    2021
    2022年度总结
    2022年度总结
    记录一次迁移Apollo Server V3的过程
    记录一次迁移Apollo Server V3的过程
    avatar
    Arthur Ming
    大明二代的博客
    Follow Me
    公告
    大家好,我是大明二代
    最新文章
    网站资讯
    文章数目 :
    39
    本站访客数 :
    本站总访问量 :
    最后更新时间 :
    \ No newline at end of file diff --git a/archives/2021/index.html b/archives/2021/index.html index 3369ee3e..07b6c881 100644 --- a/archives/2021/index.html +++ b/archives/2021/index.html @@ -53,7 +53,7 @@ isHome: false, isHighlightShrink: false, isToc: false, - postUpdate: '2024-10-26 20:08:28' + postUpdate: '2024-10-29 20:47:47' }
    avatar
    Arthur Ming
    大明二代的博客
    Follow Me
    公告
    大家好,我是大明二代
    最新文章
    + })(window)
    \ No newline at end of file +
  • AI1
  • web31
  • 前端13
  • 后端10
  • 软件10
  • +
    网站资讯
    文章数目 :
    39
    本站访客数 :
    本站总访问量 :
    最后更新时间 :
    \ No newline at end of file diff --git a/archives/2021/page/2/index.html b/archives/2021/page/2/index.html index ce38da84..3327e3ed 100644 --- a/archives/2021/page/2/index.html +++ b/archives/2021/page/2/index.html @@ -53,7 +53,7 @@ isHome: false, isHighlightShrink: false, isToc: false, - postUpdate: '2024-10-26 20:08:28' + postUpdate: '2024-10-29 20:47:47' }
    avatar
    Arthur Ming
    大明二代的博客
    Follow Me
    公告
    大家好,我是大明二代
    最新文章
    网站资讯
    文章数目 :
    39
    本站访客数 :
    本站总访问量 :
    最后更新时间 :
    \ No newline at end of file diff --git a/archives/2022/01/index.html b/archives/2022/01/index.html index 284e8baf..f8f03f24 100644 --- a/archives/2022/01/index.html +++ b/archives/2022/01/index.html @@ -53,7 +53,7 @@ isHome: false, isHighlightShrink: false, isToc: false, - postUpdate: '2024-10-26 20:08:28' + postUpdate: '2024-10-29 20:47:47' }
    文章总览 - 1
    2022
    Mac版minikube安装笔记
    Mac版minikube安装笔记
    avatar
    Arthur Ming
    大明二代的博客
    Follow Me
    公告
    大家好,我是大明二代
    最新文章
    网站资讯
    文章数目 :
    39
    本站访客数 :
    本站总访问量 :
    最后更新时间 :
    \ No newline at end of file diff --git a/archives/2022/03/index.html b/archives/2022/03/index.html index 6a43ee9c..3846cbec 100644 --- a/archives/2022/03/index.html +++ b/archives/2022/03/index.html @@ -53,7 +53,7 @@ isHome: false, isHighlightShrink: false, isToc: false, - postUpdate: '2024-10-26 20:08:28' + postUpdate: '2024-10-29 20:47:47' }
    avatar
    Arthur Ming
    大明二代的博客
    Follow Me
    公告
    大家好,我是大明二代
    最新文章
    网站资讯
    文章数目 :
    39
    本站访客数 :
    本站总访问量 :
    最后更新时间 :
    \ No newline at end of file diff --git a/archives/2022/04/index.html b/archives/2022/04/index.html index 77b5d7ac..be4c33a8 100644 --- a/archives/2022/04/index.html +++ b/archives/2022/04/index.html @@ -53,7 +53,7 @@ isHome: false, isHighlightShrink: false, isToc: false, - postUpdate: '2024-10-26 20:08:28' + postUpdate: '2024-10-29 20:47:47' }
    avatar
    Arthur Ming
    大明二代的博客
    Follow Me
    公告
    大家好,我是大明二代
    最新文章
    网站资讯
    文章数目 :
    39
    本站访客数 :
    本站总访问量 :
    最后更新时间 :
    \ No newline at end of file diff --git a/archives/2022/05/index.html b/archives/2022/05/index.html index 79baf156..ed1277d7 100644 --- a/archives/2022/05/index.html +++ b/archives/2022/05/index.html @@ -53,7 +53,7 @@ isHome: false, isHighlightShrink: false, isToc: false, - postUpdate: '2024-10-26 20:08:28' + postUpdate: '2024-10-29 20:47:47' }
    avatar
    Arthur Ming
    大明二代的博客
    Follow Me
    公告
    大家好,我是大明二代
    最新文章
    网站资讯
    文章数目 :
    39
    本站访客数 :
    本站总访问量 :
    最后更新时间 :
    \ No newline at end of file diff --git a/archives/2022/06/index.html b/archives/2022/06/index.html index 212b0196..6c93aafc 100644 --- a/archives/2022/06/index.html +++ b/archives/2022/06/index.html @@ -53,7 +53,7 @@ isHome: false, isHighlightShrink: false, isToc: false, - postUpdate: '2024-10-26 20:08:28' + postUpdate: '2024-10-29 20:47:47' }
    文章总览 - 2
    2022
    给Ingress上配置ssl证书
    给Ingress上配置ssl证书
    Angular独立组件简单体验
    Angular独立组件简单体验
    avatar
    Arthur Ming
    大明二代的博客
    Follow Me
    公告
    大家好,我是大明二代
    最新文章
    网站资讯
    文章数目 :
    39
    本站访客数 :
    本站总访问量 :
    最后更新时间 :
    \ No newline at end of file diff --git a/archives/2022/09/index.html b/archives/2022/09/index.html index 2e3fd819..277ab803 100644 --- a/archives/2022/09/index.html +++ b/archives/2022/09/index.html @@ -53,7 +53,7 @@ isHome: false, isHighlightShrink: false, isToc: false, - postUpdate: '2024-10-26 20:08:28' + postUpdate: '2024-10-29 20:47:47' }
    avatar
    Arthur Ming
    大明二代的博客
    Follow Me
    公告
    大家好,我是大明二代
    最新文章
    网站资讯
    文章数目 :
    39
    本站访客数 :
    本站总访问量 :
    最后更新时间 :
    \ No newline at end of file diff --git a/archives/2022/index.html b/archives/2022/index.html index 661cc5e8..e7d31eae 100644 --- a/archives/2022/index.html +++ b/archives/2022/index.html @@ -53,7 +53,7 @@ isHome: false, isHighlightShrink: false, isToc: false, - postUpdate: '2024-10-26 20:08:28' + postUpdate: '2024-10-29 20:47:47' }
    avatar
    Arthur Ming
    大明二代的博客
    Follow Me
    公告
    大家好,我是大明二代
    最新文章
    + })(window)
    \ No newline at end of file +
  • AI1
  • web31
  • 前端13
  • 后端10
  • 软件10
  • +
    网站资讯
    文章数目 :
    39
    本站访客数 :
    本站总访问量 :
    最后更新时间 :
    \ No newline at end of file diff --git a/archives/2023/01/index.html b/archives/2023/01/index.html index 2e1d41a2..57ef9cd9 100644 --- a/archives/2023/01/index.html +++ b/archives/2023/01/index.html @@ -53,7 +53,7 @@ isHome: false, isHighlightShrink: false, isToc: false, - postUpdate: '2024-10-26 20:08:28' + postUpdate: '2024-10-29 20:47:47' }
    文章总览 - 1
    2023
    记录一些测试币的水龙头
    记录一些测试币的水龙头
    avatar
    Arthur Ming
    大明二代的博客
    Follow Me
    公告
    大家好,我是大明二代
    最新文章
    网站资讯
    文章数目 :
    39
    本站访客数 :
    本站总访问量 :
    最后更新时间 :
    \ No newline at end of file diff --git a/archives/2023/02/index.html b/archives/2023/02/index.html index 6e1f400c..6d6f733f 100644 --- a/archives/2023/02/index.html +++ b/archives/2023/02/index.html @@ -53,7 +53,7 @@ isHome: false, isHighlightShrink: false, isToc: false, - postUpdate: '2024-10-26 20:08:28' + postUpdate: '2024-10-29 20:47:47' }
    avatar
    Arthur Ming
    大明二代的博客
    Follow Me
    公告
    大家好,我是大明二代
    最新文章
    网站资讯
    文章数目 :
    39
    本站访客数 :
    本站总访问量 :
    最后更新时间 :
    \ No newline at end of file diff --git a/archives/2023/04/index.html b/archives/2023/04/index.html index ca4db665..8261523d 100644 --- a/archives/2023/04/index.html +++ b/archives/2023/04/index.html @@ -53,7 +53,7 @@ isHome: false, isHighlightShrink: false, isToc: false, - postUpdate: '2024-10-26 20:08:28' + postUpdate: '2024-10-29 20:47:47' }
    文章总览 - 1
    2023
    用k3s部署PostgreSQL用于开发
    用k3s部署PostgreSQL用于开发
    avatar
    Arthur Ming
    大明二代的博客
    Follow Me
    公告
    大家好,我是大明二代
    最新文章
    网站资讯
    文章数目 :
    39
    本站访客数 :
    本站总访问量 :
    最后更新时间 :
    \ No newline at end of file diff --git a/archives/2023/07/index.html b/archives/2023/07/index.html index 494d8dda..f45e84c4 100644 --- a/archives/2023/07/index.html +++ b/archives/2023/07/index.html @@ -53,7 +53,7 @@ isHome: false, isHighlightShrink: false, isToc: false, - postUpdate: '2024-10-26 20:08:28' + postUpdate: '2024-10-29 20:47:47' }
    文章总览 - 1
    2023
    Hello World
    Hello World
    avatar
    Arthur Ming
    大明二代的博客
    Follow Me
    公告
    大家好,我是大明二代
    最新文章
    网站资讯
    文章数目 :
    39
    本站访客数 :
    本站总访问量 :
    最后更新时间 :
    \ No newline at end of file diff --git a/archives/2023/08/index.html b/archives/2023/08/index.html index fca87581..d5038ffc 100644 --- a/archives/2023/08/index.html +++ b/archives/2023/08/index.html @@ -53,7 +53,7 @@ isHome: false, isHighlightShrink: false, isToc: false, - postUpdate: '2024-10-26 20:08:28' + postUpdate: '2024-10-29 20:47:47' }
    avatar
    Arthur Ming
    大明二代的博客
    Follow Me
    公告
    大家好,我是大明二代
    最新文章
    网站资讯
    文章数目 :
    39
    本站访客数 :
    本站总访问量 :
    最后更新时间 :
    \ No newline at end of file diff --git a/archives/2023/09/index.html b/archives/2023/09/index.html index 7c424a8f..de05ac28 100644 --- a/archives/2023/09/index.html +++ b/archives/2023/09/index.html @@ -53,7 +53,7 @@ isHome: false, isHighlightShrink: false, isToc: false, - postUpdate: '2024-10-26 20:08:28' + postUpdate: '2024-10-29 20:47:47' }
    文章总览 - 1
    2023
    HorizontalPodAutoscaler入门实践
    HorizontalPodAutoscaler入门实践
    avatar
    Arthur Ming
    大明二代的博客
    Follow Me
    公告
    大家好,我是大明二代
    最新文章
    网站资讯
    文章数目 :
    39
    本站访客数 :
    本站总访问量 :
    最后更新时间 :
    \ No newline at end of file diff --git a/archives/2023/12/index.html b/archives/2023/12/index.html index 0cb1a2ff..9b9074ec 100644 --- a/archives/2023/12/index.html +++ b/archives/2023/12/index.html @@ -53,7 +53,7 @@ isHome: false, isHighlightShrink: false, isToc: false, - postUpdate: '2024-10-26 20:08:28' + postUpdate: '2024-10-29 20:47:47' }
    文章总览 - 1
    2023
    学习multipass笔记
    学习multipass笔记
    avatar
    Arthur Ming
    大明二代的博客
    Follow Me
    公告
    大家好,我是大明二代
    最新文章
    网站资讯
    文章数目 :
    39
    本站访客数 :
    本站总访问量 :
    最后更新时间 :
    \ No newline at end of file diff --git a/archives/2023/index.html b/archives/2023/index.html index d4c79f15..fe40ffc3 100644 --- a/archives/2023/index.html +++ b/archives/2023/index.html @@ -53,7 +53,7 @@ isHome: false, isHighlightShrink: false, isToc: false, - postUpdate: '2024-10-26 20:08:28' + postUpdate: '2024-10-29 20:47:47' }
    avatar
    Arthur Ming
    大明二代的博客
    Follow Me
    公告
    大家好,我是大明二代
    最新文章
    + })(window)
    \ No newline at end of file +
  • AI1
  • web31
  • 前端13
  • 后端10
  • 软件10
  • +
    网站资讯
    文章数目 :
    39
    本站访客数 :
    本站总访问量 :
    最后更新时间 :
    \ No newline at end of file diff --git a/archives/2024/01/index.html b/archives/2024/01/index.html index 01f99547..822be59f 100644 --- a/archives/2024/01/index.html +++ b/archives/2024/01/index.html @@ -53,7 +53,7 @@ isHome: false, isHighlightShrink: false, isToc: false, - postUpdate: '2024-10-26 20:08:28' + postUpdate: '2024-10-29 20:47:47' }
    文章总览 - 2
    2024
    Podman的hello world入门
    Podman的hello world入门
    2023年度总结
    2023年度总结
    avatar
    Arthur Ming
    大明二代的博客
    Follow Me
    公告
    大家好,我是大明二代
    最新文章
    网站资讯
    文章数目 :
    39
    本站访客数 :
    本站总访问量 :
    最后更新时间 :
    \ No newline at end of file diff --git a/archives/2024/02/index.html b/archives/2024/02/index.html index 8a313395..fa4761d7 100644 --- a/archives/2024/02/index.html +++ b/archives/2024/02/index.html @@ -53,7 +53,7 @@ isHome: false, isHighlightShrink: false, isToc: false, - postUpdate: '2024-10-26 20:08:28' + postUpdate: '2024-10-29 20:47:47' }
    文章总览 - 1
    2024
    使用bazel构建spring boot项目
    使用bazel构建spring boot项目
    avatar
    Arthur Ming
    大明二代的博客
    Follow Me
    公告
    大家好,我是大明二代
    最新文章
    网站资讯
    文章数目 :
    39
    本站访客数 :
    本站总访问量 :
    最后更新时间 :
    \ No newline at end of file diff --git a/archives/2024/06/index.html b/archives/2024/06/index.html index 2058722b..999e0688 100644 --- a/archives/2024/06/index.html +++ b/archives/2024/06/index.html @@ -53,7 +53,7 @@ isHome: false, isHighlightShrink: false, isToc: false, - postUpdate: '2024-10-26 20:08:28' + postUpdate: '2024-10-29 20:47:47' }
    文章总览 - 1
    2024
    如何在10分钟内使用LangChain
    如何在10分钟内使用LangChain
    avatar
    Arthur Ming
    大明二代的博客
    Follow Me
    公告
    大家好,我是大明二代
    最新文章
    网站资讯
    文章数目 :
    39
    本站访客数 :
    本站总访问量 :
    最后更新时间 :
    \ No newline at end of file diff --git a/archives/2024/07/index.html b/archives/2024/07/index.html index 29288509..e6772920 100644 --- a/archives/2024/07/index.html +++ b/archives/2024/07/index.html @@ -53,7 +53,7 @@ isHome: false, isHighlightShrink: false, isToc: false, - postUpdate: '2024-10-26 20:08:28' + postUpdate: '2024-10-29 20:47:47' }
    avatar
    Arthur Ming
    大明二代的博客
    Follow Me
    公告
    大家好,我是大明二代
    最新文章
    网站资讯
    文章数目 :
    39
    本站访客数 :
    本站总访问量 :
    最后更新时间 :
    \ No newline at end of file diff --git a/archives/2024/10/index.html b/archives/2024/10/index.html index df607e51..252ed947 100644 --- a/archives/2024/10/index.html +++ b/archives/2024/10/index.html @@ -53,7 +53,7 @@ isHome: false, isHighlightShrink: false, isToc: false, - postUpdate: '2024-10-26 20:08:28' + postUpdate: '2024-10-29 20:47:47' }
    文章总览 - 3
    2024
    Angular的模拟面试
    Angular的模拟面试
    模拟面试
    模拟面试
    JavaScript中的闭包
    JavaScript中的闭包
    avatar
    Arthur Ming
    大明二代的博客
    Follow Me
    公告
    大家好,我是大明二代
    最新文章
    网站资讯
    文章数目 :
    39
    本站访客数 :
    本站总访问量 :
    最后更新时间 :
    \ No newline at end of file diff --git a/archives/2024/index.html b/archives/2024/index.html index dbf2cd9f..c45919eb 100644 --- a/archives/2024/index.html +++ b/archives/2024/index.html @@ -53,7 +53,7 @@ isHome: false, isHighlightShrink: false, isToc: false, - postUpdate: '2024-10-26 20:08:28' + postUpdate: '2024-10-29 20:47:47' }
    avatar
    Arthur Ming
    大明二代的博客
    Follow Me
    公告
    大家好,我是大明二代
    最新文章
    + })(window)
    \ No newline at end of file +
  • AI1
  • web31
  • 前端13
  • 后端10
  • 软件10
  • +
    网站资讯
    文章数目 :
    39
    本站访客数 :
    本站总访问量 :
    最后更新时间 :
    \ No newline at end of file diff --git a/archives/index.html b/archives/index.html index 128856db..475dd574 100644 --- a/archives/index.html +++ b/archives/index.html @@ -53,7 +53,7 @@ isHome: false, isHighlightShrink: false, isToc: false, - postUpdate: '2024-10-26 20:08:28' + postUpdate: '2024-10-29 20:47:47' }
    avatar
    Arthur Ming
    大明二代的博客
    Follow Me
    公告
    大家好,我是大明二代
    最新文章
    + })(window)
    \ No newline at end of file +
  • AI1
  • web31
  • 前端13
  • 后端10
  • 软件10
  • +
    网站资讯
    文章数目 :
    39
    本站访客数 :
    本站总访问量 :
    最后更新时间 :
    \ No newline at end of file diff --git a/archives/page/2/index.html b/archives/page/2/index.html index 62d23c75..3e8aa1fe 100644 --- a/archives/page/2/index.html +++ b/archives/page/2/index.html @@ -53,7 +53,7 @@ isHome: false, isHighlightShrink: false, isToc: false, - postUpdate: '2024-10-26 20:08:28' + postUpdate: '2024-10-29 20:47:47' }
    avatar
    Arthur Ming
    大明二代的博客
    Follow Me
    公告
    大家好,我是大明二代
    最新文章
    + })(window)
    \ No newline at end of file +
  • AI1
  • web31
  • 前端13
  • 后端10
  • 软件10
  • +
    网站资讯
    文章数目 :
    39
    本站访客数 :
    本站总访问量 :
    最后更新时间 :
    \ No newline at end of file diff --git a/archives/page/3/index.html b/archives/page/3/index.html index 67f9af76..2ad531fb 100644 --- a/archives/page/3/index.html +++ b/archives/page/3/index.html @@ -53,7 +53,7 @@ isHome: false, isHighlightShrink: false, isToc: false, - postUpdate: '2024-10-26 20:08:28' + postUpdate: '2024-10-29 20:47:47' }
    avatar
    Arthur Ming
    大明二代的博客
    Follow Me
    公告
    大家好,我是大明二代
    最新文章
    + })(window)
    \ No newline at end of file +
  • AI1
  • web31
  • 前端13
  • 后端10
  • 软件10
  • +
    网站资讯
    文章数目 :
    39
    本站访客数 :
    本站总访问量 :
    最后更新时间 :
    \ No newline at end of file diff --git a/archives/page/4/index.html b/archives/page/4/index.html index 25673916..c3e6a7fd 100644 --- a/archives/page/4/index.html +++ b/archives/page/4/index.html @@ -53,7 +53,7 @@ isHome: false, isHighlightShrink: false, isToc: false, - postUpdate: '2024-10-26 20:08:28' + postUpdate: '2024-10-29 20:47:47' }
    avatar
    Arthur Ming
    大明二代的博客
    Follow Me
    公告
    大家好,我是大明二代
    最新文章
    + })(window)
    \ No newline at end of file +
  • AI1
  • web31
  • 前端13
  • 后端10
  • 软件10
  • +
    网站资讯
    文章数目 :
    39
    本站访客数 :
    本站总访问量 :
    最后更新时间 :
    \ No newline at end of file diff --git a/categories/AI/index.html b/categories/AI/index.html index a2161303..44201913 100644 --- a/categories/AI/index.html +++ b/categories/AI/index.html @@ -53,7 +53,7 @@ isHome: false, isHighlightShrink: false, isToc: false, - postUpdate: '2024-10-26 20:08:28' + postUpdate: '2024-10-29 20:47:47' }
    分类 - AI
    2024
    如何在10分钟内使用LangChain
    如何在10分钟内使用LangChain
    avatar
    Arthur Ming
    大明二代的博客
    Follow Me
    公告
    大家好,我是大明二代
    最新文章
    网站资讯
    文章数目 :
    39
    本站访客数 :
    本站总访问量 :
    最后更新时间 :
    \ No newline at end of file diff --git a/categories/index.html b/categories/index.html index 9d512ef9..0e4196bf 100644 --- a/categories/index.html +++ b/categories/index.html @@ -7,7 +7,7 @@ - +
    avatar
    Arthur Ming
    大明二代的博客
    Follow Me
    公告
    大家好,我是大明二代
    最新文章
    网站资讯
    文章数目 :
    39
    本站访客数 :
    本站总访问量 :
    最后更新时间 :
    \ No newline at end of file diff --git a/categories/web3/index.html b/categories/web3/index.html index 5127a16e..09e588b2 100644 --- a/categories/web3/index.html +++ b/categories/web3/index.html @@ -53,7 +53,7 @@ isHome: false, isHighlightShrink: false, isToc: false, - postUpdate: '2024-10-26 20:08:28' + postUpdate: '2024-10-29 20:47:47' }
    分类 - web3
    2023
    记录一些测试币的水龙头
    记录一些测试币的水龙头
    avatar
    Arthur Ming
    大明二代的博客
    Follow Me
    公告
    大家好,我是大明二代
    最新文章
    网站资讯
    文章数目 :
    39
    本站访客数 :
    本站总访问量 :
    最后更新时间 :
    \ No newline at end of file diff --git "a/categories/\345\211\215\347\253\257/index.html" "b/categories/\345\211\215\347\253\257/index.html" index 9bfb7894..4a3d4bc2 100644 --- "a/categories/\345\211\215\347\253\257/index.html" +++ "b/categories/\345\211\215\347\253\257/index.html" @@ -53,7 +53,7 @@ isHome: false, isHighlightShrink: false, isToc: false, - postUpdate: '2024-10-26 20:08:28' + postUpdate: '2024-10-29 20:47:47' }
    avatar
    Arthur Ming
    大明二代的博客
    Follow Me
    公告
    大家好,我是大明二代
    最新文章
    + })(window)
    \ No newline at end of file +
  • AI1
  • web31
  • 前端13
  • 后端10
  • 软件10
  • +
    网站资讯
    文章数目 :
    39
    本站访客数 :
    本站总访问量 :
    最后更新时间 :
    \ No newline at end of file diff --git "a/categories/\345\211\215\347\253\257/nodejs/index.html" "b/categories/\345\211\215\347\253\257/nodejs/index.html" index d78bc23b..2fc376c8 100644 --- "a/categories/\345\211\215\347\253\257/nodejs/index.html" +++ "b/categories/\345\211\215\347\253\257/nodejs/index.html" @@ -53,7 +53,7 @@ isHome: false, isHighlightShrink: false, isToc: false, - postUpdate: '2024-10-26 20:08:28' + postUpdate: '2024-10-29 20:47:47' }
    分类 - nodejs
    2024
    模拟面试
    模拟面试
    avatar
    Arthur Ming
    大明二代的博客
    Follow Me
    公告
    大家好,我是大明二代
    最新文章
    网站资讯
    文章数目 :
    39
    本站访客数 :
    本站总访问量 :
    最后更新时间 :
    \ No newline at end of file diff --git "a/categories/\345\211\215\347\253\257/nodejs/\346\225\217\346\215\267\345\274\200\345\217\221/index.html" "b/categories/\345\211\215\347\253\257/nodejs/\346\225\217\346\215\267\345\274\200\345\217\221/index.html" index 14a52a77..bbdb8bfc 100644 --- "a/categories/\345\211\215\347\253\257/nodejs/\346\225\217\346\215\267\345\274\200\345\217\221/index.html" +++ "b/categories/\345\211\215\347\253\257/nodejs/\346\225\217\346\215\267\345\274\200\345\217\221/index.html" @@ -53,7 +53,7 @@ isHome: false, isHighlightShrink: false, isToc: false, - postUpdate: '2024-10-26 20:08:28' + postUpdate: '2024-10-29 20:47:47' }
    分类 - 敏捷开发
    2024
    模拟面试
    模拟面试
    avatar
    Arthur Ming
    大明二代的博客
    Follow Me
    公告
    大家好,我是大明二代
    最新文章
    网站资讯
    文章数目 :
    39
    本站访客数 :
    本站总访问量 :
    最后更新时间 :
    \ No newline at end of file diff --git "a/categories/\345\211\215\347\253\257/nodejs/\346\225\217\346\215\267\345\274\200\345\217\221/\351\235\242\350\257\225/index.html" "b/categories/\345\211\215\347\253\257/nodejs/\346\225\217\346\215\267\345\274\200\345\217\221/\351\235\242\350\257\225/index.html" index 41c00e44..0e5f65cb 100644 --- "a/categories/\345\211\215\347\253\257/nodejs/\346\225\217\346\215\267\345\274\200\345\217\221/\351\235\242\350\257\225/index.html" +++ "b/categories/\345\211\215\347\253\257/nodejs/\346\225\217\346\215\267\345\274\200\345\217\221/\351\235\242\350\257\225/index.html" @@ -53,7 +53,7 @@ isHome: false, isHighlightShrink: false, isToc: false, - postUpdate: '2024-10-26 20:08:28' + postUpdate: '2024-10-29 20:47:47' }
    分类 - 面试
    2024
    模拟面试
    模拟面试
    avatar
    Arthur Ming
    大明二代的博客
    Follow Me
    公告
    大家好,我是大明二代
    最新文章
    网站资讯
    文章数目 :
    39
    本站访客数 :
    本站总访问量 :
    最后更新时间 :
    \ No newline at end of file diff --git "a/categories/\345\211\215\347\253\257/page/2/index.html" "b/categories/\345\211\215\347\253\257/page/2/index.html" index 44128ecf..49a2a8ca 100644 --- "a/categories/\345\211\215\347\253\257/page/2/index.html" +++ "b/categories/\345\211\215\347\253\257/page/2/index.html" @@ -53,7 +53,7 @@ isHome: false, isHighlightShrink: false, isToc: false, - postUpdate: '2024-10-26 20:08:28' + postUpdate: '2024-10-29 20:47:47' }
    分类 - 前端
    2021
    Angular和React构建体积简单对比
    Angular和React构建体积简单对比
    avatar
    Arthur Ming
    大明二代的博客
    Follow Me
    公告
    大家好,我是大明二代
    最新文章
    网站资讯
    文章数目 :
    39
    本站访客数 :
    本站总访问量 :
    最后更新时间 :
    \ No newline at end of file diff --git "a/categories/\345\220\216\347\253\257/index.html" "b/categories/\345\220\216\347\253\257/index.html" index 665c8016..e3a5f83c 100644 --- "a/categories/\345\220\216\347\253\257/index.html" +++ "b/categories/\345\220\216\347\253\257/index.html" @@ -53,7 +53,7 @@ isHome: false, isHighlightShrink: false, isToc: false, - postUpdate: '2024-10-26 20:08:28' + postUpdate: '2024-10-29 20:47:47' }
    avatar
    Arthur Ming
    大明二代的博客
    Follow Me
    公告
    大家好,我是大明二代
    最新文章
    + })(window)
    \ No newline at end of file +
  • AI1
  • web31
  • 前端13
  • 后端10
  • 软件10
  • +
    网站资讯
    文章数目 :
    39
    本站访客数 :
    本站总访问量 :
    最后更新时间 :
    \ No newline at end of file diff --git "a/categories/\350\275\257\344\273\266/index.html" "b/categories/\350\275\257\344\273\266/index.html" index ae4981d2..9f074e97 100644 --- "a/categories/\350\275\257\344\273\266/index.html" +++ "b/categories/\350\275\257\344\273\266/index.html" @@ -53,7 +53,7 @@ isHome: false, isHighlightShrink: false, isToc: false, - postUpdate: '2024-10-26 20:08:28' + postUpdate: '2024-10-29 20:47:47' }
    avatar
    Arthur Ming
    大明二代的博客
    Follow Me
    公告
    大家好,我是大明二代
    最新文章
    + })(window)
    \ No newline at end of file +
  • AI1
  • web31
  • 前端13
  • 后端10
  • 软件10
  • +
    网站资讯
    文章数目 :
    39
    本站访客数 :
    本站总访问量 :
    最后更新时间 :
    \ No newline at end of file diff --git a/index.html b/index.html index 3989607b..1162da5e 100644 --- a/index.html +++ b/index.html @@ -53,7 +53,7 @@ isHome: true, isHighlightShrink: false, isToc: false, - postUpdate: '2024-10-26 20:08:28' + postUpdate: '2024-10-29 20:47:47' }
    Angular的模拟面试
    \ No newline at end of file diff --git a/others/learning/index.html b/others/learning/index.html index 82bdaf6c..e4f7390d 100644 --- a/others/learning/index.html +++ b/others/learning/index.html @@ -7,7 +7,7 @@ - +

    学习课程

    计算机

      + })(window)
      \ No newline at end of file +
    1. AI1
    2. web31
    3. 前端13
    4. 后端10
    5. 软件10
    6. +
    网站资讯
    文章数目 :
    39
    本站访客数 :
    本站总访问量 :
    最后更新时间 :
    \ No newline at end of file diff --git a/others/link/index.html b/others/link/index.html index 5f76cff9..5e285b25 100644 --- a/others/link/index.html +++ b/others/link/index.html @@ -6,8 +6,8 @@ - - + +

    链接

    比较喜欢的 post。

    + })(window)
    \ No newline at end of file +
  • AI1
  • web31
  • 前端13
  • 后端10
  • 软件10
  • +
    网站资讯
    文章数目 :
    39
    本站访客数 :
    本站总访问量 :
    最后更新时间 :
    \ No newline at end of file diff --git a/page/2/index.html b/page/2/index.html index a346adff..b292e311 100644 --- a/page/2/index.html +++ b/page/2/index.html @@ -53,7 +53,7 @@ isHome: true, isHighlightShrink: false, isToc: false, - postUpdate: '2024-10-26 20:08:28' + postUpdate: '2024-10-29 20:47:47' }
    如何使用bazel去构建基于express和typescript的nodejs项目