go

Python是怎么火起来的

China☆狼群 提交于 2020-11-02 07:17:00
题图:Python之父 Guido 正在设计Python语言,结果家里突然潜入一条大蟒蛇,一番激烈斗争,大蟒蛇把Guido叔生吞进肚,并洋洋自得:So Who is Guido Van Rossum?(纯属个人解读,有如雷同,纯属巧合) 几年前 Python 在国内还只是一门小众语言,但从 2011开始到现在,Python 的百度搜索指数翻了10 倍,从下图看得出 Python 在国内的流行度已经直逼 Java,大有赶超之势 (百度指数) 一个行业火不火,就看有多少(自)媒体、培训机构涌入进来为之疯狂,用百度搜关键字“python”就有5条是培训广告,而Ruby、PHP、Go 等语言一条都没有,显然还是 Python 的生意更好做。我 2011 年开始接触 Python,那时国内除了豆瓣、搜狐在用 Python 之外,很难看到有体量的公司用 Python,而在美国,Python 其实一直都很流行,像 Google、Instagram、Dropbox、Youtube、Reddit、Quora 这些明星网站都在用Python做核心业务。从 Google Trands 看得出它一直处于平稳的趋势,这两年上升趋势比较明显,显然主要贡献来自于中国。 (Google Trands) 那么国内这几年 Python 怎么突然就火起来了? 中国地区搜索python相对指数 究其原因

SQL Server不同服务器不同数据库间的操作

感情迁移 提交于 2020-11-02 06:41:07
什么是跨服务器操作? 跨服务器操作就是可以在本地连接到远程服务器上的数据库,可以在对方的数据库上进行相关的数据库操作,比如增删改查。 为什么要进行跨服务器操作 随着数据量的增多,业务量的扩张,需要在不同的服务器安装不同的数据库,有时候因为业务需要,将不同的服务器中的数据进行整合,这时候就需要进行跨服务器操作了。 跨服务器操作的工具是什么? DBLINK(数据库链接),顾名思义就是数据库的链接,就像电话线一样,是一个通道,当我们要跨本地数据库,访问另外一个数据库表中的数据时,本地数据库中就必须要创建远程数据库的dblink,通过dblink本地数据库可以像访问本地数据库一样访问远程数据库表中的数据。 方式一: 创建SQL Server远程链接: 1. 登录到本地数据库-->服务器对象-->链接服务器(右键)-->新建链接服务器 2. 在弹出的对话框中输入相关信息 3. 点击左侧“安全性”,出现以下页面,输入对方数据库的账号密码即可 4. 点击“确定”后即创建成功,如下图可以看到创建好的链接服务器 5. 下面使用创建好的链接试着查询对方服务器的表来验证一下 原文地址: http://baijiahao.baidu.com/s?id=1601340639397887562&wfr=spider&for=pc 方式二: 同一台服务器不同数据库 select * from 数据库名..表名

Web3极客日报 #297

一世执手 提交于 2020-11-02 03:28:09
微信不支持外部链接,可以点击文章底部的 阅读原文 ,方便阅读文中的链接, 也可通过 http://daily.rebase.network/ 浏览每期日报内容。 1. Goroutine泄露检测器 @Gala https://medium.com/a-journey-with-go/go-goroutine-leak-detector-61a949beb88 由于Go原生支持协程方式用于并发操作,Goroutine往往会滥用,当线上系统业务压力很高时,可能出现Goroutine泄露导致内存爆炸,这时候可以用文章推荐的工具进行排查解决,感兴趣同学可以研究下。 2. 如何在智能合约中调用服务API @Gala https://medium.com/better-programming/how-to-call-apis-from-ethereum-smart-contracts-e2f1500198c7 对于在以太坊中构建的智能合约,很多场景需要和外部数据交互,这时候需要Oracle来帮忙,文章介绍一种方式使用chainlink来帮助智能合约调用外部服务。 3. 在以太坊构建一个可验证随机数的抽奖合约 @Gala https://medium.com/better-programming/build-a-verifiably-random-lottery-smart-contract

记一次被DDoS敲诈的历程

大憨熊 提交于 2020-11-01 20:40:15
0×01 背景 之前一个蜀国的朋友业务被DDOS攻击,业务服务被机房断网,客户单流失有经济损失,这篇具体说的就是这件事情。 背景是这样,一个朋友网站业务被DDoS了,先是威胁要800元RMB,然后又转成提供DDOS的服务,然后又变成了DDOS培训, 又变成了卖DDOS软件,最后又变成了DDOS高防测试提供者,最后到警察叔叔那里,报警立案成功的故事。 采用高仿系统对于防护ddos问题当然有效,但也要注意误拦行为对用户订单的影响。每个公司的具体情况是不一样的,解决问题也要有具体的针对性,比如当机房不是自己的,路由防火墙设备不是自己控制的,无法从类似设备上取得第一手流量信息时(如果能用SNMP),如何处理。当CDN是第三方提供,不能进行黑名单阻断设置等各种情况下,又如何处理。 0×02 来自黑客的威胁 就在这几天,一个朋友传来了他被DDoS的消息,正在搬砖中看到他发的消息,说他们的客服收到到0118号客人的威胁信息,说要马上干掉你们。 这位朋友可能见过大场面的人,这点威胁就能吓倒他吗, 太天真了。 大家可看看下面这个图。 看到上面这个流量激增你们也能看出来,之后服务器真的就挂了,真的挂了,挂了。 这位朋友默默的看了眼高仿的价格,这个价格再次击穿了他的心里防线。 我买,我买, 我买不起。买不起是开玩笑,但这也太贵了。 不过这个时候这位朋友想起来了,客服留言中的那个黑客微信联系方式,

goroutine间的同步&协作

假如想象 提交于 2020-11-01 19:04:39
Go语言中的同步工具 基础概念 竞态条件(race condition) 一份数据被多个线程共享,可能会产生争用和冲突的情况。这种情况被称为竞态条件,竞态条件会破坏共享数据的一致性,影响一些线程中代码和流程的正确执行。 同步 同步可以解决竞态问题。它本质上是在控制多个线程对共享资源的访问。这种控制主要包含两点: 避免多个线程在同一时刻操作同一个数据块。 协调多个线程,以避免它们在同一时刻执行同一个代码块。 在同步控制下,多个并发运行的线程对这个共享资源的访问是完全串行的。对这个共享资源进行操作的代码片段可以视为一个临界区。 互斥量sync.Mutex 一个互斥锁可以被用来保护一个临界区或者一组相关临界区。它可以保证,在同一时刻只有一个 goroutine 处于该临界区之内。 每当有 goroutine 想进入临界区时,都需要先加锁,每个 goroutine 离开临界区时,都要及时解锁。 Mutex的使用 var mutex sync.Mutex func updatePublicResource() { mutex.Lock() doUpdate() mutex.Unlock() } 使用互斥锁的注意事项: 不要重复锁定互斥锁。 不要忘记解锁互斥锁,推荐使用defer。 不要对尚未锁定或者已解锁的互斥锁解锁。 不要在多个函数之间直接传递互斥锁。(即,不要复制锁)