golang Golang 字符串是否存在于数组中 基本原理,使用 sort 库,先对数组排序,再二分搜索进行确认。 func assert(actual, expect bool, t *testing.T) { if actual != expect { t.Fatalf("Expect %v, but got %v", expect, actual) } } func TestSearchInArray(t *testing.T)
技术 国内 Ubuntu 20.04 安装kubeadm 命令如下: sudo apt-get update && apt-get install -y apt-transport-https ca-certificates curl # 更换镜像 curl https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | sudo apt-key add - echo "deb https://mirrors.aliyun.
javascript Javascript 过滤数组 使用 filter 可从数组中快速找出符合条件的元素组成新元素。示例如下: [1,2,3].filter(i => i > 2) > [3] 其中, i => i>2 为简化的 Lambda 表达式,等价于: i => { return i > 2 }
golang Golang SHA256 及将哈希值转化为字符串 Golang 做 SHA256 哈希,以及将哈希值转化为字符串,如下: import ( "crypto/sha256" "fmt" "testing" ) func TestSHA256(t *testing.T) { b := sha256.Sum256([]byte("Hello world")) // 转化为字符串 s := fmt.
terraform 在 ubuntu 上安装 Terraform 在 ubuntu 上安装 Terrform,执行以下命令: curl -fsSL https://apt.releases.hashicorp.com/gpg | sudo apt-key add - sudo apt-add-repository "deb [arch=$(dpkg --print-architecture)] https://apt.releases.hashicorp.com $(lsb_release -cs) main&
Docker 查看及清理 docker 容器日志 docker 容器日志太大,导致磁盘占用过高,需定时清理(也可提前限制容器日志大小)。一般情况下,容器日志位于/var/lib/docker/containers/<container_id>/<name>-json.log。 可编写脚本如下 vim check-docker-logs: #!/bin/sh echo "======== start clean========" logs=$(find /var/
golang Golang Hex 字符串转 big.Int 如下,先创建一个 big.Int,再设置其值为16进制的字符串: package main import ( "fmt" "math/big" ) func main() { s := "a" i := new(big.Int) i.SetString(s, 16) fmt.Println(i) // 10
spring-boot Spring Boot 生成图片验证码 基本原理就是用Java画张指定大小的图片,在图片上随机摆上若干个数字或字母,数字或字母要有一定的倾斜和位移,要变一下字体和颜色,再画几条干扰线,然后就可以返回给客户端了。 创建文件 CaptchaUtil.java,代码如下: // Write your package import javax.imageio.ImageIO; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import
MySQL MySQL查看表的数量 SQL 语句如下,指定好表名即可: SELECT COUNT(*) TABLES, table_schema FROM information_schema.TABLES WHERE table_schema = '<your database>' GROUP BY table_schema;
openebs OpenEBS Pod 无法挂载 volume OpenEBS 突然出现 Pod 无法挂载的情况,检查 ctrl 和所有 rep 的日志,出现:Registeration Failed , UUID is nil 等错误。 排查后发现,是因为 jiva 的镜像版本不一致。 虽然 ctrl 和 rep 指定的镜像都是 openebs/jiva:ci,但这个镜像是会升级的。在官方镜像升级后,如果集群中 ctrl Pod
ubuntu Ubuntu 将用户加入 sudo 权限 添加sudo权限,假设用户名为 ubuntu sudo usermod -G sudo ubuntu 添加root权限 如果需要让此用户有root权限,执行命令: sudo chmod +w /etc/sudoers sudo vim /etc/sudoers 修改文件如下: # User privilege specification root ALL=(ALL) ALL ubuntu ALL=(ALL) ALL 保存退出,
ubuntu Ubuntu 磁盘扩容 查看磁盘信息 df -h 查看物理分区、逻辑卷信息 fdisk -l 查看组卷信息 sudo vgdisplay sudo lvdisplay sudo pvdisplay 扩展lvm卷 sudo lvextend --extents +100%FREE /dev/mapper/ubuntu--vg-ubuntu--lv 重新计算磁盘大小 sudo resize2fs /dev/mapper/ubuntu--vg-ubuntu--lv 再次查看磁盘信息 sudo df -h
vuetify vuetify overlay 遮罩层点击空白处隐藏 overlay 组件的 @click 不可用,需使用 @click.native,如下: <v-overlay :value="show_qr" @click.native="show_qr = false"> <qrcode-vue :value="address" :size="300"
kubernetes Kubernetes 强制删除 Pod 添加参数 --grace-period=0 --force,示例如下: kubectl delete pod -n default alpine-test-85d77cc67b-c9m7l --grace-period=0 --force
Docker Docker login 命令行报错 在 ubuntu 上使用 sudo docker login -u <username> -p <password> 登录时,报错: WARNING! Using --password via the CLI is insecure. Use --password-stdin. Error saving credentials: error storing credentials -
kubernetes Kubernetes 中 Deployment 与 StatefulSet 的区别 Deployments 和 ReplicationControllers 表示“无状态”使用,且相对较轻量级一点。所谓的“状态”也就是数据持久化存储,一般情况下,二者的 Pod 在重启后,数据就丢失了。 StatefulSets 表示会进行存储状态,且使用 volumeClaimTemplates/claims 来申请存储空间,在重启后,数据也会保存。 所以,如果应用是有状态的,那么就部署成 StatefulSet;如果是无状态的,或者说,数据是交给后端系统(如数据库、申请的PV)来保存的,
fabric-java-sdk fabric-java-sdk中获取区块哈希 fabric-java-sdk 中没有 getBlockHash 这一方法,我们需要自己计算区块哈希,代码如下: String currentHash = Hex.encodeHexString(SDKUtils.calculateBlockHash(this.client, blockInfo.getBlockNumber(), blockInfo.getPreviousHash(), blockInfo.getDataHash()));
fabric-java-sdk fabric-java-sdk中blockInfo.getDataHash二进制转字符串 fabric-java-sdk中blockInfo.getDataHash二进制转字符串(byte[] 转 string),如下,使用 Hex.encodeHexString Hex.encodeHexString(blockInfo.getDataHash); Hex.encodeHexString(blockInfo.getPreviousHash);
spring-boot 在 spring-boot打包出来的 jar 包中中执行其它的main.class 需通过以下命令执行 java -cp your.jar -Dloader.main=your.package.Main org.springframework.boot.loader.PropertiesLauncher 如果直接执行 java -cp your.jar your.package.Main 会报错误: Error: Could not find or load main class ...
Java 如何比较Java两个Long对象相等 Long a = 30000L; Long b = 30000L; // 使用equals或者.longValue比较 a.equals(b); a.longValue() == b.longValue();
技术 怎么分割Java包名中的单词 如何在包名中单独添加单词?以下哪项是正确的? com.stackoverflow.my_package(下划线)com.stackoverflow.my-package(连字符)com.stackoverflow.MyPackage(CamelCase)一般标准是什么? 答案:直接将单词写在一起,如:com.stackoverflow.mypackage。如果超过3个单词,建议使用缩写
python Python 通过 IP 地址获取地理位置 通过一个接口 API,直接 GET 即可 import requests def test_get_geo_for_ip(): resp = requests.get(url = 'http://ip-api.com/json/%s' % ('3.115.236.139')) data = resp.json() print(data)
xadmin xadmin 支持 django 3.x 因 xadmin 原作者已不再维护仓库,所以只能使用 fork 的版本。 仓库地址:https://github.com/zgljl2012/xadmin-x pip 安装 pip install xadmin-x 用法与之前的 xadmin 一致,只是添加了对 django 3.x 的支持
Docker docker build: signal arrived during cgo execution docker build 是出现此错误,系统是 ubuntu 18.04,docker 版本是 Docker version 19.03.6, build 369ce74a3c 解决方法 sudo dpkg -r --force-depends golang-docker-credential-helpers