Ubuntu 20.04 安装 Podman Podman 是一款用于开发运行测试容器和镜像的工具,不同于 Docker,他不需要 root 权限就可以运行。同时 Docker 需要 Docker Engine 以 Daemon 的形式运行,而 Podman 则不需要。 这篇文章介绍如何在 Ubuntu 20.04 上安装 Podman 在安装 Podman 之前需要安装依赖工具 12$ sudo apt update$ sudo apt i 2021-12-08 #container
配置 nvim 手贱修改了一次电脑的配置,导致之前的 vim 重装,并丢失了相关的配置,本文记录一下重现安装并且配置的过程,作为备忘,在下次遇到相关的问题时,可以更快的恢复。 首先是安装 neovim,这里不选择 vim 的原因是听网上的推荐, neovim 更为现代化一点,所以尝试使用 neovim 替代 vim。 直接通过 brew 安装。 1$ brew install neovim 键入 nvim 就可 2021-12-07 #vim
为何需要 Helm Kubernetes 在容器编排领域已经成为事实上的标准,一款云原生应用在开发周期的最后阶段都是会被部署到 k8s 集群之上。 部署在 k8s 上的应用在免去了拓展,迁移,服务发现等一系列工作的同时,也带来了其他的问题。 由于 Kubernetes 的资源都是声明式的,这意味着如果想要部署一款新的应用,那么就需要围绕应用所需的资源,以及其的元信息编写对应的 yaml 文件,包括不限于 servic 2021-11-23 #k8s
在 Mac 上安装数据库 在日常的开发过程中,通常需要使用到数据库。 在本地安装开发用的数据库有两种做法,一是使用 docker 起一个 container,二是直接安装数据库服务。 对于容器来说,优点在于可以快速的启动服务,并且在使用后清理干净,但是在 Mac 上使用 docker 会有文件效率的影响,并且在 Apple silicon 的 docker 只能使用 arm 架构的镜像,因此可以选择直接安装对应的数据库服务 2021-11-18 #MySQL #Redis
初始化 Go 项目 初始化项目初始化一个 Go web 项目的步骤。 首先是创建项目的的文件夹,并初始化 go.mod, 假设项目的远端地址为 github.com/someone/someproject.git 123$ mkdir PROJECT_NAME$ cd PROJECT_NAME$ go mod init github.com/someone/someproject 项目的布局结构可以参考 Stan 2021-11-16 #Go
linux 文件系统层次标准 根据Linux 标准, 记录下 Linux 文件系统下各个目录的作用,起到备忘的作用。 文件属性首先是关于文件属性的说明,一个文件可以具备如下的两个属性,是否为 static 以及是否为 shareable。两个属性都不相同的文件就不应该放在同一个目录下。 Shareable的文件,即可分享的文件,具有这种属性的文件可以被其他的主机使用,例如家目录下的用户文件。 Unshareable的文件,即 2021-11-11 #Linux
多生产者关闭 Goroutine 在本篇文章中,将介绍如何在多个生产者完成生产后关闭 goroutine. 在编程中,我们会遇到多个生产者,单一消费者的场景。 在这种情况下,工作流会分为了两个 stage: Stage 1: 多个生产者并发地计算结果,并将结果传入 channel Stage 2: 消费者从 channel 中读取结果,做下一步的计算 在两个 stage 完成工作后程序自然退出,因此需要在所有生产者完成工作后, 2021-06-25 #Go
为 JWT 生成私钥 今天在写一个登录鉴权的接口,用到了 JWT,JWT 的签名与认证需要用到一对公私钥。所以需要在本地生成一对密钥。 方法很简单,只需要用到 ssh-keygen 和 openssl 即可,如果命令行下没有这两个工具,可以通过 homebrew 来安装。 生成的方法代码如下: 1234# 首先生成私钥文件,在生成过程中不要输入密码ssh-keygen -t rsa -b 4096 -m PEM -f 2021-02-07 #日常
Go append 的小技巧 在开发的过程中,遇到了一个需要将 T 类型切片映射为 F 类型切片的操作,由于 Go 的标准库中并没有内置 Map 函数,于是就写了一个简单的辅助函数。 第一版是这样的 123456789101112131415161718var ts = []struct { Foo int} { { Foo: 1, }, { Foo: 2021-02-04 #Go
我是如何写程序的 做为一名软件工程师,日常的工作就是去编写程序,写一段程序很简单,就比如 “hello world“。但是如果想要写好一段程序,就不是那么容易的事了,这篇文章主要是记录一下自己在编程时的一般流程。 1. 明确并且理解需求最近在读一本关于微服务架构的书,其中对需求有这样一个定义: 需求是一个必须要解决的问题,以及围绕这个问题的特定上下文环境 将每个开发任务当成需要解决的一道数学题。那么在解题的第一 2021-02-04 #日常