go 在机器学习方面的生态环境如何?

有问必答DQ 回复了问题 • 2 人关注 • 2 个回复 • 1073 次浏览 • 2016-12-07 09:25 • 来自相关话题

Go 1.8 的 Plugins 使用

文章分享veni 发表了文章 • 11 个评论 • 2330 次浏览 • 2016-12-06 18:05 • 来自相关话题

Go 1.8为我们提供了一个创建共享库的新工具,称为Plugins!让我们来创建和使用一个插件。 目前的插件只能在 Linux 和 Darwin (1.8正式版 因为 bug 已移除支持)上工作。

安装1.8 beta1, 不做说明.查看全部

Go 1.8为我们提供了一个创建共享库的新工具,称为Plugins!让我们来创建和使用一个插件。
目前的插件只能在 Linux 和 Darwin (1.8正式版 因为 bug 已移除支持)上工作。


安装1.8 beta1, 不做说明.


创建一个插件方法到 aplugin.go:


package main

func Add(x, y int) int {
return x+y
}

func Subtract(x, y int) int {
return x-y
}

然后构建插件:


运行下面命令构建插件:


go build -buildmode=plugin

构建指定文件插件aplugin.go到aplugin.so:


go build -buildmode=plugin -o aplugin.so aplugin.go

加载插件:


p, _ := plugin.Open("./aplugin.so")
//p, err := plugin.Open("./aplugin.so")

call插件:


add, _ := p.Lookup("Add")
sub, _ := p.Lookup("Subtract")

使用插件:


sum := add.(func(int, int) int)(11, 2)
fmt.Println(sum)
subt := sub.(func(int, int) int)(11, 2)
fmt.Println(subt)

另外源码测试中有:


go build -buildmode=c-shared

应该可以支持c语言构建插件

初学到range map部分,为何用range输出的map是无序的?

有问必答tupunco 回复了问题 • 3 人关注 • 2 个回复 • 568 次浏览 • 2016-12-06 18:00 • 来自相关话题

网站实现一个全局的方法,实现导航栏显示登陆注册按钮或者登录用户的信息

有问必答lotus 回复了问题 • 6 人关注 • 5 个回复 • 1202 次浏览 • 2016-12-06 14:27 • 来自相关话题

请问有没有比较实用的go日志分析程序?

有问必答九命猫 回复了问题 • 7 人关注 • 4 个回复 • 1695 次浏览 • 2016-12-06 13:52 • 来自相关话题

Elixir 会成为明日之星么?似乎是

技术讨论akin520 回复了问题 • 2 人关注 • 1 个回复 • 535 次浏览 • 2016-12-06 10:43 • 来自相关话题

【七牛云】存储实施工程师

招聘应聘七小牛来招聘 发表了文章 • 1 个评论 • 448 次浏览 • 2016-12-06 09:40 • 来自相关话题

【七牛云】存储实施工程师

  • 岗位职责:

    1. 负责公司存储产品的群集搭建/交付/运维/监控/故障处理工作;
    2. 对交付服务的稳定性,可用性和速度负责,通过各种技术方法,管理手段达到目标; ... 查看全部

【七牛云】存储实施工程师




  • 岗位职责:



    1. 负责公司存储产品的群集搭建/交付/运维/监控/故障处理工作;

    2. 对交付服务的稳定性,可用性和速度负责,通过各种技术方法,管理手段达到目标;

    3. 负责向客户交付明确的环境说明文档和技术操作规范,配合商务人员完成交付验收和故障解释工作。

    4. 对存储系统进行科学的容量规划,可以支持客户侧高速发展的业务需求;

    5. 可以团队配合应对突发故障的紧急响应和处理工作,能够适应必要情况下的出差任务和应急加班。




  • 岗位要求:



    1. 有三年以上运维工程师相关工作经验,linux平台运维管理经验丰富;

    2. 技术能力强:
      -熟悉主流的LINUX系统如CENTOS/RHEL LVS CLUSTER及DEBIAN/UBUNTU SERVER的配置与管理(不少于两种)
      -了解常规网络设备及通用协议,交换机,软硬件防火墙等
      -熟悉nginx、mongodb、rabbitmq等服务的原理和配置,并能解析日志并排除常见故障;
      -熟悉Iptables, VLAN, RSYNC, OPENVPN等技术
      -较强的SHELL脚本编写能力,或至少会使用PHP/PERL/PYTHON中的一种进行编程
      -对IDS/IPS,缓存,安全和防范非法入侵攻击有一定的经验

    3. 有强烈责任心和学习能力,有公司级别优秀员工及优秀项目奖励者优先;

    4. 有大型网站或服务器集群维护经验(2000万PV 以上,100台服务器以上)者优先。



  • 公司地点:金科路2889弄长泰广场A座10层

  • 简历投递邮箱:xiamengru@qiniu.com(请备注求职职位)

golang有什么好的纯web路由框架推荐吗?

有问必答zensh 回复了问题 • 6 人关注 • 5 个回复 • 1314 次浏览 • 2016-12-05 21:59 • 来自相关话题

golang镜像脚本

文章分享astaxie 发表了文章 • 2 个评论 • 598 次浏览 • 2016-12-05 21:14 • 来自相关话题

这两天正在做镜像站,dl.gocn.io,打算做成国内的下载,这个脚本用来快速下载官方包的,分享给大家。

#!/bin/... 			查看全部
					

