Go语言中文网 为您找到相关结果 222

Go和HTTPS

Go和HTTPS 四 30 bigwhite技术志 CA, CNNIC, Go, Golang, http, https, MD5, ngrok, openssl, SHA, SHA-1, SHA256, SSL, TLS, Web, 加密, 单项散列, 密钥, 微信, 摘要, 数字证书, 私钥, 签名 1 Comment 近期在构思一个产品,考虑到安全性的原因,可能需要使用到HTTPS协议以及双向数字证书校验。之前只是粗浅接触过HTTP(使用Golang开 发微信系列)。对HTTPS的了解则始于那次自行搭建ngrok服务,在那个过程中照猫画虎地为服务端生成了一些私钥和证书,虽然结果是好 的:ngrok服务成功搭建起来了,但对HTTPS、数字证书等的基本原理并未求甚解。于是想趁这次的机会,对...阅读全文

博文 2015-05-01 12:11:47 bigwhite

区块链基础入门

一、区块链产品概览 1.1 区块链产品及 区块链产品主要有:底层平台、开放平台、应用场景 1.2 区块链产品特点 底层平台 通用基础设置 与业务场景无关 技术门槛较高 多技术结合:分布式存储+点对点网络+密码学等等 开放平台 与业务场景相关性低 面向区块链应用开放者 起步探索阶段,成熟产品相对较少 应用场景 可应用的领域和场景广泛 与业务场景密切相关 具有可拓展性 易形成价值网络 二、底层平台 底层平台有:公有链、 联盟链、私有链 2.1 底层平台-公有链 向全世界所有人开放,每个人都能成为系统中的一个节点参与记账的区块链,它们通常将激励机制和加密数字验证相结合,来实现对交易的共识。 2.2 底层平台-联盟链 若干个机构共同参与记账的区块链,即联盟成员之间通过对多中心的互相信任来达成共识。联...阅读全文

golang GET 出现 x509: certificate signed by unknown authority

我们编写一个Go程序来尝试与这个HTTPS server建立连接并通信。 //gohttps/4-https/client1.gopackage main import ( "fmt" "io/ioutil" "net/http") func main() { resp, err := http.Get("https://localhost:8081") if err != nil { fmt.Println("error:", err) return } defer resp.Body.Close() body, err := ioutil.ReadAll(resp.Body) fmt.Println(string(body))} 运行这个client,我们得到如下错误: $go run ...阅读全文

博文 2017-09-26 18:30:00 kccdzz

golang取两个数字之间的随机数

