go

刷手支付上线!从今天起,你在亚马逊购物真要「剁手」了

假如想象 提交于 2020-10-01 09:00:31
  机器之心报道    作者:微胖、徐丹    手掌是新的指纹。Amazon One是Amazon的一项新服务,是一种新颖的非接触式付款方式,可扫描您的手掌进行身份验证。除付款外,它还可用于需要身份验证的任何事物,例如进入体育场或出示会员卡。   客人喜欢排队吗?答案显然是否定的。当手掌成为新的指纹,你的结账速度能有多快?   9月29日,机器之心消息,据亚马逊内部人士透露,亚马逊「人手支付」系统已正式上线,名称为「Amazon One」。美东时间上午八点,该系统会在亚马逊西雅图总部附近的两家Amazon Go便利店首次亮相。   Amazon Go是一种无需结账台的新型商店,自近两年前在亚马逊西雅图总部一楼首次亮相以来,亚马逊已在美国开设了24个Amazon Go门店。   在以往的进店和结算方式中,访客必须在旋转门上扫描Amazon Go应用,才能进入消费。离店后,借助摄像头和传感器,关联帐户会自动结算。   现在,有了新的生物识别技术 Amazon One,进店和付款方式进一步升级。购物者在门口或结账时将手掌放在扫描仪上,即可完成付款。   外媒曾有消息报道(未经官方证实),该系统的识别错误率在百万分之一以内,而亚马逊的工程师正努力将其提高到一亿分之一以内。   该技术的响应速度也非常快,普通的银行卡交易需要 3 到 4 秒,但亚马逊的这一系统只需要 0.3 秒

不好!我中了美人计!

有些话、适合烂在心里 提交于 2020-10-01 07:38:43
后记:这篇是上一篇《 JavaScript的最大秘密 》的续集,继JavaScript的原型法之后,又介绍了一下Go语言面向对象的实现。Go语言在面向对象这一块儿比较有趣,结构体和方法分开,没有继承,只有组合,有一种看起来很像DuckTyping的多态,我想Ken Thompson和Rob Pike等人在设计Go语言的时候,肯定经过了深思熟虑,精心考量。 在Go语言的官网上,对Go语言是不是面向对象的语言做了答复:是也不是。虽然Go语言有类型和方法,并且允许面向对象风格的编程,但是并没有类型的继承,Go语言中“接口”的概念提供了一种不同的方式,我们认为在它更容易使用,更加通用。 Go语言通过在一个类型中嵌入另外一个类型来支持子类化(虽然并不完全等同)的概念。除此之外,Go语言中的方法比C++和Java更加通用,程序员可以在任何数据类型上定义方法,甚至是内置的类型:如Integer, 方法并不局限在structs(classes)上。 同样,没有类型继承使得Go语言中的对象用起来比C++或者Java更加轻量级。 来源: oschina 链接: https://my.oschina.net/u/4255780/blog/4613177

Nacos Go 微服务生态系列(一)| Dubbo-go 云原生核心引擎探索

安稳与你 提交于 2020-10-01 06:51:16
作者 | 李志鹏 近几年,随着 Go 语言社区逐渐发展和壮大,越来越多的公司开始尝试采用 Go 搭建微服务体系,也涌现了一批 Go 的微服务框架,如 go-micro、go-kit、Dubbo-go 等,跟微服务治理相关的组件也逐渐开始在 Go 生态发力,如 Sentinel、Hystrix 等都推出了 Go 语言版本,而作为微服务框架的核心引擎--注册中心,也是必不可缺少的组件,市面已经有多款注册中心支持 Go 语言,应该如何选择呢?我们可以对目前主流的支持 Go 语言的注册中心做个对比。 图 1 根据上表的对比我们可以从以下几个维度得出结论: 生态 :各注册中心对 Go 语言都有支持,但是 Nacos、 Consul、Etcd 社区活跃,zookeeper 和 Eureka 社区活跃度较低; 易用性 :Nacos、Eureka、Consul 都有现成的管控平台,Etcd、zookeeper 本身作为 kv 存储,没有相应的管控平台,Nacos 支持中文界面,比较符合国人使用习惯; 场景支持 :CP 模型主要针对强一致场景,如金融类,AP 模型适用于高可用场景,Nacos 可以同时满足两种场景,Eureka 主要满足高可用场景,Consul、Zookeepr、Etcd 主要满足强一致场景,此外 Nacos 支持从其它注册中心同步数据,方便用户注册中心迁移; 功能完整性