这两天正在做镜像站,dl.gocn.io,打算做成国内的下载,这个脚本用来快速下载官方包的,分享给大家。


#!/bin/bash

versions="1.8beta1
1.7.4
1.7.3
1.7.1
1.7
1.6.4
1.6.3
1.6.2
1.6.1
1.6
1.5.4
1.5.3
1.5.2
1.5.1
1.5
1.4.3
1.4.2
1.4.1
1.4
1.3.3
1.3.2
1.3.1
1.3
1.2.2
"

systems="src.tar.gz
darwin-amd64.tar.gz
darwin-amd64.pkg
darwin-386-osx10.6.tar.gz
darwin-386-osx10.8.tar.gz
darwin-386-osx10.6.pkg
darwin-386-osx10.8.pkg
darwin-amd64-osx10.6.tar.gz
darwin-amd64-osx10.8.tar.gz
darwin-amd64-osx10.6.pkg
darwin-amd64-osx10.8.pkg
freebsd-386.tar.gz
freebsd-amd64.tar.gz
linux-386.tar.gz
linux-amd64.tar.gz
linux-armv6l.tar.gz
linux-ppc64le.tar.gz
linux-s390x.tar.gz
windows-386.zip
windows-386.msi
windows-amd64.zip
windows-amd64.msi"

for i in $versions
do
mkdir $i
echo "make dir $i"
cd $i
echo "entry into $i"
for j in $systems
do
if [ -f "go$i.$j" ]
then
echo "file exist:go$i.$j"
else
wget "https://storage.googleapis.com/golang/go$i.$j"
fi
done
cd ..
echo "back to preview dir"
done

图片爬虫laosj(老司机),支持分布式,可以自定义下载并发量

开源程序songtianyi 发表了文章 • 2 个评论 • 644 次浏览 • 2016-12-05 13:19 • 来自相关话题

最近在做鉴黄方面的东西,自己写了个图片爬虫爬点图。

功能不算强大,但是非常轻量 好用,临时需要爬些数据是极好的。

有现成的示例,编译完可用。

查看全部

最近在做鉴黄方面的东西,自己写了个图片爬虫爬点图。


功能不算强大,但是非常轻量 好用,临时需要爬些数据是极好的。


有现成的示例,编译完可用。


https://github.com/songtianyi/laosj

socket连接后一般比较短的信息,从本机到服务器的传递时间是多少?

有问必答caibirdme 回复了问题 • 2 人关注 • 1 个回复 • 638 次浏览 • 2016-12-05 13:05 • 来自相关话题

bool 类型存储类型,占几个字节

有问必答shannonlu 回复了问题 • 3 人关注 • 2 个回复 • 729 次浏览 • 2016-12-05 12:16 • 来自相关话题

go core如何写入文件

有问必答astaxie 回复了问题 • 3 人关注 • 1 个回复 • 741 次浏览 • 2016-12-05 11:19 • 来自相关话题

比 encoding/json 更快地解析 json

开源程序taowen 发表了文章 • 1 个评论 • 695 次浏览 • 2016-12-04 23:36 • 来自相关话题

https://github.com/json-iterator/go

直接替换 json.Unmarshal

仍然使用反... 查看全部

https://github.com/json-iterator/go


直接替换 json.Unmarshal


仍然使用反射实现,但是比encoding/json的版本更快。完整的测试代码:https://github.com/json-iterator/go-benchmark


func Benchmark_array_by_stardard_lib(b *testing.B) {
b.ReportAllocs()
for n := 0; n < b.N; n++ {
sample := make([]int, 0, 10)
json.Unmarshal([]byte(`[1,2,3,4,5,6,7,8,9]`), &sample)
}
}

500000 2478 ns/op 408 B/op 14 allocs/op


func Benchmark_array_by_jsoniter(b *testing.B) {
b.ReportAllocs()
for n := 0; n < b.N; n++ {
sample := make([]int, 0, 10)
jsoniter.Unmarshal([]byte(`[1,2,3,4,5,6,7,8,9]`), &sample)
}
}

2000000 740 ns/op 224 B/op 4 allocs/op


和 encoding/json 的区别是,标准库使用的是reflect.ValueOf,然后根据json的输入情况去找对应的field和element。而jsoniter的实现是反过来的,用reflect.TypeOf确定一个json的schema,然后根据schema产生对应的decoder。如果json输入不符合这个decoder则报错。


StAX 风格的 API


如果使用更底层的api,可以完全避免反射的开销


func Benchmark_array_by_jsoniter_direct(b *testing.B) {
b.ReportAllocs()
for n := 0; n < b.N; n++ {
sample := make([]uint64, 0, 10)
iter := jsoniter.ParseString(`[1,2,3,4,5,6,7,8,9]`)
for iter.ReadArray() {
sample = append(sample, iter.ReadUint64())
}
}
}

3000000 455 ns/op 112 B/op 2 allocs/op

輕量級框架 Gin 釋出 v1.1 版本

开源程序appleboy 发表了文章 • 3 个评论 • 594 次浏览 • 2016-12-03 19:33 • 来自相关话题

知名輕量級框架 Gin 在今天釋出 v1.1 版本

知名輕量級框架 Gin 在今天釋出 v1.1 版本



  • Implement QueryArray and PostArray methods

  • Refactor GetQuery and GetPostForm

  • Removed additional Iota


另外我們也移除 coveralls 服務,改用 codecov.io 來顯示代碼覆蓋率。