terraform terraform lock.info 文件损坏或不存在 在运行Terraform 过程中,进程关掉了之类的错误之后,在运行 destroy 和 apply 会报lock.info 文件损坏或不存在之类的错误。 解决方法: terraform refresh -lock=false
keras Keras 固定随机种子 import tensorflow as tf import random import numpy as np seed_value = 9527 random.seed(seed_value) np.random.seed(seed_value) tf.random.set_seed(seed_value)
kubernetes Kubernetes 获取 kube-dashboard 的 token kubectl -n kubernetes-dashboard describe secret `kubectl -n kubernetes-dashboard get secret|grep dashboard-token | awk '{print $1}'`
kubernetes kubernetes volume 使用 hostPath 挂载目录时,如果目录不存在就创建它 设置 type 为:DirectoryOrCreate 如下: volumes: - name: shared-dir hostPath: path: /home/ubuntu/data type: DirectoryOrCreate
kubernetes no matches for kind "Deployment" in version "apps/v1beta1" kubernetes 1.16 部署服务时出错 这是因为 API 版本已正式发布,不再是 beta 了。 解决方法: 将 apps/v1beta1 改为 apps/v1
MySQL MySQL 导出所有数据库的数据 mysqldump -uroot -p123456 --all-databases >/data/database.sql 指定端口号 mysqldump -P 5050 -uroot -proot --all-databases >/data/database.sql
shell shell 计时 shell/bash 脚本计时 #!/usr/bin/env bash startAt=`date +%s` sleep 3 endAt=`date +%s` time=$(($endAt - $startAt)) time=`expr $time` echo $time
Hyperledger Hyperledger 查看出了多少块 Hyperledger 查看出了多少块 用法:peer channel getinfo -c 例: peer channel getinfo -c mychannel
Hyperledger Hyperledger 1.4.3 单机单节点部署 单机单节点指的是一个 order (排序服务),一个 Org (组织),一个 peer (节点)。 步骤: 1. 准备生成工具 2. 准备证书和区块的生成配置文件 3. 生成公私钥和证书 4. 生成创世区块 5. 生成通道配置区块 6. 准备docker配置文件 7. 启动Fabric网络 8. 创建并加入Channel 9. 安装与运行智能合约 准备生成工具 为了轻量化,我们不去下载 bin 目录,
libra Libra 白皮书 - 1. 简介 > Libra’s mission is to enable a simple global currency and financial infrastructure that empowers billions of people. Libra 的愿景是能够建立起一个简单的、能服务于全球数十亿人的货币和金融基础设施。 > This document outlines our plans for a new decentralized blockchain, a low-volatility
分布式系统 分布式系统:数据分布方式 哈希方式 1. 将哈希值与机器中的机器建立映射关系,将不同哈希值的数据分布到不同的机器上 2. 缺点: 1. 扩展性不高,一旦集群规模扩展,几乎所有的数据需要被迁移并重新分布 1. 解决方式,将对应关系作为元数据由专门的元数据服务器管理 2. 数据倾斜问题 data skew 按数据范围分布 1. 将数据按特征值的值域范围划分为不同的区间,使得集群中每台服务器处理不同区间的数据 2. 当某个区间的数据量突破某个阈值时,将区间分裂拆分为两个区间 3. 需要元服务器,维护数据分布信息 按数据量分布 将数据视为顺序增长的文件,并按照一定大小划分为 chunk,需要元数据服务器记录数据分布信息 一致性哈希
分布式系统 分布式系统:一致性级别 分布式系统一致性级别 强一致性 任何时刻任何用户或任何节点都可以读到最近一次成功更新的数据。 实现强一致性的一致性算法 1. Two-Phase Commit, 两阶段提交 2. Three-Phase Commit,三阶段提交 3. Paxos 4. Raft Paxos 是目前最重要、应用最广的算法。 > 世界上只有一种一致性协议,就是Paxos, 其他协议要么是paxos的简化,要么是错误的 当然,严格地讲,Paxos 和 Raft 应该是共识算法,没有一致性强弱之分 单调读一致性 任何时刻,任何用户一旦读到某个数据在某次更新后的值,
golang Golang 使用反射获取 struct 的值 对于指针指向的对象,使用 reflect.ValueOf(...).Elem(...).FieldByName(),否则,直接: reflect.ValueOf(...).FieldByName() type Human struct { name string id int } human := &Human{ name: "Jack", id: 1, } obj := reflect.ValueOf(human) // if it is a poiner,
golang Golang 使用反射获取 interface{} 中属性的值并转化为 map[string]interface{} 首先, 使用 reflect.ValueOf 先获取值, 然后使用 .Elem() 获取对象。再之后就可以通过属性的名称通过反射来获取值了。示例: type Human interface { Name() string Type() string } type Martian struct { name string id int } func (m *Martian) Name() string { return m.name } func
golang golang: use reflect to get field's value from a interface{} to map[string]interface{} If you want to get all fields' value from a interface{}, you can use reflect. First, use reflect.ValueOf to get the value, then use .Elem() get the element. Then you can get
golang Golang 使用反射将 inteface{} 转为 struct{} 如果是仅想知道如何将 interface{} 转化为 struct{} 的话, 代码如下: interface.(*Struct) 使用反射转的话,先用 reflect.ValueOf 来获取 interface 的 value, 然后使用 Interface() 来获取 interface 。 如下: type Human interface { Name() string Type() string } type Martian struct { name string
golang Golang use reflect interface{} to struct{} If you just want to know how to convert interface{} to struct{}, the code just as below: interface.(*Struct) you can use reflect.ValueOf to get the value of interface, then use Interface(
golang [Golang] Postgres "LastInsertId is not supported by this driver" Golang连接 postgres 数据库时,调用 LastInsertId 报错。这是因为 postgres dirver 不支持这个方法,在 postgres 想要获取最新插入数据的 ID 有特定的方法,需要使用 Returning 关键字,如下: var id int if err := db.QueryRow("INSERT INTO table(name) VALUES("xxxx") RETURNING
python Python 脚本运行时打开文件所在目录 Python 脚本运行时打开文件所在目录,使用 sys.path[0] 获得目录,使用 os.chdir 打开文件夹,如下: import os import sys os.chdir(sys.path[0])
shell check the operating system in the shell use uname to check OS in the shell if [[ `uname` == 'Darwin' ]]; then echo "MacOS" fi if [[ `uname` == 'Linux' ]]; then echo "Linux" fi
shell 在 shell 中判断操作系统 在 shell 中判断操作系统,使用 uname 命令 if [[ `uname` == 'Darwin' ]]; then echo "Mac OS" fi if [[ `uname` == 'Linux' ]]; then echo "Linux" fi
shell iterate all environment variables shell iterate all environment variables for i in `env` do echo $i done shell iterate all environment variables, then parse the name and value of every environment variable. for i in `env` do
shell shell 遍历环境变量 shell 遍历环境变量 for i in `env` do echo "$i" done 遍历环境变量,并将key和value解析出来,即将变量名称和变量值解析出来: for i in `env` do key=`echo $i | awk -F"=" '{print $1}'` val=`echo $i | awk -F"=" '{