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.
python Python 3.9 报错 AttributeError: 'HTMLParser' object has no attribute 'unescape' 原因是 HTMLParser.unescape 在 3.9 中被废弃了。解决办法,可以降下版本,降到 3.8,或者升级 setuptools: pip3 install --upgrade setuptools 如果是运行pip install -r requirements.txt, 升级后有可能还是不行,因为依赖包里可能有某个包对 setuptools有版本要求,所以在运行中,又重新降级了,对这种情况,建议直接将 Python 降级到 3.
javascript Javascript 过滤数组 使用 filter 可从数组中快速找出符合条件的元素组成新元素。示例如下: [1,2,3].filter(i => i > 2) > [3] 其中, i => i>2 为简化的 Lambda 表达式,等价于: i => { return i > 2 }
latex Latex 希腊字母表 Latex 希腊字母表: 希腊字母小写、大写 LaTeX语法 α A \alpha A β B \beta B γ Γ \gamma \Gamma δ Δ \delta \ Delta ϵ ε E \epsilon \varepsilon E ζ Z \zeta Z η H
latext Latex 属于集合和不属于集合 其实很简单,Latex 很多符号都是语义化的。就是 in 和 not in。 a \in A b \notin B 展示如下: \[ a \in A, b \notin B \]
latex Latex 大括号语法 Latex 大括号语法如下: \left\{ \begin{aligned} 1 \\ 2 \\ 3 \\ 4 \\ 5 \end{aligned} \right. 显示如下: \[ \left\{ \begin{aligned} 1 \\ 2 \\ 3 \\ 4 \\ 5 \end{aligned} \right. \]
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;
vscode 在 VSCode 中将 javascript 的缩进修改为2个空格 打开命令栏 (Windows 快捷键:Ctrl + Shift+ P | macOS 快捷键: ⇧ + ⌘ +P) 选择:"Preferences: Configure language specific settings..." (command id: workbench.action.configureLanguageBasedSettings) 选择语言:JavaScript 添加代码: "[javascript]": { "editor.tabSize": 2
openebs OpenEBS Pod 无法挂载 volume OpenEBS 突然出现 Pod 无法挂载的情况,检查 ctrl 和所有 rep 的日志,出现:Registeration Failed , UUID is nil 等错误。 排查后发现,是因为 jiva 的镜像版本不一致。 虽然 ctrl 和 rep 指定的镜像都是 openebs/jiva:ci,但这个镜像是会升级的。在官方镜像升级后,如果集群中 ctrl Pod
python MongoDB 为什么 count_documents 比 count 慢 count 是MongoDB的本地方法,仅仅是一个集合文档数量的缓存,当插入文档和删除文档时进行更新,调用的时候不会真的去遍历计算所有文档的数量,而是返回缓存值。 count_documents 接受查询,将循环获取所有符合条件的记录并返回计数。 建议,在 PyMongo 3.7 版本及以上,可使用 estimated_document_count 进行计数查询。
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
cpchain CPChain Token Swap and FAQ If you want to swap your ERC20 coins(tokens) to be Mainnet coins, you should do the token swap. This article is the tutorial for that. What’s TOKEN SWAPA token swap is
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 inspect --format='{{.LogPath}}' <container_name> 日志追踪: sudo tail -f `docker inspect --format='{{.LogPath}}' <container_name>`