glide 处理golang.org/x/net

由于国内GWF得原因,导致使用glide引入golang.org/x 下得包的时候失败,经过查询,可以使用手动添加glide的cache来解决此问题

方式1使用mirror

1
$ rm -rf ~/.glide
$ mkdir -p ~/.glide
$ glide mirror set https://golang.org/x/mobile https://github.com/golang/mobile --vcs git
$ glide mirror set https://golang.org/x/crypto https://github.com/golang/crypto --vcs git
$ glide mirror set https://golang.org/x/net https://github.com/golang/net --vcs git
$ glide mirror set https://golang.org/x/tools https://github.com/golang/tools --vcs git
$ glide mirror set https://golang.org/x/text https://github.com/golang/text --vcs git
$ glide mirror set https://golang.org/x/image https://github.com/golang/image --vcs git
$ glide mirror set https://golang.org/x/sys https://github.com/golang/sys --vcs git

方式2进入glide的cacha目录

1
$ cd ~/.glide/cache/src/
$ mkdir https-golang.org-x-sys
$ cp -r xxx/* ./ 
$ glide install ##然后就可以愉快的下载啦

xxx代表自己已经下载好的源码 源码下载可以通过 golangtc 进行下载.

git revert 和 git reset 的区别

主要用于会退git版本

在日常的工作中,我们偶尔会遇到需要在远程服务器上回退几个版本的需求,git reset和gitrevert 都可以处理这类需求,个人比较推荐使用git revert。
  • git reset 是删除本次提交,git revert是撤销某次commit并且会把这个撤销动作当成一次新的commit.

golang mysql 1461 and Invalid Connection

1.Invalid Connection

go-mysql的连接池只有两个参数MaxIdleConns 与 MaxOpenConns
golang使用mysql官方驱动时,用了mysql连接池(如果MaxIdleConns 与 MaxOpenConns不相等),有时会看到大量的 statement.go:27: Invalid Connection 一番查询之后,发现底层驱动有这个警告,最好设置MaxIdleConns和MaxOpenConns相等。就不会有这个warning信息了,不过这个warning信息时无害的。如果有强迫症的同学,还是设置相等吧。GitHub地址

2.Error 1461: Can’t create more than max_prepared_stmt_count statements (current value: 16382)

这个需要注意,再使用了 Prepare 之后记得,返回的Stmt记得close() 另外在查询多列Query()返回的Rows 也要关闭

iphone 忘记锁屏密码后z如果找回密码

今天手机(iphone 5s)的锁屏密码,不知什么原因被换掉了,然后在豆瓣上找到一个妹子的写的文章,在文章的帮助下,成功重置了密码.附上豆瓣地址

前提

  • 有一台除去iphone的苹果设备

  • 手机开启了查找我的iPhone

  • AppleID和密码(锁屏密码忘记也就罢了,Apple ID的密码再忘了那可就真的要去验验脑了,除非这手机不是你本人的)

攻略

golang .slide 下载安装与使用

  • 来源

    参加gopher china 2016的大会,在会上看到 Dave大神用go的 slide 来做演讲,觉得好酷,根据youtube上的视频,然后自己跟着做了一遍,算是记录一下吧.

  • 首先是下载

    由于GWF( Great FireWall 防火长城,也称中国防火墙 ),导致去go get golang.org/x/tools/cmd/present 下载不下来,这里推荐 golangtc,下载下来之后,放到你自己的gopath下

  • 安装 present

    go install go/src/golang.org/x/tools/cmd/present/ 之后会在gopath的bin目录下多出来一个 present,

  • 本地查看

    有了present就可以查看.slide文件了. 直接在有.slide文件的目录下,输入present,然后访问 http://127.0.0.1:3999/ 就可以看到啦.

  • 编写.slide文件

禁止ios的浏览器将连续数字识别为号码

今天在用go的templates做网页的时候,发现被ios的内置浏览用webview加载 会把连续的数字解析成一个可拨打的手机号,并带上链接显示蓝色的字体,在网上搜索了一下发下Safari的官网上说有个 meta 的属性如下

1
<meta name="format-detection" content="telephone=no" />

记录一下~

ELK 学习笔记(从零开始)

  • 一句话介绍
    • Logstash是一个接收,处理,转发日志的工具
    • elasticsearch是基于lucene的开源搜索引擎(实时的全文索引),一个实时分布式搜索和分析引擎
    • kibana 是根据elastic search 数据可视化,丰富功能,支持点选
  • 版本号

    • elasticsearch 版本 2.3.1
    • logstash 版本 2.3.1
    • kibana 版本 4.5.0
  • 文档资料

golang slice copy一个小坑

今天遇到了一个slice在copy中的坑,在复制时一定要注意,目标slice的len是大于源slice的len.(不是cap)
直接上代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
package main

import "fmt"

func main() {
srcSlice := []string{"hello","world"}
copy1 := []string{}
copy2 := make([]string, len(srcSlice))
copy(copy1, srcSlice)
copy(copy2, srcSlice)
fmt.Printf("srcSlice:%v \n",srcSlice)
fmt.Printf("copy1:%v \n",copy1)
fmt.Printf("copy2:%v \n",copy2)
}

1
console:
    srcSlice:[hello world] 
    copy1:[] 
    copy2:[hello world]

golang gctrace

golang的GCTRACE(垃圾收集器追踪) 操作步骤:

1.先写点go代码,做点内存操作

test1.go :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
package main

import (
"fmt"
"log"
"math/rand"
"net/http"
)


type HXTest struct {
Id int
Name string
Email string
}

Fork me on GitHub