- 博客(43)
- 资源 (1)
- 收藏
- 关注
原创 json to go
简介在对接第三方或者某些功能重写的情况下,有json字符串,需要Go的结构体定义;当字段特别多的时候,费时费力。此时可以使用json to go的这个在线工具,自动生成对应的Go结构体,方便而且不出错jsontogohttps://mholt.github.io/json-to-go/...
2022-02-10 17:25:05
873
原创 SMMS图床
简介SM.MS图床,可以用于保存图片;结合typora&picgo进行使用,相比于github更方便国内访问;个人免费额度是5G。注册填写用户名称,邮箱,密码;点击注册即可。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MTv6Fa1G-1644378368718)(https://s2.loli.net/2022/02/09/YEqWZN6goaQLXrD.png)]PicGo设置登录SM.MS,将生成的Token填到PicGo中即可补充由于每个
2022-02-09 11:46:54
5459
1
原创 chrome书签搜索
简介chrome浏览器中书签保存的越来越多,后续需要重新打开的时候,不一定记得清楚是在哪个目录;此时需要通过关键字进行搜索快速找出保存的网址插件Bookmark Search插件,也可以找类似功能的其他插件配置使用在chrome地址栏中,输入bm,然后空格或Tab键(对应chrome搜索引擎键盘快捷键);再输入查找关键字,即可从保存的书签中查找...
2022-02-09 10:21:04
1410
原创 win10开启wifi
简介笔记本电脑是win10电脑,可以开启wifi热点,供手机连接wifi上网使用。操作流程进入设置,点击网络和Internet打开与其他设备共享我的Internet连接,并设置wifi的名称和密码手机连接wifi[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hsnFXtxU-1641439709224)(https://raw.githubusercontent.com/xiaofeng-zerone/pubimg/master/imagesima
2022-01-06 11:32:05
4031
原创 chrome headless截图
Headless ChromeHeadless Chrome 是 Chrome 浏览器的无界面形态,可以在不打开浏览器的前提下,使用所有 Chrome 支持的特性运行你的程序。相比于现代浏览器,Headless Chrome 更加方便测试 web 应用,获得网站的截图,做爬虫抓取信息等。相比于出道较早的 PhantomJS,SlimerJS 等,Headless Chrome 则更加贴近浏览器环境。容器部署https://github.com/Zenika/alpine-chromedocker
2022-01-04 18:00:28
1626
原创 libvirt go使用
需求通常在云环境中,为了保证云平台中虚拟机的正常运行,基本都需要这样一个功能,就是收集虚拟机的监控数据,比如cpu的使用率、内存的使用率、磁盘io、网络io等基本信息。可以利用这些信息及时调整云平台环境中出现的一些问题,从而实现保证VM的正常运行。原理说到KVM管理工具,首先应该想到的就是libvirt,因为目前对KVM使用最为广泛的管理工具(应用程序接口)就是libvirt。Libvirt本身构建于一种抽象的概念上,它为受支持的虚拟机监控程序实现常用功能提供通用的API。Libvirt提供了操作KV
2022-01-04 17:37:40
2750
原创 grpc调试工具grpcui安装使用
简介grpcui通过web的方式对grpc进行调试,类似于postman对http接口的调试。安装官网:https://github.com/fullstorydev/grpcuigo get github.com/fullstorydev/grpcuigo install github.com/fullstorydev/grpcui/cmd/grpcui苦于没有翻墙,所以没能一步到位,手动下载部分依赖,记录如下://安装go环境yum install gomkdir gopathex
2020-05-08 19:13:21
8025
原创 vscode在windows下golang开发环境搭建
git安装git官网:https://git-scm.com/Downloads-->Windows-->64-bit Git for Windows Setup下载后,双击安装文件,正常安装即可go安装go官网:https://golang.google.cn/Download go-->go1.12.13.windows-amd64.msi下载后,双击安装文件...
2019-11-17 23:02:32
381
原创 source insight 4.0 中文乱码解决
使用source insight 4.0打开工程后发现代码中文注释存在乱码,原因为源码文件的编码类型导致,解决办法如下:单文件File ---> Reload As Encoding ---> Chinese Simplified (GB2312) ---> Load 即可选择其他的Chinese Simplified 类型也行。项目文件step1: Ct...
2019-08-12 14:50:25
2205
原创 go和c混编
c主程序中调用go语言函数go语言函数调用c语言函数概述代码目录: [root@localhost test1]# tree . ├── a.out ├── foo.c ├── foo.h ├── libtest.h ├── libtest.so ├── main.c ├── main.go └── num.c编译: mv main.c ../ go bui...
2019-08-05 15:24:36
1371
原创 protobuf&grpc安装
下载安装protobuf&grpc的开发环境,用于C++开发服务端protobuf安装网址: https://github.com/protocolbuffers/protobuf/blob/master/src/README.md下载源码: https://github.com/protocolbuffers/protobuf/releases/latest编...
2019-08-05 14:28:28
1302
原创 c++和c混编
c主程序调用c++函数,如本示例中的init()。c++函数中又访问c中的变量,如本示例中的infoget(),访问了c中的变量a。c++函数中又访问c中的函数,如本示例中的testget(),调用了c中的geta()。概述示例代码目录:[root@localhost ccc]# tree.├── a.out├── build.sh├── foo.c├── foo.h├─...
2019-08-05 11:11:38
236
原创 c++主程序调用c函数
有时候需要在c++的主程序中调用c语言实现的函数,其实还是挺方便的。概述示例代码目录:[root@localhost candcxx]# tree.├── hello.c├── hello.h├── main└── main.cc编译命令:gcc -o main main.cc hello.c 执行测试:[root@localhost candcxx]# ./m...
2019-08-05 10:05:40
1386
原创 机器时钟实现高精度定时
Linux系统使用usleep()以及nanosleep(),受内核时钟频率的影响,如x86默认是100Hz,这样精度只能到0.01s,也就是10ms。timer_use.c/* According to POSIX.1-2001 */#include <sys/select.h>/* According to earlier standards */#include &l...
2019-05-15 11:56:32
337
原创 go语言之切片复制与追加
示例代码:package mainimport ( "fmt")func main() { // copy示例 // 创建一个新的更大的切片并把原分片的内容都拷贝过来 sl_from := []int{1, 2, 3} sl_to := make([]int, 10) n := copy(sl_to, sl_from) fmt.Println("num:", n, "it...
2019-05-06 14:25:49
1199
原创 go语言之切片内存结构
当相关数组还没有定义时,我们可以使用 make() 函数来创建一个切片,同时创建好相关数组slice1 := make([]type, len)orslice1 := make([]type, len, cap)// 使用make初始化切片test := make([]int, 2, 5)// 对应的内存结构test --> []int --> ptr | len(2...
2019-05-06 13:57:23
535
原创 go语言之闭包
代码示例package mainimport ( "fmt" "strings")func main() { // 匿名函数,不能够独立存在(编译器会返回错误:non-declaration statement outside function body) // 可以被赋值于某个变量,即保存函数的地址到变量中 // 然后通过变量名对函数进行调用 test := func(x...
2019-05-06 11:37:18
284
原创 go语言之回调函数
函数可以作为其它函数的参数进行传递,然后在其它函数内调用执行,一般称之为回调。代码示例:package mainimport "fmt"func main() { // 回调函数示例 // 使用函数Add作为函数AddOne的参数,然后在AddOne中对函数Add进行调用 y := AddOne(2, Add) fmt.Println("y:", y)}// 求和函数f...
2019-05-06 10:41:21
1520
原创 go语言之函数变参
介绍go语言中函数变参的使用方法示例代码如下package mainimport "fmt"// 求和,变长参数使用func sum(title string, nums ...int) { var sumValue int // 变长参数为切片类型 for _, num := range nums { sumValue += num } fmt.Println(ti...
2019-04-30 17:51:07
300
原创 go语言之sync.Map
简介go语言自带的map,不具备线程安全;所以为了实现线程安全,可以使用sync.Map具体示例见如下代码package mainimport ( "fmt" "sync")func main() { var testMap sync.Map // 获取a对应的键值应该失败 valueA,ok := testMap.Load("a") if ok { fmt.Pr...
2019-04-30 16:53:17
640
原创 go build ldflags
示例go build -ldflags "-w -s -X main.Version=${VERSION} -X main.Build=${BUILD}"解释-w 去掉DWARF调试信息,得到的程序就不能用gdb调试了。-s 去掉符号表,panic时候的stack trace就没有任何文件名/行号信息了,这个等价于普通C/C++程序被strip的效果,-X 设置包中的变量值...
2019-04-10 11:29:36
14774
原创 Go语言并发同步初体验
示例代码package mainimport ( "fmt" "sync")func sendMsg(msg_ch chan string, wg *sync.WaitGroup) { fmt.Println("sendMsg start") msg_ch <- "hello 1" //向通道中写数据 fmt.Println("sendMsg end") wg.Do...
2019-04-08 11:34:23
138
原创 docker下beego开发环境搭建
镜像制作编辑Dockerfile#base imageFROM golangMAINTAINER feng xiao xiaofeng1@chinaddos.com# ENV GOPATH /go# Install beego & beeRUN go get github.com/astaxie/beegoRUN go get github.com/beego/bee...
2019-02-27 17:04:00
1949
原创 docker环境搭建
centos虚拟机安装官网下载镜像 https://www.centos.org/download/选择Minimal ISO http://ftp.sjtu.edu.cn/centos/7.6.1810/isos/x86_64/CentOS-7-x86_64-Minimal-1810.iso下载完成后镜像文件名 CentOS-7-x86_64-Minimal-181...
2019-02-27 15:37:10
252
原创 流量限速实现分析
功能需求对流量报文进行限速处理,一般表现为___Mbps,或者___秒___报文数等配置形式即在规定时间内最多通过阀值报文数,后续报文进行丢弃处理。实现逻辑当限速周期内,对报文进行统计计数更新和判断,若小于阀值则通过,若大于阀值则丢弃。当限制周期达到,对限速状态表进行重置。实现代码//报文限速typedef struct advrule_pkt_limit_s { s...
2019-02-25 18:51:13
2247
原创 GNS3环境搭建
安装GNS软件官网地址:https://www.gns3.com/点击free download,注册用户信息,下载文件为GNS3-2.1.11-all-in-one-regular.exe。下载成功后双击进行安装...下载路由镜像资源网址:https://drive.google.com/drive/folders/102jxZ9ECpe6ZFtXYdK_81iEVuuF...
2019-02-14 19:23:33
5220
原创 centos7 dpdk环境搭建
下载源码dpdk官网: https://www.dpdk.org/DPDK Core->Download->选择需要的版本进行源码下载安装依赖# yum install make# yum install gcc# yum install numactl-devel*x86_64 # yum install kernel-devel# modprobe uio...
2019-01-17 15:48:46
3320
原创 数据库主键和外键
**主键和外键:**从技术上来讲,主键约束只是唯一约束和非空约束的组合。CREATE TABLE products (product_no integer PRIMARY KEY, --字段 product_no 被定义为该表的唯一主键。name text,price numeric);和唯一性约束一样,主键可以同时作用于多个字段,形成联合主键:CREATE TABLE ex...
2018-12-03 11:55:20
453
原创 《黑客与画家》
在图书馆中无意看到这本《黑客与画家》,几天时间阅读下来,还是挺多感触的,书中提到的很多观点,解答了许多困扰我很长时间的疑惑。比如说价值: 解决人类有需求的问题,就是创造了价值。比如说金钱和财富: 你口袋里面没有钱,但是你可能很富有;因为钱的本质只是财富交易的一个媒介而已。 如何创造财富,最好的办法就是自己创业,或者加入创业公司,几百年来,这一直是致富的可靠途径。 创业公司其实就是解...
2018-12-03 11:38:37
1965
原创 Go语言之Map
定义 Map可以使用内建函数 make 也可以使用 map 关键字来定义 Map:/* 声明变量,默认 map 是 nil */var map_variable map[key_data_type]value_data_type/* 使用 make 函数 */map_variable := make(map[key_data_type]value_data_type)如果不初始化 m...
2018-11-30 16:42:32
615
原创 Go语言之切片
切片截取示例:package mainimport "fmt"func main() { /* 创建切片 */ numbers := []int{0,1,2,3,4,5,6,7,8} printSlice(numbers) /* 打印原始切片 */ fmt.Println("numbers ==", numbers) /* 打印子切片从索引1...
2018-11-30 16:21:23
392
原创 Go语言之函数方法
说明:Go 语言中同时有函数和方法。一个方法就是一个包含了接受者的函数,接受者可以是命名类型或者结构体类型的一个值或者是一个指针。所有给定类型的方法属于该类型的方法集。语法格式如下:func (variable_name variable_data_type) function_name() [return_type]{ /* 函数体*/}示例代码:package maini...
2018-11-30 15:53:16
230
原创 Go语言之匿名函数(闭包)使用
说明:匿名函数的优越性在于可以直接使用函数内的变量,不必申明示例代码1:package mainimport ("fmt""strings")func makeSuffix(suffix string) func(string) string { return func(name string) string { if strings.HasSuffix(name, su...
2018-11-30 15:39:41
568
原创 Go语言之iota使用
说明iota,特殊常量,可以认为是一个可以被编译器修改的常量。iota 在 const关键字出现时将被重置为 0(const 内部的第一行之前),const 中每新增一行常量声明将使 iota 计数一次。用法1package mainimport "fmt"func main() { const ( a = iota //0 ...
2018-11-30 14:48:30
844
原创 Go语言协程和无缓冲通道使用
示例代码:package mainimport ( "fmt" "time")func hello(channel_hello chan string) { fmt.Println("hello.") //确保hello打印输出 time.Sleep(1*time.Second) //发送数据到通道 channel_hello <- "hello_channel...
2018-11-30 10:10:08
511
原创 beego开发环境搭建
开发大致为在centos下搭建编译环境,在windows7下使用goland工具编码,开展beego框架下的restapi开发。centos7的安装 在windows7下安装VM虚拟机工具软件 去centos7官网下载镜像后在VM中进行安装 安装完之后,设置网络能够连接外网,并通过yum安装常用的工具软件 设置VM共享文件夹来共享centos和windows之间的文件通信 ...
2018-10-03 13:40:54
1166
原创 linux下go和c有内存管理的共享内存通信
数据类型定义ctypes.h#ifndef _CTYPES_H#define _CTYPES_H#if 0#ifndef v_s8typedef signed char v_s8;#endif#ifndef v_u8typedef unsigned char v_u8;#endif#ifndef v_s16typedef signed short v_s16;#e...
2018-09-09 22:10:45
778
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人