go get proxy

缘起

google被墙,code.google.com 上的 golang package何以下载?

解决办法

办法1: 走国外的VPN

不做详细介绍

办法2: 走代理

说明:

go get 本身没有设置代理的功能; go get 本身也没有做太多事情,主要还是依赖hg、git工具来下载代码的;

  1. github 代理设置:

    如果出现证书校验问题,可以做如下设置:

    也可以通过设置环境变量搞定:

     
  2. 关于hg的代理设置:(hg在linux上是python脚本,在windows上是二进制程序)
    1. linux 环境上设置环境变量http_proxy=proxy_host:proxy_port      (定义在 ~/.hg/hgrc 中似乎没有生效, 查了下,命令先参考 ~/.hgrc 文件,再参考当前目录下的 .hg/hgrc 文件)
      linux上关于hg命令的安装:

       
    2. windows上: hg help config  详细介绍了 hg的配置文件的路径及格式,设置代理方式只需在配置文件中添加:
  3. 经过了上述设置,似乎还是不行,因为 go get 确实有时候在执行hg、git命令之前执行了一些(个?)http请求,这些http请求是通过go直接实现的,好在go默认是支持http_proxy(大写也可以HTTP_PROXY)环境变量的,可以直接如下设置:

    当然如果代理是https,可以:

    注意:http:// (或 https://) 是需要的,笔者学艺不精,曾经一直写作 ( export http_proxy=host:port ) ,应该是有软件支持这样写法,现在这么些总不生效,还以为go不支持这个环境变量,再加上刚接触go时,这部分代码也没看太明白,走了不少弯路,现在回头来看,确实go是支持该环境变量的

    http.DefaultClient 默认使用的是 DefaultTransport 而 DefaultTransport 默认参考:  ProxyFromEnvironment; 但是该关系有些隐晦,不是一下就能看出来的

  4. 或许还是无法使用go get ,因为 go get 确实有时候在执行hg、git命令之前执行了一些(个?)http请求的,解决办法: 直接使用hg、git命令来clone到本地,如:

     

 

关于TortoiseSVN 无法记住用户名密码的问题

缘起

一直使用TortoiseSVN ,通过记住用户名密码的功能,使得每次操作不需要重新输入用户名密码; 终于有一天,SVN在服务器端修改了密码,于是TortoiseSVN 提示需要输入用户名密码(可以理解),不过,每次都提示(不可以接受),当然,我肯定是勾选了记住用户名密码的。

解决办法

右键 => 设置 => savedata => clear authentication data     如图:

redis是如何处理同一个连接中连续的多个请求的

示例代码:

 输出:

使用Excel拟合曲线方程

数据

方法

  1. 插入图表(折线图)
  2. 在折线图的折线上右键-> 添加趋势线
  3. 在“趋势线选项”上调整参数,并选择“显示曲线公式”

结果

 

 

为什么go build 时报gcc找不到的错误

问题

写了好几天的Go程序,都没有感觉到还会用到gcc,今天突然在go build 时报如下错误:

exec: “gcc”: executable file not found in %PATH%

原因

今天想了解一下Go语言中如果做字符集转换,发现基础类库中没有这部分,但是有几个第三方的可以使用,比如: https://github.com/djimenez/iconv-go ; 这个是将C版的iconv用Go包了一下,说到这里就水落石出了,因为我引用的iconv-go是C的一个wrap;

注意: Go 可以编译出来不同平台架构下的程序,但是如果使用的C的类库是32位的,但是却试图编译成64位的程序,将会遇到如下错误:

sorry, unimplemented: 64-bit mode not compiled in

当然,有完全Go版的字符集转换类库: http://godoc.org/code.google.com/p/go-charset

关于goroutine的一些理解

 

参考资料:

  1. http://blog.zhaojie.me/2013/04/why-channel-and-goroutine-in-golang-are-buildin-libraries-for-other-platforms.html      这篇文章讨论的好激烈
  2. https://github.com/dafang/notebook/issues/88    Golang适合高并发场景的原因分析
  3. http://ieqi.net/
  4. http://xiezhenye.com/2012/08/%E5%86%8D%E6%8E%A2-goroutine.html
  5. goroutine 没有完全抛弃线程,而且关系有些暧昧,仔细读这篇文章(评论更精彩): http://xiezhenye.com/2012/08/%E5%86%8D%E6%8E%A2-goroutine.html