小编Jér*_*e R的帖子

在Go中读取gzip压缩的HTTP响应

我试图用Go读取一个gzipped HTTP响应!但我总是收到以下错误消息:

panic: gzip: invalid header
[...] stack trace [...]
Run Code Online (Sandbox Code Playgroud)

如果我运行"curl -H"接受编码:gzip" http://foo.com/ | gunzip - "我得到了正确的枪杀响应.我还用ngrep进行了双重检查,正确发送/返回了一对Accept-Encoding/Content-Encoding.

如果我创建一个包含一些虚拟内容的文件并对其进行gzip,我可以从Go中读取它!程序.

我用来测试的程序:

package main

import (
    "io"
    //"os"
    "fmt"
    "compress/gzip"
    "net/http"
)

func main() {
    /* This works fine
    f, _ := os.Open("/tmp/test.gz")
    defer f.Close()
    reader, err := gzip.NewReader(f)
    */

    // This does not :/
    resp, _ := http.Get("http://foo.com/")
    defer resp.Body.Close()
    reader, err := gzip.NewReader(resp.Body)

    if err != nil { panic(err) }

    buff := make([]byte, 1024)
    for {
        n, err := reader.Read(buff)

        if …
Run Code Online (Sandbox Code Playgroud)

go

31
推荐指数
3
解决办法
2万
查看次数

从go二进制文件动态构建和链接

我的问题如下:

  1. 我在机器上有二进制文件
  2. 从那个二进制文件我需要编译外部.go文件
  3. 编译完成后,我需要将已编译的go文件链接到当前的二进制文件中,以便我可以使用刚刚编译的go代码.

你觉得这可能吗?

我做了一些研究,似乎不太可能,但我可能忽略了一些东西.

谢谢 :)

第一个二进制文件包含类似的内容

func main() {
    // Here I need to compile an external go file (or package) which contains
    // The definition of runFoo()

    // Once the file/package is compiled and linked I need to call the compiled code
    runFoo()

    // Continue the execution process normally here
}
Run Code Online (Sandbox Code Playgroud)

go

15
推荐指数
3
解决办法
2万
查看次数

如何在OS X上安装Hudson作为服务?

运行hudson很容易,但目前文档缺少在OS X上安装正在运行的hudson作为守护进程/服务的教程.

切换到生产时,您需要确保正确配置和保护.

要求:

  • 能够在端口80上运行它
  • 不以root身份运行(或者至少不以root身份运行作业)
  • 确保它在系统重启时正确启动/停止
  • 启用自动升级,直接从Web界面工作.

最好的,是安装脚本,下载最新的哈德森并安装它.

我们将整合Hudson wiki的最佳答案.

资源:

macos hudson jenkins

11
推荐指数
2
解决办法
1万
查看次数

关于在postgresql中使用时区的策略

我需要在我的应用程序中使用多个时区.

基本上我的系统生成数据,来自地球上任何地方的客户都可以访问它.

由于我的数据有一个相关的时间戳,我想到了以下处理时区的策略.

在Postgres:

  • 使用::timestamptz我的时间戳的类型创建我的表.没有时区的时间戳不允许混合::timestamp,::timestamptz在我的情况下看起来像一颗定时炸弹.

  • 将我的PG服务器系统的时区设置为UTC.

  • 设置timezone='UTC'postgresql.conf(可能并不需要,如果系统的TZ是UTC,但我是一个有点偏执,它花了我什么).

  • 创建表时添加以下检查:

    CONSTRAINT timestamp_must_be_utc CHECK(date_part('timezone':: text,"my_timestamp_field")= 0 :: double precision)

  • 以UTC格式存储我的所有时间戳

在客户端(python + pytz)

  • 将客户的时区存储在他的个人资料中,例如 'America/Los Angeles'

  • 在查询数据时将时区信息发送到postgres,这样我就能获得类似的东西SELECT xxxx FROM yyyy WHERE my_ts >= '2012-11-27 19:13:00+01'::timestamptz,让Postgres转换为UTC.或者我可以使用pytz进行转换,但似乎Postgres会做得很好.

  • 根据客户的时区转换时间戳,以便我可以正确显示数据+时间戳.

总而言之,我计划在任何地方使用UTC来存储和查询数据,并在显示数据时只使用时区转换.

我对Postgres及其处理时区的方式没有多少经验.我知道处理不同时区的日期和时间是多么困难(一旦你必须使用航班时刻表,你就会学到使用UTC是唯一可行的日期和时间微积分的方法)这就是我要问的原因这个问题让我更有经验的postgres用户可以确认或纠正我的策略.

有趣的链接:

postgresql timezone datetime timestamp

5
推荐指数
1
解决办法
3569
查看次数

标签 统计

go ×2

datetime ×1

hudson ×1

jenkins ×1

macos ×1

postgresql ×1

timestamp ×1

timezone ×1