内网穿透利器NGROK学习笔记
内网穿透利器NGROK学习笔记SofM 2019-10-31 14:13:57内网穿透利器NGROK学习笔记2019.10.31 SofM1. 介绍10月28号,某客户内网虚拟机服务出现故障,云计算中心工程师是在得到用户的报障后进行的处理。虽然,云计算中心工程师具有高度的责任心以及快速的问题处理能力,但是监控体系的部署使我们进一步提升服务质量的目标。因此,为了更及时的发现客户系统中的异常,避免因系统服务对用户造成使用上的影响,于是安装部署了Nagios监控。但是,由于该机器深入内网,并与我们的办...阅读全文
Golang下载包技巧
1. golang 的包, 对应下载在下面自己找 https://github.com/golang2. 下载失败或者速度慢, 直接网页打开链接例如 github.com/frankban/quicktest下载完毕之后放到GOPATH路径下src/github.com/frankban下即可, 记住下载目录带master, 自行去除其他模块module google.golang.org/protobuf https://github.com/protocolbuffers/protobuf-...阅读全文
5年 Python 功力,总结了 10 个开发技巧!网友:太实用了
大家好。 今天给大家分享 10 个我平时整理非常实用的 Python 开发小技巧,内容目录如下: 值得一提的是,这 10 个技巧全部收录在我自己写的 《Python黑魔法指南》里 你可以在按照如下方法,后台发送『黑魔法』就可以获取精美排版的 PDF 电子书。 1. 如何在运行状态查看源代码? 查看函数的源代码,我们通常会使用 IDE 来完成。 比如在 PyCharm 中,你可以 Ctrl + 鼠标点击 进入函数的源代码。 那如果没有 IDE 呢? 当我们想使用一个函数时,如何知道这个函数需要接收...阅读全文
Java线程只能有上千个,而Go的Goroutine能有上百万个
前言 哈喽,大家好,我是asong,我又来做知识分享了。对于做过Java开发的程序员来说,或许会遇到这个问题:java.lang.OutOfMemoryError: Unable to create new native thread。造成这个问题的原因是因为Thread限制导致内存溢出。对于这个问题,我们可以写一个小demo,测试一下这个问题: /** * 功能:Unable to create new native thread * 订阅号:Golang梦工厂 * create by aso...阅读全文
golang常用测力
常用 package main import ( "context" "fmt" "go.mongodb.org/mongo-driver/bson" "hugo/mon" "hugo/publishtask" "strconv" "sync" "sync/atomic" "time" ) type Abs struct { UserName string `bson:"username"` Email string `bson:"email"` } func b()(i int,err err...阅读全文
golang单元测试
简介 golang单测,有一些约定,例如文件名是xxx.go,那么对应的测试文件就是xxx_test.go,单测的函数都需要是Test开头,然后使用go test命令,有时发现mock不住,一般都是内联(简短)函数mock失败,可以执行的时候加上编译条件禁止内联 -gcflags=all=-l 1. gomonkey gomonkey用于mock跑单测,有以下的功能: 为函数打桩 为成员方法打桩 为全局变量打桩 为函数变量打桩 为函数打一个特定的桩序列 为成员方法打一个特定的桩序列 为函数变量打...阅读全文
pip包管理器的使用
前情提要: python包的介绍: 可以说是python的功能扩展模块,有官方开发的也有第三方开发的,总之都会经过pip官方社区的整合才会上架。 区别于C++、java这些传统的语言需要自己去找扩展功能的文件,而pip直接就可以从社区服务器下载(不过网络不怎么好) 其实新开发的语言都有这样的特点,比如nodejs和golang都可以在线下载扩展包,甚至还有自带web服务的组件 目前如果你在 python.org 下载最新版本的安装包,那已经自带了pip包管理器。 Python 2.7.9 + 或...阅读全文
Web开发如何入门?网站开发如何入门?
在这里插入图片描述 导图 掌握了这些基础技能至少对于web开发有一个基本的认知了,但是学无止境,光会这些是远远不够的。 一、前端 开发框架 Angular.js,React.js,Vue.js是目前最流行的三大前端开发框架,Angular略显式微。React.js生态好,组件齐全,入门相对vue高。Vue.js容易上手,好用,近年来用户人数大幅提升,有愈发流行的趋势。这三大框架至少要熟悉一个,再了解另一个。 个人建议先学Vue。可以看谷歌趋势的数据,Vue现在可以说是非常热门了,而Angular...阅读全文
从新冠疫情出发,漫谈 Gossip 协议
众所周知周知,疫情仍然在全球各地肆虐。据最新数据统计,截至北京时间 2020-05-28,全球累计确诊 5698703 例,累计死亡 352282 例,累计治愈 2415237 例。 从上面的统计数据,我们可以看出,新冠病毒在人与人之间的传播是极其高效的,且影响范围广。如果我们把「新冠病毒」想象成一小段数据,将「人与人之间传播」想象成数据交换,那么,我们可以得出结论,在不考虑免疫系统和人为干预等一些因素,经过反复迭代,数据(新冠病毒)可以被发送(感染)到每个节点(人)上。 这个就是今天要介绍的 ...阅读全文
爬虫管理平台 Crawlab 专业版 v0.1.0 正式发布
前言 爬虫管理平台旨在解决大量不同类别爬虫难以管理的问题,能够在一体化平台中部署调度、监控爬虫程序,做到高效数据抓取,让工程师们不再被繁琐的爬虫管理问题所困扰,能够将主要精力放在爬虫开发上。分布式爬虫管理平台 Crawlab 就是为了解决核心问题而诞生的。自去年 3 月份发布以来,Crawlab 受到很多开发者喜爱,如今在 Github 上已有 6.3k Stars,到目前为止使用过 Crawlab 的用户数(不包括 Demo)已经超过 6k,而且这些数字还在不断高速增长。Crawlab 是一个...阅读全文
Python-FastAPI 异步框架开发博客系统(四)部分使用Golang重构~
title: [Frodo-V2.0] 拥抱Golang, go~! layout: post date: 2020-06-15 tag: note author: BY Zhi-kai Yang Frodo-v2.0 没有添加新功能,而是将后端最重要的部分,后台API使用golang重构,python现在只负责前台模板的渲染。这样原本的单服务应用就成了多服务。本文将简介v2.0的调整思路和golang异步的特性,新版本的部署文档请参看项目地址 项目地址 博客地址 主要重构的模块为: 博文、用户...阅读全文
beego orm 批量插入并更新
需要用到根据唯一索引来进行批量更新和插入,这里利用ON DUPLICATE KEY UPDATE 来进行更新,遇到的问题:1)因为刚接触go 不太清楚如何将切片转换为字符串,所以自己写了一个 方法 MapTranslateString2)因为刚接触go 不太清楚orm的 sql的占位符除了‘?’之外还能是什么,导致打印出来的sql语句一堆问号,如果有错误也不好排查// o orm 对象, dataList 需要传入参数 fieldList dataList 的 map的字符串键值 (更新的字段...阅读全文
5年 Python 功力,总结了 10 个开发技巧!网友:太实用了
大家好。 今天给大家分享 10 个我平时整理非常实用的 Python 开发小技巧,内容目录如下: 值得一提的是,这 10 个技巧全部收录在我自己写的 《Python黑魔法指南》里 你可以在按照如下方法,后台发送『黑魔法』就可以获取精美排版的 PDF 电子书。 1. 如何在运行状态查看源代码? 查看函数的源代码,我们通常会使用 IDE 来完成。 比如在 PyCharm 中,你可以 Ctrl + 鼠标点击 进入函数的源代码。 那如果没有 IDE 呢? 当我们想使用一个函数时,如何知道这个函数需要接收...阅读全文
5年 Python 功力,总结了 10 个开发技巧!网友:太实用了
大家好。 今天给大家分享 10 个我平时整理非常实用的 Python 开发小技巧,内容目录如下: 值得一提的是,这 10 个技巧全部收录在我自己写的 《Python黑魔法指南》里 你可以在按照如下方法,后台发送『黑魔法』就可以获取精美排版的 PDF 电子书。 1. 如何在运行状态查看源代码? 查看函数的源代码,我们通常会使用 IDE 来完成。 比如在 PyCharm 中,你可以 Ctrl + 鼠标点击 进入函数的源代码。 那如果没有 IDE 呢? 当我们想使用一个函数时,如何知道这个函数需要接收...阅读全文
golang雪花算法SnowFlake解决时间回拨问题
package main import ( "errors" "fmt" "sync" "time" ) const ( workerBits uint8 = 10 // 每台机器(节点)的id位数 10位最大可以有2^10=1024个节点(0-1023) numberBits uint8 = 22 // 表示每个集群下的每个节点,1秒内可生成的id序号的二进制位数 即每秒可生成 2^22-1=4194304个唯一id(0-4194303) // 这里求最大值使用了位运算 workerMax i...阅读全文
Go之断言类型(assert type)
1.背景介绍: 笔者最近在使用一个数据结构实现多个接口,但是却发现想要在一段时间内转换成接口1,另外一段时间转换成接口2,所以也就使用到了断言类型。在看过断言类型之后,觉得还是很有必要讲一讲这个断言类型,于是便有了这篇文章。2.断言类型介绍:接口类型提供一种,将接口类型转换成具体类型的转换方法,也就是断言类型(assert type)。使用方法如下所示:t := i.(T) // T:表示的是具体的数据类型,i:表示的是接口变量i,t:表示的是转换之后的变量。这个语句实现的功能是:将接口变量i按...阅读全文
撸一个预言机(Oracle)服务,真香!—上篇
一、文章结构 本文将通过上、中、下三篇文章带领大家一步步开发实现一个中心化的Oracle服务,并通过一个抽奖合约演示如何使用我们的Oracle服务。文章内容安排如下: 上篇:Oracle简介及合约实现 中篇:使用go语言开发Oracle服务 下篇:抽奖合约调用Oracle服务示例 一、Oracle简介 Oracle(预言机)是链接链上与链下的桥梁,能够将链下数据推送给链上。正是由于Oracle的存在,使得区块链从封闭走向开放,充满无限可能。 如需了解Oracle基础知识,这里推荐阅读孙孝虎的《什...阅读全文
招聘Golang开发工程师
要求: 1.2年以上Golang开发经验或3年以上c/c++开发经验 2.熟悉tcp/ip http等常用网络协议相关知识 3.熟悉多线程,分布式,缓存,消息队列 4.熟悉掌握Mysql数据库,InfluxDB时序数据库,有Redis,MongoDB使用经验 5.具备高并发、高性能系统设计及开发能力 Base:西安 薪资:14-25 上市公司 行业全球排名前三 复制运维及运营相关平台开发,全新产品。 欢迎广大Gopher加入 有意者请发邮件:wang_kebing1@d...阅读全文
GoCenter 的“火眼金睛” ——检测、报告并减少Go Module的安全漏洞
一、背景 Golang开发者非常关心开发应用的安全性。随着Go Module应用越来越广泛,Golang开发者需要更多的方式来确保这些公共共享文件的安全。Golang1.13版本在创建Go Module时,通过增加go.sum文件来验证之后从GOPROXY再次访问到的该Module是否曾被篡改。这个机制有助于保证Module的完整性。但是,当初次创建并提交Go Module时,如果原始文件中被引入了恶意代码,这种安全漏洞还是不能被发现和预警的。 Go Module的安全漏洞影响了很多项目和Go开...阅读全文