go编写的端口扫描工具

折月煮酒 提交于 2020-10-01 06:49:27
go编写的扫描工具 scan.go package main import ( "fmt" "log" "net" "sync" "time" ) func main() { var wg sync.WaitGroup var mutex sync.Mutex ports := make([]int, 0) for i := 80; i <= 50000; i++ { wg.Add(1) go func(port int) { defer wg.Done() conn, err := net.DialTimeout("tcp", fmt.Sprintf("127.0.0.1:%d", port), time.Second) if err != nil { log.Printf("Error:%v.Port:[%d]\n", err, port) } else { conn.Close() log.Printf("Connection successful.Port:[%d]\n", port) mutex.Lock() ports = append(ports, port) mutex.Unlock() } }(i) } wg.Wait() fmt.Printf("Opened ports:%v", ports) } 可以不编译,直接 go run scan.go 来源:

浅读关于go语言的类属性大小写区别

久未见 提交于 2020-10-01 03:46:48
最近在调试go程序,遇到一个神坑的问题,就是类属生的变量命名问题, 后面才发现属性的首字母大小写表示的意义是不同的! go中根据首字母的大小写来确定可以访问的权限。无论是方法名、常量、变量名还是结构体的名称,如果首字母大写,则可以被其他的包访问;如果首字母小写,则只能在本包中使用。可以粗暴的理解为首字母大写是公有的,首字母小写是私有的。 类属性如果是小写开头,则其序列化会丢失属性对应的值,同时也无法进行Json解析。 如以下代码: 在tool里面创建以下两个结构体struct1及struct2,其中desc属性一个是首字母大写,一个是首字母小写 结构体1: type Struct1 struct{ Text string desc string } 结构体2: type Struct2 struct{ Text string Desc string } 当在main包进行调用时 m2:=tool.Method2{"text2","desc2"} fmt.Printf("text:= %s desc:= %s\n",m2.Text,m2.Desc) 可以正常访问及使用。 // m:=tool.Method1{"text","desc"} // fmt.Printf("text:= %s desc:= %s\n",m.Text,m.desc) 则会报错,变量名desc不能识别。

微服务架构下的测试策略

主宰稳场 提交于 2020-10-01 02:55:26
源宝导读: 最近几年,微服务架构越来越火爆,逐渐被企业所采用。随着软件架构的变化,对应的软件测试策略需要作何调整呢?本文将介绍云客在微服务架构下的测试策略。 一、云客测试策略模型 策略分析 行业内的测试策略 是一个先底层再上层、从局部到整体的一个过程: 从行业内的演进过程可以看到,项目测试策略在不同阶段结合参考了不同的策略模型:金字塔->近似钻石->蜂巢。 基于行业经验,结合我们实际的架构特点,云客同样划分为不同的层级进行测试:客户端、BFF层、服务层,跟钻石型的过程是类似的。 各层测试侧重点 服务层不正常可能会影响BFF,BFF不正常可能会影响客户端,但每一层级各自验证的侧重点是不同的: 1 客户端 检查客户端(APP、小程序、WEB站点)操作以及操作后的界面呈现。 2 BFF层 不考虑服务层的实现规则和数据库存储,只关注用户在客户端的不同操作场景下,业务逻辑是否达到预期,确保衔接客户端和服务层是否正确。 3 服务层 对单个服务接口逐个测试,需要考虑入参和出参、数据库存储是否符合预期。 二、BFF层测试策略 BFF层测试面临的问题 由于BFF层的接口通常会调用到多个底层服务接口,由此暴露出一系列问题: 涉及业务场景多 涉及多种缓存 自动化用例设计难度大 工具的缺失 BFF层测试策略分析 针对以上问题,考虑云客的BFF层测试策略需要达到以下效果: 解决用例设计困难:

Go 语言编程 — 作用域