golang取两个数字之间的随机数 package main import ( "crypto/rand" "math/big" "fmt" ) func main(){ fmt.Println(RandInt64(100,3000)) } func RandInt64(min,max int64) int64{ maxBigInt:=big.NewInt(max) i,_:=rand.Int(rand.Reader,maxBigInt) if i.Int64()阅读全文

博文 2015-11-09 21:00:01 别人说我名字很长

Go语言开发(十)、GoLand常用快捷键

Go语言开发(十)、GoLand常用快捷键 一、Goland快捷键设置 GoLand支持各种编辑器的快捷键映射:File->Settings->Keymap 二、GoLand常用快捷键 1、查询快捷键 CTRL+N 查找类 CTRL+SHIFT+N 查找文件 CTRL+SHIFT+ALT+N 查找类中的方法或变量 CTRL+B 快速打开光标处的类或方法 CTRL+ALT+B 找所有的子类 CTRL+SHIFT+B 找变量的类 CTRL+G 定位行 CTRL+F 在当前窗口查找文本 CTRL+SHIFT+F 在指定窗口查找文本 CTRL+R 在 当前窗口替换文本 CTRL+SHIFT+R 在指定窗口替换文本 ALT+SHIFT+C 查找修改的文件 CTRL+E 最近打开的文件 F3 向下查找关...阅读全文

博文 2018-10-07 18:35:14 天山老妖S

Go项目开发----2048小游戏

刚接触go语言不久,前段时间看到一个2048的项目开发教程,于是就试着练了下手。我的环境采用的是Ubuntu Linux环境。 源码下载: https://github.com/shiyanlou/golang2048_game.git http://download.csdn.net/detail/hzy305365977/8067803 项目开发详细教程: http://www.shiyanlou.com/courses/type/1 一. 2048 游戏设计 《2048》由19岁的意大利人Gabriele Cirulli于2014年3月开发。游戏任务是在一个网格上滑动小方块来进行组合,直到形成一个带有有数字2048的方块。《2048》使用方向键让方块上下左右移动。如果两个带有相同数字的...阅读全文

博文 2014-10-22 19:00:01 hzy305365977

Go和HTTPS

自 tony bai 近期在构思一个产品,考虑到安全性的原因,可能需要使用到HTTPS协议以及双向数字证书校验。之前只是粗浅接触过HTTP(使用Golang开 发微信系列)。对HTTPS的了解则始于那次自行搭建ngrok服务,在那个过程中照猫画虎地为服务端生成了一些私钥和证书,虽然结果是好 的:ngrok服务成功搭建起来了,但对HTTPS、数字证书等的基本原理并未求甚解。于是想趁这次的机会,对HTTPS做一些深度挖掘。主要途 径:翻阅网上资料、书籍,并利用golang编写一些实验examples。 一、HTTPS简介 日常生活中,我们上网用的最多的应用层协议就是HTTP协议了,直至目前全世界的网站中大多数依然只支持HTTP访问。 使用Go创建一个HTTP Server十分Easy,十几行代码...阅读全文

博文 2017-01-20 13:00:03 andylau00j

golang-redis之hash类型简单操作

1:安装redigo go get github.com/garyburd/redigo/redis 2:import redigo import ( "github.com/garyburd/redigo/redis" ) 3:连接redis c, err := redis.Dial("tcp", "192.168.2.225:6379") if err != nil { fmt.Println("connect to redis err", err.Error()) return } defer c.Close() 4:命令执行 n,err := c.Do("hset","key","field","value") //写 result,err := redis.Values(c.Do(...阅读全文

博文 2018-01-26 17:33:06 mickelfeng

自己封装的golang 操作数据库方法

这个是我用Go写的第一个东东,可能还存在些BUG没有测试到。这里主要是提供一个参考。各位可以改写成自己的风格。 在命令行下输入如下两条命令,进行安装 go get github.com/male110/SimpleDb go install github.com/male110/SimpleDb Go语言的数据库操作,只能用Rows.Scan来一次性读取所有列。感觉很不习惯,我还是习惯按照列名来一列列的取数据。所以我自己封装了一个数据结构MyRows,MyRows实现了一个函数,GetValue(name string, value interface{})可以按列名来取数据。如下所示: err = rows.GetValue("IsBoy", &isBoy) if err != nil {...阅读全文

博文 2014-10-04 19:27:14 王岩0001

IntelliJ Idea 14 使用go-lang-idea-plugin 0.9.16-alpha.9

使用Idea 14 开发Go程序的话,需要安装go-lang-idea-plugin,但是Idea提供的插件版本是0.9.15版本这个版本有各种BUG尤其是对Idea 14. 我试了很多方法之后还是无法正常使用go-lang-idea-plugin 0.9.15插件甚是头痛!不过天无绝人之路经过百度一顿搜索之后还是发现了一线希望。 我的本地环境如下: 1.OS: MAC OS YOSEMITE 10.10.1 2. IntelliJ Idea 14 FOR MAC 3.下载go-lang-idea-plugin 0.9.16-alpha.9 https://github.com/go-lang-plugin-org/go-lang-idea-plugin/releases/ 这里有各种版本的...阅读全文

博文 2015-01-28 11:00:01 korykim

liteIDE 快捷键改装

LiteIDE改装 最近一直都在使用liteIDE做开发。公司的项目很紧张,但是在这个周末。还是偷偷的对liteIDE小不爽的地方进行了一些小的改造。 IDE上的run按钮就是运行当前的go文件。 首先我们项目运行只是运行统一或者少数的入口点每次点开固定的文档才能run真的是够了。另外一个主要的原因在于liteIDE没有project管理支持。 而且这个IDE貌似没有出很长时间一般的RCP平台都是有插件开发的。但是这没有插件开发(貌似是有。而且是用python写的)但是,没找到文档(截至 2015年1月19日)也是醉了。 关键入口点还是我在google Code上找到的一个文档。 在配置中的LiteBuild里面有一个gosrc.xml 这个配置文件能修改buttion调用的命令。好吧就只能...阅读全文

博文 2015-03-07 21:32:39 jianyingLi

大型网站的HTTPS实践(一)---HTTPS协议和原理

1前言 百度已经于近日上线了全站HTTPS的安全搜索,默认会将HTTP请求跳转成HTTPS。本文重点介绍HTTPS协议,并简单介绍部署全站HTTPS的意义。 本文最早发表于百度运维部官方博客 2 HTTPS协议概述 HTTPS可以认为是HTTP + TLS。HTTP协议大家耳熟能详了,目前大部分WEB应用和网站都是使用HTTP协议传输的。 TLS是传输层加密协议,它的前身是SSL协议,最早由netscape公司于1995年发布,1999年经过IETF讨论和规范后,改名为TLS。如果没有特别说明,SSL和TLS说的都是同一个协议。 HTTP和TLS在协议层的位置以及TLS协议的组成如下图: TLS协议主要有五部分:应用数据层协议,握手协议,报警协议,加密消息确认协议,心跳协议。 TLS协议本身...阅读全文

博文 2015-05-04 11:26:58 luocn99

GO -- ORM 框架

这几天在做实训项目,刚好学Go语言,就想使用Go来搭建 socket 服务器 !但是感觉Go 使用sql来注入数据库有点缺陷,最后Golang群上的大神建议使用ORM框架,使用一下确实好用,下面是参照这本的一个简单例子,希望能帮到大家 Code package main import ( "database/sql" "github.com/astaxie/beedb" _ "github.com/ziutek/mymysql/godrv" "time" ) ///////////////////////// type Userinfo struct { Uid int `PK` //如果表的主键不是 id,那么需要加上 pk 注释,显式的说这个字段是主键 Userna...阅读全文

博文 2014-10-10 23:00:00 laohan_

beego orm

ORM官方文档为:https://github.com/beego/beedoc/blob/master/zh-CN/mvc/model/orm.md beego orm是支持database/sql标准接口的ORM库,所以理论上来说,只要数据库驱动支持database/sql接口就可以无缝的接入beego orm。目前的驱动包括下面几个: Mysql: [github/go-mysql-driver/mysql](https://github.com/go-sql-driver/mysql) PostgreSQL: [github.com/lib/pq](https://github.com/lib/pq) SQLite: [github.com/mattn/go-sqlite3](htt...阅读全文

博文 2018-12-06 17:34:44 b77bb494e846

招聘Golang开发工程师(上海)

发个招聘帖,咱公司要招聘Golang开发工程师啦,以下是职位描述。有兴趣者请投简历至eva.wang@trustasia.com. 我们期待您的加入。 公司介绍: 亚数信息科技(上海)有限公司主要从事数字证书及信息安全产品的研发与销售,并提供网络信息安全整体解决方案与专业信息安全服务。这其中包括全球可信的服务器SSL证书、软件代码签名证书、邮件安全证书、客户端证书以及各类电子文档签名证书,企业自行管理证书的PKI管理平台部署以及企业服务器安全监测服务。目前,公司的客户包括华为、三星、京东、中国银联、百度和中国移动等。 亚数信息科技(上海)有限公司以“加密无处不在,让互联网更安全可信”为使命,努力成为国内信息安全领域的创新者和技术领先者,为客户提...阅读全文

关于语音识别你了解多少?

语音识别有哪些功能 语音输入系统 1、提取有效的声音信息2、从有效信息识别身份3、声音信号转换成电信号 语音控制系统 通过语音信息与实际内容进行匹配 智能对话系统 智能理解用户的需求 实现过程 转化语音信号 1、语音预处理(语音信号采样、反混叠带通滤波、去除个体发音差异和设备、环境引起的噪声影响等)2、声波------>电信号------>二进制3、语音识别只能找到与说话者发音最为相似的字音。在判断相似性时 ,我们首先需要设定好标准读 比较两个向量之间的夹角大小 ,把特征分析提取的一组随时间而变的特征矢量序列和事先通过学习后存在机器里样本序列进行比较。我们将两个向量相乘再除以他们各自的模得到他们之间的夹角 ,夹角越小 ,向量之间也就越为相似 ,从而语音识别得以找到最接近每个人发音的字形。(模...阅读全文

Go开源项目 - gorp使用方法

gorp 是一个Go开源ORM框架. Go关系型数据库持久化 我很含糊的称gorp是一个ORM框架. Go还没有真正的对象, 至少没有一个经典的感觉和Smalltalk/Java一样的,这是"O". gorp不知道任何你struct之间的关系(以后会实现,现在还在TODO list中). 所以"R"也是有质疑的(但是我使用这个名字,因为感觉上更贴切). "M"是没有问题的. 给定一些Go结构和一个数据库, gorp应该可以减少你的重复代码. 我希望gorp能节省你的时间并简化从数据库获取数据的苦活来帮助你把精力投入到算法上而不是基础设施上面. 数据库驱动 gorp使用Go1 database/sql包. 一个完整可用的兼容驱动程序如下: http://code.google.com/p/go...阅读全文

博文 2014-10-09 16:55:55 ztiandan

Go项目开发----2048小游戏

源码下载: https://github.com/shiyanlou/golang2048_game.git http://download.csdn.net/detail/hzy305365977/8067803 项目开发详细教程: http://www.shiyanlou.com/courses/type/1 一. 2048游戏设计 《2048》由19岁的意大利人Gabriele Cirulli于2014年3月开发。游戏任务是在一个网格上滑动小方块来进行组合,直到形成一个带有有数字2048的方块。《2048》使用方向键让方块上下左右移动。如果两个带有相同数字的方块在移动中碰撞,则它们会合并为一个方块,且所带数字变为两者之和。每次移动时,会有一个值为2或者4的新方块出现。当值为2048的方...阅读全文

博文 2014-10-22 14:00:01 LSoam

go语言之beego框架orm的使用

models.go ============================ package main import ( "github.com/astaxie/beego/orm" ) type User struct { Id int Name string Profile *Profile `orm:"rel(one)"` // OneToOne relation } type Profile struct { Id int Age int16 User *User `orm:"reverse(one)"` // 设置反向关系(可选) } func init() { // 需要在init中注册定义的model orm.RegisterModel(new(User), new(Profi...阅读全文

博文 2015-06-17 23:05:56 zistxym

关于语音识别你了解多少?

语音识别有哪些功能 语音输入系统 1、提取有效的声音信息 2、从有效信息识别身份 3、声音信号转换成电信号 语音控制系统 通过语音信息与实际内容进行匹配 智能对话系统 智能理解用户的需求 实现过程 转化语音信号 1、语音预处理(语音信号采样、反混叠带通滤波、去除个体发音差异和设备、环境引起的噪声影响等) 2、声波------>电信号------>二进制 3、语音识别只能找到与说话者发音最为相似的字音。在判断相似性时 ,我们首先需要设定好标准读 比较两个向量之间的夹角大小 ,把特征分析提取的一组随时间而变的特征矢量序列和事先通过学习后存在机器里样本序列进行比较。我们将两个向量相乘再除以他们各自的模得到他们之间的夹角 ,夹角越小 ,向量之间也就越为相似 ,从而语音识别得以找到最接近每个人发音的字...阅读全文

Go和HTTPS

自:http://tonybai.com/2015/04/30/go-and-https/ 近期在构思一个产品,考虑到安全性的原因,可能需要使用到HTTPS协议以及双向数字证书校验。之前只是粗浅接触过HTTP(使用Golang开 发微信系列)。对HTTPS的了解则始于那次自行搭建ngrok服务,在那个过程中照猫画虎地为服务端生成了一些私钥和证书,虽然结果是好 的:ngrok服务成功搭建起来了,但对HTTPS、数字证书等的基本原理并未求甚解。于是想趁这次的机会,对HTTPS做一些深度挖掘。主要途 径:翻阅网上资料、书籍,并利用golang编写一些实验examples。 一、HTTPS简介 日常生活中,我们上网用的最多的应用层协议就是HTTP协议了,直至目前全世界的网站中大多数依然只支持HTTP...阅读全文

博文 2015-06-02 04:00:05 sevenyuan

golang学习-------goland的基本快捷键

快捷键: 移动行 Alt + Shift + up/down 行内(选中)移动(到头尾/删除) Ctrl(Shift) + left/rignt(Home/End/Backspace) 插入新行 Shift + Enter 替换变量、函数名 Shift + F6 配置快捷键: 跳转到函数定义 回退 查找函数使用 File/Settings/Keymap 工具: gofmt/golint File/Settings/Tools/File Watchers golint File/Settings/Tools/External Tools (参考) 文件相关快捷键: CTRL+E,打开最近浏览过的文件。 CTRL+SHIFT+E,打开最近更改的文件。 CTRL+N,可以快速打开struct结构体...阅读全文

博文 2019-05-09 21:31:40 zk3326312

go语言使用protobuf与c++做数据通信。

首先,安装google的protobuf。安装流程请参见我以前的博客 http://blog.csdn.net/eclipser1987/article/details/8525383 安装proto的go语言插件 go get code.google.com/p/goprotobuf/{proto,protoc-gen-go} 编写一个简单的事例,go与c++网络通信: RegMessage.proto package cn.vicky.model.seri; message RegMessage { required int32 id = 1; // 主键,唯一 required string username = 2; // 帐号 required string password = ...阅读全文

博文 2014-10-06 09:42:32 eclipser1987

gorm快速使用

## gorm ORM 就是通过实例对象的语法,完成关系型数据库的操作的技术,是"对象-关系映射"(Object/Relational Mapping) 的缩写. gorm, github.com/jinzhu/gorm 全特性 ORM (几乎包含所有特性). ## 模型定义 模型一般都是普通的 Golang 的结构体,Go 的基本数据类型,或者指针。sql.Scanner 和 driver.Valuer,同时也支持接口。 ### gorm.Model gorm.Model 是一个包含一些基本字段的结构体,包含的字段有 ID,CreatedAt, UpdatedAt, DeletedAt。 你可以用它来嵌入到你的模型中,或者也可以用它来建立自己的模型.GORM 默认使用 ID 作为主键名。 ...阅读全文

博文 2019-12-26 19:03:28 bytemode

golang包sql查询结果树形化反射扫描器

### 主要功能 > 可以搭配gorm的sql结果扫描函数Scan、Find等,将结果直接传入本包提供的树形化函数(ScanToTreeData),快速实现树形化 > 支持无限级树形化(自己嵌套自己)、有限级个性化树形化 > github 仓库地址,欢迎使用,反馈使用意见,顺便点点 star https://github.com/qifengzhang007/sql_res_to_tree ### 核心代码段 ```code // 接受树形结果的结构体要求如下: // 1.主键必须使用 primaryKey:"yes" 标签定义,类型必须是 int int64 in32 等int系列,不能使用 string 等其他类型...阅读全文

开源项目 2021-02-22 00:04:16 张三丰

热更新配置参数例子(Golang)

在不停止程序的情况下,通过发送USR1或USR2等信号量,触发运行中程序的参数更新处理。当然还可以通过处理如kill等信号量, 让程序正确的处理退出操作。 做了个例子,效果如下。 可以看到通过发出kill -USR1 id号 让对应的程序参数发生了变更。 关于kill的参数值可以通过kill -l列出。 各个终端也提供了很多快捷键来支持特定信息的发送,如最常见的ctrl+c. 但注意,各个终端的快捷键定义可能不一样,而且有些是可以自定义的,这个要注意,在使用前可以用stty -a查出。 附上测试机这两条命令的结果: xcl@xclpc:~$ kill -l 1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP 6) SIGABRT 7) SI...阅读全文

博文 2015-06-17 20:04:33 xcltapestry

Golang学习笔记之HTTPS

一:HTTPS介绍 HTTPS (Secure Hypertext Transfer Protocol)安全超文本传输协议,是一个安全通信通道,它基于HTTP开发用于在客户计算机和服务器之间交换信息。它使用安全套接字层(SSL)进行信息交换,简单来说它是HTTP的安全版,是使用TLS/SSL加密的HTTP协议。 HTTP和HTTPS的区别 • HTTPS是加密传输协议,HTTP是名文传输协议 • HTTPS需要用到SSL证书,而HTTP不用 • HTTPS比HTTP更加安全,对搜索引擎更友好,利于SEO • HTTPS标准端口443,HTTP标准端口80 • HTTPS基于传输层,HTTP基于应用层 • HTTPS在浏览器显示绿色安全锁,HTTP没有显示 二、HTTPS证书 正式发布的时候,...阅读全文

博文 2018-12-22 18:34:43 学生黄哲

Golang开发工具LiteIDE使用方法整理

安装 参考github的说明 添加GOPATH 创建workspace 创建新文件 运行程序 Liteide中运行程序有两种方式: FR(FileRun)是编译并运行单个文件,可以使用Shift + Alt + R快捷键; BR(BuildAndRun)是编译运行整个项目,可以使用Command + R快捷键。 编译运行单个文件和编译运行整个项目的区别在于: 编译运行整个项目的时候,只允许一个源文件中有main函数; 编译运行单个项目的时候,允许多个源文件包含main函数,运行的时候并不会出现报错。 使用go get/install安装包 一些快捷键 功能 快捷键 跳转到函数声明 command + shift + j 自动格式化代码(保存文件) command + ...阅读全文

博文 2018-07-22 00:30:02 -beyond

golang 按任意键继续

package main import ( "fmt" ) import ( termbox "github.com/nsf/termbox-go" ) func init() { if err := termbox.Init(); err != nil { panic(err) } termbox.SetCursor(0, 0) termbox.HideCursor() } func main() { fmt.Println("hello") pause() fmt.Println("world.") } func pause() { fmt.Println("请按任意键继续...") Loop: for { switch ev := termbox.PollEvent(); ev.Typ...阅读全文

博文 2016-08-12 00:00:02 CodyGuo

Golang下的ORM框架gorm的介绍和使用

前言:gorm是Golang语言中一款性能极好的ORM库,对开发人员相对是比较友好的。当然还有另外一个xorm库也是比较出名的,感兴趣的也可以看看这个库,接下来主要介绍下gorm库的一些基本使用。 GORM介绍和快速入门 功能概览 全功能ORM(无限接近)关联(Has One, Has Many, Belongs To, Many To Many, 多态)钩子函数Hook(在创建/保存/更新/删除/查找之前或之后)预加载事务复合主键SQL 生成器数据库自动迁移自定义日志可扩展性, 可基于 GORM 回调编写插件所有功能都被测试覆盖开发者友好 安装 我们都知道,在golang中需要使用一些驱动包来对指定数据库进行操作,比如MySQL需要使用github.com/go-sql-driver/my...阅读全文

博文 2020-03-15 10:34:25 BGBiao

使用go-mysql-elasticsearch将mysql实时同步到es

注意: mysql binlog必须是ROW模式 ,并且binlog_row_image必须为full 要同步的mysql数据表必须包含主键,否则直接忽略 不支持程序运行过程中修改表结构 要赋予用于连接mysql的账户RELOAD权限以及REPLICATION权限, SUPER权限: GRANT REPLICATION SLAVE ON *.* TO 'elastic'@'127.0.0.1'; GRANT RELOAD ON *.* TO 'elastic'@'127.0.0.1'; UPDATE mysql.user SET Super_Priv='Y' WHERE user='elastic' AND host='127.0.0.1'; 1.安装golang 下载地址 https://...阅读全文

博文 2019-06-01 15:34:39 崔允

废旧金属液压打包机多少钱

废旧金属液压打包机多少钱【电同微156-9027-3307】属打包机,箱式剪切机,龙门剪切机都输液液压打包机,只是形式不一致,对打包的材质有所不同,价格也相差很大,不能一个而论,下面就给大家说一下金属液压打包机的区分。 传统的单机情况下,通过内存或者数据的主键就可以维护一个唯一ID,但随着业务增长,免不了增加主机和分库分表,在这种情况下如何表示一个唯一的订单或者用户呢?这就是分布式唯一ID的意义。如果并非此场景,利用数据库自增值或者时间戳随机种子(为避免1ms内碰撞,可以再维护几位顺序位,可以参考后文snowflake算法)即可。当然由于绝大多数分布式唯一ID算法效率很高,想用也是可以的。分布式唯一ID的要求分布式唯一ID的要求可以拆解为三个层面:不重复。本质上不要求随机,单纯递增也可以,因...阅读全文

博文 2020-02-13 09:32:45 艾比3434

用Golang写一个搜索引擎

用Golang写一个搜索引擎 猜你喜欢 golang入门-- 一个2D的图形库学习 golang入门--一个简单的http client golang的第一个deadlock LiteJob,一个Golang的本地任务调度器 再次自我黑客马拉松--不用第三方库实现一个基于golang的web service 如何利用golang 反射值来定义一个变量 用Golang写一个搜索引擎 用Golang写一个搜索引擎(0x01) 用Golang写一个搜索引擎(0x02) 用Golang写一个搜索引擎(0x03) 前面已经说了倒排索引的基本原理了,原理非常简单,也很好理解,关键是如何设计第二个倒排表,倒排表的第二列也很好设计,第一列就是关键了,为了满足快速查找的性能,设计第一列的结构,我们需要满足以下...阅读全文

博文 2016-04-14 17:00:04 daisongwan

Golang 2018.1.2激活及使用技巧

对于做Java开发的同学使用最熟练的开发工具应该当属Eclipse了吧,但是做到后面的话一般都会转用Intellij Idea。至于转用Intellij有什么好处我就不赘述了,简言之就是功能强大,使用便捷,能够大大提升我们的工作效率。 由于目前工作主要用Go语言进行底层开发,所以采用了GoLand开发工具,它跟Idea一样同为JetBrains公司的产品,本篇主要介绍下GoLand.2018.1.2的激活及其常用的使用技巧。 GoLand.2018.1.2激活 1、下载GoLand并安装 https://pan.baidu.com/s/1vPClabBF8K8xvOFHfkrSyQ 2、拷贝JetbrainsCrack.jar至安装目录下的bin 以我的安装目录为例:C:\Program F...阅读全文

博文 2018-08-05 00:30:01 qiangjiyi

Go 实现安全 cookie

我第一次学习 Go 的时候,已经有了一定的 Web 开发经验,但是直接使用 cookie 的经验还比较少。我之前是用 Rails 的,在 Rails 里面如果要读/写 cookie,并不需要自己去实现所有的安全措施。 如你所见,Rails 偏向于通过默认配置就将大部分事情搞定。你不必去设置 CSRF 反制措施,或者做任何特殊操作来加密 cookie。在较新版本的 Rails 中这一切都默认帮你做好了。 用 Go 开发就完全不同了,这些事情并没有默认帮你做好。所以当你想使用 cookie 时,了解所有这些安全措施就很重要:为什么存在有这些措施,以及如何在我们自己的程序中使用它们。本文旨在帮助你了解上述知识点。 > 本文目的不在于引发关于哪条路线更好的讨论/争论。两者都有各自的优点,这里不去比较...阅读全文

博文 2018-11-21 09:44:27 polaris

scrud - Go struct/SQL CRUD & Go write SQL

scrud - Go struct/SQL CRUD & Go write SQL === 想要的几乎都有,如果没有的话,请[提交请求](https://github.com/cxr29/scrud/pulls) ### 安装 ```go get github.com/cxr29/scrud``` ### CRUD ```Go import "github.com/cxr29/scrud" import _ "github.com/go-sql-driver/mysql" db, err := scrud.Open("mysql", "user:password@/database") // A, B is struct or *struct n, ...阅读全文

定义 http 接口,以及 struct tag 的一点点经验,想法,求大神教育,菜鸟一同探讨

本人菜鸟,师父让我定义 与前台的 http 接口,我就做了,当然过程中被喷惨了。写写我最后的方法,以及我为什么这么写,欢迎大家探讨。 前提,所有接口 POST,json 方式 1.接口最后定义方式,基本上是大模块上是按照功能划分的,小模块上按照界面上需要的数据定义的。其实对后台来说,最好的方法就是不看界面,提供基本接口,让前台去组合。但是前台说 考虑到流量,手机耗电问题,所以最后无条件的 前台需要什么给什么,不需要的后台帮忙处理掉。这样做的坏处就是,后台代码写的比较乱,因为每个前台需要的界面都要单独一个结构体,命名上也比较难命名(因为后台自己的数据结构跟前台需要的差不多,只是少了个别字段),我现在也不知道好的接口到底应该怎么样定义。求大神狠狠教育一下我。 2.因为是 json,...阅读全文

Goread:用Go编写的Google Reader的开源实现

《Goread:用Go编写的Google Reader的开源实现》作者对GR的现有开源实现并不满意,于是自己实现了一个版本——Goread,它具有如下特性:支持导入OPML、移动端支持良好、不需要安装其他支持、和GR有相同的键盘快捷键、简洁快速……详见: http://www.goread.io...阅读全文

Go:操作注册表

package main import ( "fmt" "log" "golang.org/x/sys/windows/registry" ) func main() { key, exists, err := registry.CreateKey(registry.CURRENT_USER, "SOFTWARE\\Hello Go", registry.ALL_ACCESS) if err != nil { log.Fatal(err) } defer key.Close() if exists { fmt.Println("键已存在") } else { fmt.Println("新建注册表键") } // 写入32位整形值 key.SetDWordValue("DWORD", 0xFF...阅读全文

博文 2016-09-21 01:00:00 aqtata

Gorm的使用心得和一些常用扩展(一)

Gorm是golang的一个orm框架,它提供了对数据库操作的封装,使用起来相当便利。 但在项目开发中,代码写的多了,还是发现在它之上还是有再次封装的空间,比如说添加错误日志、或者是一些使用频率非常高的对单个表的条件查询、分页查询、数据更新等。再则是,关于相同的功能操作,gorm也提供多种实现方式,对新学多少有些困惑,不知道该用哪个好。 于是,我基于自己在项目中的使用经验和编码习惯,做了如下一些扩展,供大家参考。 准备 为了兼容gorm的使用方法,我使用了内嵌类型来扩展。 定义如下: type DBExtension struct { *gorm.DB logger DBLogger } 复制代码这样子定义的wrapper对象是最小侵入式的扩展,不仅可以直接点出gorm的原有方法,也可以点出...阅读全文

博文 2019-07-13 22:04:19 raining1127

Ubuntu 配置 Go 语言开发环境(Sublime Text 3)

Sublime Text 3安装 gosublime 下载 Sublime Text飞机票:http://www.sublimetext.com/3 安装 gosublime首先,我们需要安装 Sublime Text 的 Package Control 功能,在打开软件后,按下快捷键 Ctrl+`,(`这个符号为英文半角模式下,按下 Tab 键上方、数字键1左边的那个按键),此时会打开一个命令窗口,复制并输入以下内容,最后回车: import urllib.request,os; pf = 'Package Control.sublime-package'; ipp = sublime.installed_packages_path(); urllib.request.install_op...阅读全文

博文 2014-12-30 08:00:01 Kriry

小白入坑同性交友网站github总结

小白入坑同性交友网站github总结 常用词汇及含义 1. watch 表示会持续收到该项目的动态 2. fork 复制某个项目到自己的github仓库 3. star 可以理解为点赞的个数 4. clone 将远程服务器上的源代码下载到本地 5. follow 关注你感兴趣的作者,会收到他们的动态 可以从图中看到我们可以在途中一次找到上面的几个功能的区域,但是没有follow,如果想要关注某个开发者可以直接点击他的头像进去他的主页在头像下方就可以follow某个开发者 in 关键字限制搜索范围 我们可以使用一些搜索的技巧,就像我们使用搜索引擎一样,比如有个叫google hack的东西,很多学习安全的人都回去学google一些高级的搜索语法。在github中也同样有一些高级的搜索的语法。 ...阅读全文

博文 2019-04-13 14:34:42 _AlphaBaby_

终端文本编辑器 Micro-Editor

Micro 是一款简单易用、直观的终端文本编辑器。 主要特性: * 易于使用 * 常用快捷键(ctrl-s, ctrl-c, ctrl-v, ctrl-z...) * 鼠标操作支持友好 * 交叉平台 * 语法高亮显示 ,支持超过 75 种语言 * 支持多种配色方案 * 搜索和替换 * 撤消和重做 * Unicode 支持 * 拷贝和粘贴与系统剪贴板 * 小而简单 * 可定制 效果图: ![Screenshot](http://static.oschina.net/uploads/img/201604/19151846_ANPI.png...阅读全文

2019公链项目实战 区块链公链项目实战 golang公链项目实战(视频+源码)

任务1:001 – 内容介绍.mp4任务2:002 -Block结构.mp4任务3:003 – 根据区块数据生成区块HASH.mp4任务4:004 – CreateGenesisBlock.mp4任务5:005 – Blockchain结构.mp4任务6:006 – 添加新的区块.mp4任务7:007 – ProofOfWork框架.mp4任务8:008 – 工作量证明算法分析.mp4任务9:009 – target移位处理.mp4任务10:010 – 挖矿算法完整实现.mp4任务11:011 – 判断区块Hash的有效性.mp4任务12:012 – 课程目标.mp4任务13:013 – 区块的序列化和反序列化.mp4任务14:014 – boltdb数据库的创建或者打开.mp4任务15:0...阅读全文

博文 2019-03-12 20:34:43 java20192019

用golang写一个简单的游戏

事情是这样子的,前阵子我想重新把算法学习一下,在看到动态规划的时候,莫名想到这些算法题目就跟游戏一样,每个游戏都有规则,要过关,就要在游戏规则下达到特定的目标。所以,我萌生了把算法题做成一个游戏的想法,不管什么算法都行,规则我可以自己定义。 那么,做个游戏,它总要有界面,自然我不会写gui,暂时也没有想用golang的gui库的想法。所以我的第一步是用终端先实现一个,在界面上能够显示出东西。这个要求对于golang来说一点都不高。 再来,是游戏规则的设定,这个游戏,我会分几个版本去完成它,多以第一个版本,我会设定得足够简单,规则如下:界面上会由n×m个点组成,通过键盘上的方向键控制点的移动,从起点到达终点即可完成看任务。如图: 界面.png 我们分析一下,完成这样一件事情,我们需要做的工作有...阅读全文

博文 2020-05-12 01:32:51 onepunchgo