golang接口小样

package main import ( "fmt" "math" ) type geometry interface { area() float64 perim() float64 } type square struct { width, height float64 } type circle struct { radius float64 } //要在go中实现一个接口,我们只需要实现接口中的所有方法 //`square`的实现,s接收者接受了area()方法

handle_error() takes 4 positional arguments but 6 were given

自己的工程代码基于flask写的,最近升级了webargs到5.1.3版本之后就会有一个异常错误捕获type error 提示handle_error() takes 4 positional arguments but 6 were given错误 这个错误的意思是,这个handle_error函数需要四个参数,但是给了六个 后边查到webargs的官方文档,我们这里改造一下老版本的handle error函数就可以啦 老版本的handle error 函数,确实是只有四个参数。但是我们升级了webargs,然后我们自己的CustomFlaskParser是继承自FlaskParser这个类的,这个类的handle_error函数是有六个参数的,所以我们重载之后的函数也需要这么多个参数。 FlaskParser类的handle_error函数

简单使用Certbot申请和使用Let's Encrypt的SSL证书

certbot是什么 我们申请和使用Let's Encrypt的免费HTTPS证书, 就需要一个证书申请和管理的工具, 然后certbot是官方推荐的申请工具, 我们使用这个工具申请和管理我们的证书 certbot支持大部分的linux发行版, 使用简单, 我们直接下载和安装他们: 我这里的系统是ubuntu, 如果是centos或者其他发行版安装方式应该都是差不多的, 我使用官方包直接快速安装 关于HTTPS是什么可以看这里, Let's Encrypt是什么看这里. sudo apt update && sudo apt install certbot 安装成功之后需要使用sudo命令运行, 我们运行看看: sudo certbot -h 输入密码之后, 可以看到说明 获取证书 安装好管理工具之后,

让你的SSH通过HTTP代理或者SOCKS5代理

socks5代理 有时候你的SSH因为某些原因, 或者你的VPS的SSH端口被某些无法阻挡的力量被封禁了, 你使用普通的SSH方式无法登录你的服务器, 所以这时候我们需要使用一些方式, 让你的SSH通过代理链接你的服务器, 进而解决这个问题. 直接配置 如何让你的ssh链接使用socks代理呢, 我们可以使用nc命令, 使用ssh的ProxyCommand配合nc可以让ssh通过你设置的代理访问服务器 $ ssh -o ProxyCommand="nc -X 5 -x 127.0.0.1:1080 %h %p" root@server 其中使用ProxyCommand命令, 带上具体内容nc -X 5

Golang 新手可能会踩的 50 个坑

Golang 新手可能会踩的 50 个坑 Go 是一门简单有趣的编程语言,与其他语言一样,在使用时不免会遇到很多坑,不过它们大多不是 Go 本身的设计缺陷。如果你刚从其他语言转到 Go,那这篇文章里的坑多半会踩到。 如果花时间学习官方 doc、wiki、讨论邮件列表、 Rob Pike 的大量文章以及 Go 的源码,会发现这篇文章中的坑是很常见的,新手跳过这些坑,能减少大量调试代码的时间。

使用drone和gogs搭建自己的CI/CD系统

drone是一个基于容器的本地持续交付平台,和Jenkins是差不多的,然后配合轻量级的gogs来作为git管理,都是基于golang开发的很符合我的需求,我们来把它们结合作为一个完整的CI、CD平台。 首先我们要先安装docker,上次的篇幅我们已经说过了我就不赘述了。 需要的东西有:linux,docker,docker-compose,drone,gogs,git等。 安装gogs和drone 配合荣锋亮大哥的yml文件和docker-compose我们可以很容易安装他们: version: '3' services: drone-server: image: drone/drone:latest ports: - "8080:80" - 8843:

使用docker安装Jenkins并且配置一个agent(二)

Jenkins界面 首先我们进入Jenkins的管理界面,首先使用docker启动上一节在docker安装好的Jenkins。 $ docker container start jenkins 启动好了之后打开浏览器输入http://localhost:8000 进入Jenkins的管理界面。 然后点击系统管理,节点管理。 然后我们创建一个新的agent。 agent创建 我们点击左边的new node创建一个新的agent。 我们保持默认值不变,直接保存。 然后我们在节点中心里边点击agent的这个节点,看到如下界面。 如果你没有看到,可以在这个agent的configure里边的 Launch method 设置成通过Java web启动代理就可以了。 然后我们看到里边会有一行命令,来说明怎么执行Jenkins agent ,我们只需要他的secret和host就好了。 启动agent节点 使用docker安装Jenkins

使用docker安装Jenkins并且配置一个agent(一)

前提 直接开始吧,本次搭建需要的东西有: Linux docker Jenkins java sdk terminal 安装docker 打开系统的terminal,先更新一下系统的包,我这里以ubuntu为例,默认你已经安装了java sdk了。 $ sudo apt update $ sudo apt upgrade 完了之后安装docker: $ sudo apt install docker.io $ sudo apt install docker-compose # 安装java open

简单配置你的CLI/终端通过代理

有时候开发任务需要代理的时候, 可以这么配置你的bashrc或者zshrc文件, 一般直接导出你的本地工具开放的端口. 我已经假设你已经配置好了一些科学上网工具, 已经有本地客户端, 并监听了诸如1080或者8080的http或者socks5端口. 完了之后需要执行$ source bashrc/zshrc 来利用source命令重新执行你修改后的rc文件. 接着可以执行$ curl ip.gs来检查你的CLI/终端工具是否已经通过代理. 最后就可以愉快地执行brew, curl, npm, pip, go get等任务啦😂