只愿长相守 提交于 2020-10-01 02:36:28
目录 文章目录 目录 作用域 局部变量 全局变量 变量的声明周期 作用域 作用域是已声明标识符所表示的常量、类型、变量、函数、或包在源代码中的作用范围(有效性范围)。 注意,声明了的局部变量必须被引用,否则会触发异常。全局变量则不需要,因为编译器会考虑该全局变量是否会在其他地方被引用。 局部变量 在函数体内声明的变量称之为局部变量,它们的作用域只在函数体内,形式参数和返回值变量也是局部变量。 package main import "fmt" func main ( ) { /* 声明局部变量 */ var a , b , c int /* 初始化参数 */ a = 10 b = 20 c = a + b fmt . Printf ( "结果: a = %d, b = %d and c = %d\n" , a , b , c ) } 全局变量 在函数体外声明的变量称之为全局变量,作用域为整个包(Package),可以在包内的任何函数中使用。 需要注意的是,包内有效变量的可导出性由变量名称的首字母大小写决定。 小写:不可导出,外部包无法导入。 大写:可导出,外包可以导入。 package main import "fmt" /* 声明全局变量 */ var g int func main ( ) { /* 声明局部变量 */ var a , b int /* 初始化参数 */ a =

Build Your First VR App(unity for oculus)

允我心安 提交于 2020-10-01 02:32:31
This tutorial helps you build your first VR app in Unity. It’s a basic app, which introduces primary Unity concepts such as 3D objects, components, and build settings. It does not use Oculus Integration package as the objective of this tutorial is to get you started with Unity’s basic concepts and interface. At the end, you’ll have a VR app ready to run on your computer. What’s the app about? It’s a simple game! The scene contains a play area surrounded by four walls and a ball that acts as a player. The objective of the game is to keep the ball rolling without colliding with the walls. If it

8个流行的Python可视化工具包,你喜欢哪个?

依然范特西╮ 提交于 2020-09-30 16:05:17
喜欢用 Python 做项目的小伙伴不免会遇到这种情况:做图表时,用哪种好看又实用的可视化工具包呢?之前文章里出现过漂亮的图表时,也总有读者在后台留言问该图表时用什么工具做的。下面,作者介绍了八种在 Python 中实现的可视化工具包,其中有些包还能用在其它语言中。快来试试你喜欢哪个? 用 Python 创建图形的方法有很多,但是哪种方法是最好的呢?当我们做可视化之前,要先明确一些关于图像目标的问题:你是想初步了解数据的分布情况?想展示时给人们留下深刻印象?也许你想给某人展示一个内在的形象,一个中庸的形象? 本文将介绍一些常用的 Python 可视化包,包括这些包的优缺点以及分别适用于什么样的场景。这篇文章只扩展到 2D 图,为下一次讲 3D 图和商业报表(dashboard)留了一些空间,不过这次要讲的包中,许多都可以很好地支持 3D 图和商业报表。 Matplotlib、Seaborn 和 Pandas 把这三个包放在一起有几个原因:首先 Seaborn 和 Pandas 是建立在 Matplotlib 之上的,当你在用 Seaborn 或 Pandas 中的 df.plot() 时,用的其实是别人用 Matplotlib 写的代码。因此,这些图在美化方面是相似的,自定义图时用的语法也都非常相似。 当提到这些可视化工具时,我想到三个词:探索(Exploratory)、数据

国标GB28181协议EasyGBS视频平台在按需播放下如何稳定播放视频流?

陌路散爱 提交于 2020-09-30 15:39:27
在EasyGBS中直播流的接口调用是客户访问最多的一个接口,由于TSINGSEE青犀视频的EasyGBS有按需播放这个功能,大家可以看一下我们写过的《 EasyGBS无插件视频监控按需直播的实现 》。由于该功能是默认开启的,所以导致有很多客户在调用我们EasyGBS直播流接口只能播放十几秒,部分用户由于服务器网络压力必须要选择按需播放才能够保持服务器稳定。 基于部分客户的需求,我就在本文为大家说下如何在按需播放下如何能稳定的播放视频流。 1、EasyGBS在按需播放的情况下,获取视频流的第一步就是调用开始播放的接口。 注意:传设备编号或者通道编号时,有CDN加速的设备需要配置CDN地址。 2、调用直播流保活接口 接口保活可以保证该设备的流处于保活的状态,但是下面这个参数要注意一下: 该接口只能保活流15秒,15秒之后按需播放的通道就会出现播放失败的现象。此时用户需要在java或者go里面写一个定时器设置每15秒钟触发一次这个接口,或者在前端上面写个循环,每15秒钟循环对这个地址进行访问,这样就可以对其进行无差别访问。 关于EasyGBS的保活接口,之前写过文章介绍: 国标GB/T28181流媒体服务器无插件直播接口保活的调用方法 。视频相关解决方案均可访问 TSINGSEE青犀视频 ,可以联系我们获取演示方案,直观感受,也可自行下载及测试。 来源: oschina 链接: