/images/wb.png

怕什么真理无穷,进一寸有一寸的欢喜

纪念一位老友

几年前,一位好朋友去世了,九零后,跟我年纪一样。我跟他从小就认识,我们一起上的小学,一起上的初中,高中之后便联系的少了,后来我去外地读书,联系的就更少了。 那还是二零一九,那时我刚从西安来北京。一天夜里

windows 下 python virtualenvwrapper-win 使用

Virtualenvwrapper 是一个用于管理 Python 虚拟环境的工具,它为创建、切换和删除虚拟环境提供了一组方便的命令,并通过简化管理多个虚拟环境的过程来提高开发效率。 安装可以使用 pip 安装 Virtualenvwrapper: 1 pip install virtualenvwrapper-win 安装完

SSH error: permissions are too open

问题描述我的 git 版本在 1.8.3.1 的时候提交 push 代码时一直报错 git 版本 Permission denied (publickey) 1 2 3 4 5 Permission denied (publickey). fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists. 排查了几个小时,一直没解决,之前也一直是这么用的,也没出现过问题。后来没办法,我尝试

Windows 10 专业版使用 WSL

什么是 wslWindows Subsystem for Linux(WSL)是一个在 Windows 10+ 上能够运行原生 Linux 二进制可执行文件的兼容层。 与 WSL1 相比,WSL 2 使用更新、更强大的虚拟化技术在轻量级实用工具虚拟机 (VM) 中运行 Linux 内核。 安装我是 win10 专业版,其他版本的 win10

Go 编译标签 build tag

简介在 Go 中,build tag 是添加到代码中第一行,来标识编译相关信息的,build tag 决定了当前文件是否会被当前 package 所包含,用于限制一整个文件是否应该被编译入最终的二进制文件,而不是一个文件中的部分代码片段。

minikube 安装使用

简介Kubernetes 是一个生产级别的容器编排平台和集群管理系统,不仅能够创建、调度容器,还能够监控、管理服务器,它凝聚了 Google 等大公司和开源社区的集体智慧,从而让中小型公司也可以具备轻松运维海量计算节

Go sync.Map 解读

背景项目中遇到了需要使用高并发的 map 的场景,众所周知 Go 官方的原生 map 是不支持并发读写的,直接并发的读写很容易触发 panic。 解决的办法有两个: 自己配一把锁sync.Mutex或者更加考究一点配一把读写锁s

MySQL 常见问题(三)

InnoDB、MyISAM的区别 磁盘文件不同: MyISAM 引擎的表会生成三个磁盘文件: table_name.frm 该文件中存储表的结构信息。table_name.MYD 该文件中存储表的行数据。table_name.MYI 该文件中存储表的

session cookie token 的区别

Cookie 和 SessionHTTP 协议是一种无状态协议,即每次服务端接收到客户端的请求时,都是一个全新的请求,服务器并不知道客户端的历史请求记录;Session 和 Cookie 的主要目的就是为了弥补 HTTP 的无状态特性。 Session 是什么客户端请求服务端,

MySQL 常见问题(二)

索引数据结构为什么不使用红黑树或B树在 InnoDB 引擎中,索引的底层数据结构是 B+ 树。MySQL 的数据是存储在硬盘的,在查询时一般是不能「一次性」把全部数据加载到内存中。红黑树是「二叉查找树」的变种,一个 Node 节点只

MySQL 为什么使用 B+ 树索引

前言为什么 MySQL 采用 B+ 树作为索引? 如果纯粹的猜测 MySQL 数据库索引为什么使用 B+ 树?那么围绕这个问题的回答通常一定是围绕 B+ 树本身是什么,有什么优势这两点去解释这个问题。 这不是我开始这么去想的,看了很多文章都是从这

mysql workbench 查看触发器

mysql workbench 是官方推荐的数据库工具,用了很长时间却一直不知道触发器在哪儿😢。 触发器是对单个表的操作,而不是整个数据库的操作,所以 Alter Table 就可以看到触发器: 图1 图2 点这个扳手图标也可以看到触发器,跟 Alter Table 效果一样: 图

Redis 缓存击穿、缓存穿透、缓存雪崩

缓存击穿高并发流量,访问的这个数据是热点数据,请求的数据在 DB 中存在,但是 Redis 存的那一份已经过期,后端需要从 DB 从加载数据并写到 Redis。 总结起来就是:单一热点数据、高并发、数据失效。 缓存击穿 解决方案 过期

Go GC 垃圾回收

垃圾回收(Garbage Collection,GC)是编程语言中提供的自动的内存管理机制,自动释放不需要的内存对象,让出存储器资源。GC 过程中无需程序员手动执行。 GC 机制在现代很多编程语言都支持,GC 能

Github Actions replace env vars in file

Github Actions 是个好东西😀,最近在使用的时候有个需求是,我项目不想把设置成私有的,但是有些配置又比较私密,比如 github 的 Personal access token,这种配置就不能暴露出来。 呃,这种需求前辈们估计也遇到过,github actions marketplace 是个好地

Gitalk 初始化 issue

在用 Gitalk 作为个人博客评论系统时,发现有个恶心的点是,每篇文章必须手动初始化一个 issue 或是登录 github 后,把文章一个一个点开界面去初始化 issue,不然就会出现以下的提示 no issus 个人觉得这件事情非常麻烦,Gitalk 使