5 个很好的 Python 面试题

󰃭 2016-10-07

转自: https://segmentfault.com/a/1190000000618513 问题一:以下的代码的输出将是什么? 说出你的答案并解释。 class Parent(object): x = 1 class Child1(Parent): pass class Child2(Parent): pass print Parent.x, Child1.x, Child2.x Child1.x = 2 print Parent.x, Child1.x, Child2.x Parent.x = 3 print Parent.x, Child1.x, Child2.x 答案 以上代码的输出是: 1 1 1 1 2 1 3 2 3 使你困惑或是惊奇的是关于最后一行的输出是 3 2 3 而不是 3 2 1。为什么改变了 Parent.x 的值还会改变 Child2.x 的值,但是同时Child1.x 值却没有改变? 这个答案的关键是,在 Python 中,类变量在内部是作为字典处理的。如果一个变量的名字没有在当前类的字典中发现,将搜索祖先类(比如父类)直到被引用的变量名被找到(如果这个被引用的变量名既没有在自己所在的类又没有在祖先类中找到,会引发一个 AttributeError 异常 )。 因此,在父类中设置 x = 1 会使得类变量X 在引用该类和其任何子类中的值为 1。这就是因为第一个 print 语句的输出是 1 1 1。

Continue reading 


详解Python中的__init__和__new__

󰃭 2016-10-06

原文出处: for-in(https://my.oschina.net/liuyuantao/blog/747164) 一、__init__ 方法是什么? 使用Python写过面向对象的代码的同学,可能对 __init__ 方法已经非常熟悉了,__init__ 方法通常用在初始化一个类实例的时候。例如: # -*- coding: utf-8 -*- class Person(object): """Silly Person""" def __init__(self, name, age): self.name = name self.age = age def __str__(self): return '<Person: %s(%s)>' % (self.name, self.age) if __name__ == '__main__': piglei = Person('piglei', 24) print piglei 这样便是__init__最普通的用法了。但 __init__其实不是实例化一个类的时候第一个被调用 的方法。当使用 Persion(name, age) 这样的表达式来实例化一个类时,最先被调用的方法 其实是 __new__ 方法。 二、__new__ 方法是什么? __new__ 方法接受的参数虽然也是和 __init__一样,但__init__是在类实例创建之后调用,而 __new__ 方法正是创建这个类实例的方法。 # -*- coding: utf-8 -*- class Person(object): """Silly Person""" def __new__(cls, name, age): print '__new__ called.

Continue reading 


韩国防部首谈增加萨德

󰃭 2016-09-23

据韩国媒体今日报道,韩国国防部部长韩民求昨天(21日)首次提到追加部署“萨德”反导系统的必要性。韩民求称,一座萨德炮台不能有效防御韩国全境,2-3座炮台“在军事上更为有用”。 韩国防部承认一台“萨德”不够用

Continue reading 


【转】大话程序猿眼里的高并发

󰃭 2016-09-20

高并发是指在同一个时间点,有很多用户同时的访问URL地址,比如:淘宝的双11,双12,就会产生高并发,如贴吧的爆吧,就是恶意的高并发请求,也就是DDOS攻击,再屌丝点的说法就像玩撸啊撸被ADC暴击了一样,那伤害你懂得(如果你看懂了,这个说法说明是正在奔向人生巅峰的屌丝。 高并发会来带的后果 服务端: 导致站点服务器/DB服务器资源被占满崩溃,数据的存储和更新结果和理想的设计是不一样的,比如:出现重复的数据记录,多次添加了用户积分等。 用户角度: 尼玛,这么卡,老子来参加活动的,刷新了还是这样,垃圾网站,再也不来了 我的经历: 在做公司产品网站的过程中,经常会有这样的需求,比如什么搞个活动专题,抽奖,签到,搞个积分竞拍等等,如果没有考虑到高并发下的数据处理,那就Game Over了,很容易导致抽奖被多抽走,签到会发现一个用户有多条记录,签到一次获得了获得了多积分,等等,各种超出正常逻辑的现象,这就是做产品网站必须考虑的问题,因为这些都是面向大量用户的,而不是像做ERP管理系统,OA系统那样,只是面向员工 下面我进行实例分析,简单粗暴,动态分析,纯属本人个人经验分享,如有说错,或者有更好的建议或者意见的请留言,大家一起成长。 并发下的数据处理 通过表设计,如:记录表添加唯一约束,数据处理逻辑使用事物防止并发下的数据错乱问题 通过服务端锁进程防止包并发下的数据错乱问题 这里主要讲述的是在并发请求下的数据逻辑处理的接口,如何保证数据的一致性和完整性,这里的并发可能是大量用户发起的,也可能攻击者通过并发工具发起的并发请求 如例子:通过表设计防止并发导致数据错乱 需求点 【签到功能】 一天一个用户只能签到一次, 签到成功后用户获取到一个积分 已知表 用户表,包含积分字段 高并发意淫分析(属于开发前的猜测): 在高并发的情况下,会导致,一个用户签到记录会有多条,或者用户签到后不止加一积分。 我的设计 首先根据需求我会添加一张签到记录表,重点来了,这张表需要把用户唯一标识字段(ID,Token)和签到日期字段添加为唯一约束,或者唯一索引,这样就可以防止并发的时候插入重复用户的签到记录。然后再程序代码逻辑里,先执行签到数据的添加(这里可以防止并发,添加成功后再进行积分的添加,这样就可以防止重复的添加积分了。最后我还是建议所有的数据操作都写在一个sql事务里面, 这样在添加失败,或者编辑用户积分失败的时候可以回滚数据。 如例子2(事务+通过更新锁 防止并发导致数据错乱 或者事物+Update的锁表机制) 需求点: 【抽奖功能】 抽奖一次消耗一个积分 抽奖中奖后编辑剩余奖品总数 剩余奖品总数为0,或者用户积分为0的时候无法进行抽奖 已知表: 用户表,包含积分字段 奖品表,包含奖品剩余数量字段 高并发意淫分析(属于开发前的猜测): 在高并发的情况下,会导致用户参与抽奖的时候积分被扣除,而奖品实际上已经被抽完了 我的设计: 在事务里,通过WITH (UPDLOCK) 锁住商品表,或者Update 表的奖品剩余数量和最后编辑时间字段,来把数据行锁住,然后进行用户积分的消耗,都完成后提交事物,失败就回滚。 这样就可以保证,只有可能存在一个操作在操作这件商品的数量,只有等到这个操作事务提交后,其他的操作这个商品行的事务才会继续执行。 如例子3(通过程序代码防止包并发下的数据错乱问题) 需求点: 【缓存数据到cache里】, 当缓存不存在的时候,从数据库中获取并保存在cache里,如果存在从cache里获取,每天10点必须更新一次,其他时间点缓存两个小时更新一次 到10点的时候,凡是打开页面的用户会自动刷新页面 问题点: 这里有个逻辑用户触发缓存的更新,用户刷新页面,当缓存存在的时候,会取到最后一次缓存更新时间,如果当前时间大于十点,并且最后缓存时间是10点前,则会从数据库中重新获取数据保存到cache中。 还有客户端页面会在10点时候用js发起页面的刷新,就是因为有这样的逻辑,导致10点的时候有很多并发请求同时过来,然后就会导致很多的sql查询操作,理想的逻辑是,只有一个请求会去数据库获取,其他都是从缓存中获取数据。(因为这个sql查询很耗服务器性能,所以导致在10点的时候,突然间数据库服务器压力暴增) 解决问题: C#通过 (锁)lock,在从数据读取到缓存的那段代码前面加上锁,这样在并发的情况下只会有一个请求是从数据库里获取数据,其他都是从缓存中获取。 访问量大的数据统计接口 需求: 用户行为数据统计接口,用来记录商品展示次数,用户通过点击图片,或者链接,或者其他方式进入到商品详情的行为次数 问题点: 这接口是给前端ajax使用,访问量会很大,一页面展示的时候就会有几十件商品的展示,滚动条滚到到页面显示商品的时候就会请求接口进行展示数据的统计,每次翻页又会加载几十件 意淫分析 设想如果同时有1W个用户同时在线访问页面,一个次拉动滚动条屏幕页面展示10件商品,这样就会有10W个请求过来,服务端需要把请求数据入库。在实际线上环境可能还会超过这个请求量,如果不经过进行高并发设计处理,服务器分分钟给跪了。 解决问题: 我们通过nodejs写了一个数据处理接口,把统计数据先存到redis的list里。(使用nodejs写接口的好处是,nodejs使用单线程异步事件机制,高并发处理能力强,不会因为数据逻辑处理问题导致服务器资源被占用而导致服务器宕机) 然后再使用nodejs写了一个脚本,脚本功能就是从redis里出列数据保存到mysql数据库中。这个脚本会一直运行,当redis没有数据需要同步到数据库中的时候,sleep,然后再进行数据同步操作 高并发的下的服务器压力均衡,合理站点架设,DB部署 以下我所知道的: 服务器代理nginx,做服务器的均衡负载,把压力均衡到多台服务器 部署集群 mysql数据库, redis服务器,或者mongodb服务器,把一些常用的查询数据,并且不会经常的变化的数据保存到其他nosql DB服务器中,来减少数据库服务器的压力,加快数据的响应速度。 数据缓存,Cache 在高并发接口的设计中可以使用具有高并发能力的编程语言去开发,如:nodejs 做web接口 服务器部署,图片服务器分离,静态文件走CDN DBA数据库的优化查询条件,索引优化 消息存储机制,将数据添加到信息队列中(redis list),然后再写工具去入库 脚本合理控制请求,如,防止用户重复点击导致的ajax多余的请求,等等。 并发测试神器推荐 Apache JMeter Microsoft Web Application Stress Tool Visual Studio 性能负载 原文: http://blog.

Continue reading 


知情人士透露三星Note 7爆炸真相

󰃭 2016-09-19

知情人士透露,在苹果新款iPhone不会有太大创新的消息曝出之后,包括移动主管高东真(D.J.Koh)在内三星电子高管们决定利用这一千载难逢的机会,抢在苹果iPhone 7之前发布三星新旗舰。 三星电子高管原本希望借此机会实现对苹果的超越,为此还不惜改变了Galaxy Note系列的命名习惯,跳过Note 6直奔Note 7,以求抢在苹果iPhone 7之前。 另一名了解更多的消息人士则透露,尽管Galaxy Note 7使用了曲面屏、采用了虹膜识别等很多新功能,但三星方面却一再催促供应商加紧工期,以满足Galaxy Note 7能够如期上市。 供应商方面的人士也透露,为了赶工期,员工牺牲了睡眠时间以延长工作时间,在最繁忙的时候,部分员工甚至睡在办公室,以减少往返路途的时间。 三星方面尚未透露是否为了赶超苹果而提前发布了Galaxy Note 7,仅表示其是经历了测试之后才开始批量生产的。 最近最让手机业界关注的大事一个是苹果iPhone 7系列新品的发布上市,另外一个就是三星的Note 7爆炸事件了。对于处于明里暗里较劲的两家手机企业来说,目前面临的局面真的让人难以预料。此前业内普遍对于没有外观创新的苹果iPhone 7不抱乐观的态度,认为目前的苹果iPhone 7是一款过渡性的产品,升级幅度不大,而且早就爆料的苹果iPhone发布10周年的iPhone 8升级幅度更大,因此会拉低人们对于iPhone 7的购买欲望。 但是市场目前来说的反馈还是非常积极的,尤其是亮黑色的iPhone 7 Plus更是一机难求。有消息称苹果已经增加了 10% 的 iPhone 7 零部件订单数量。而原本早发布的三星Note7本应成为狙击苹果iPhone的安卓阵营的最强者,却由于近期的一系列爆炸事件前景蒙上了阴影,反而助攻了苹果对iPhone 7热卖的信心。 三星Note7爆炸引发全球最大规模手机召回的思考 转自网络

Continue reading 


【早报】2016年09月18日 星期日

󰃭 2016-09-17

1)苹果在日本也惹上税务麻烦,被要求补缴超一亿美元税款 2)Uber在美首推无人驾驶载客,23%美国人不敢坐 3)美新闻机构起诉FBI,要求其透露破解iPhone的细节 4)百度获加州自动驾驶许可 5)继iPhone之后MacBook Pro也要取消3.5mm耳机接口 6)美国宣布召回约100万部三星Note 7手机 7)为尽快摆脱Note 7阴影,三星可能会提前发布Galaxy S8 8)苹果公司:首批iPhone 7 Plus已在全球售罄 9)受iPhone 7预定量和三星召回事件推动 苹果股价上涨到今年最高点 10)三星不愿意和“夙敌”富士康为伍:已卖掉夏普股权 11)跟着总理去美洲:三国之行哪些看点值得期待 12)纽约发生爆炸 至少26人受伤 13)辽宁省人大七次会议11月1日召开 补选常委会成员

Continue reading 


请允许我用23种编程语言,提前向各位亲们祝福国庆快乐……

󰃭 2016-09-17

C:printf(“月饼刚吃完,提前祝大家国庆快乐!!!”); C++ : cout«“月饼刚吃完,提前祝大家国庆快乐!!!”; QBasic : Print “月饼刚吃完,提前祝大家国庆快乐!!!” Asp : Response.Write “月饼刚吃完,提前祝大家国庆快乐!!!” PHP : echo “月饼刚吃完,提前祝大家国庆快乐!!!”; JScript: alert(“月饼刚吃完,提前祝大家国庆快乐!!!”) VBScript:MsgBox “月饼刚吃完,提前祝大家国庆快乐!!!” Jscript:document.write(“月饼刚吃完,提前祝大家国庆快乐!!!”) Delphi: ShowMessage(‘月饼刚吃完,提前祝大家国庆快乐!!!!’); VB: Print “月饼刚吃完,提前祝大家国庆快乐!!!!” VC: MessageBox(“月饼刚吃完,提前祝大家国庆快乐!!!!”); shell: echo 月饼刚吃完,提前祝大家国庆快乐!!! perl: print ‘月饼刚吃完,提前祝大家国庆快乐!!!’ java: System.out.println(“月饼刚吃完,提前祝大家国庆快乐!!!”); powerBuilder:messagebox(“月饼刚吃完,提前祝大家国庆快乐!!!”) C#:System.Console.WriteLine(“月饼刚吃完,提前祝大家国庆快乐!!!!”) COBOL:DISPLAY ‘月饼刚吃完,提前祝大家国庆快乐!!!! Python:print(“月饼刚吃完,提前祝大家国庆快乐!!!!”) AS:Alert.show(“月饼刚吃完,提前祝大家国庆快乐!!!!”); Foxpro: ? [月饼刚吃完,提前祝大家国庆快乐!!!!] DOS 批处理: echo 月饼刚吃完,提前祝大家国庆快乐!!! 星语言:调试输出(“月饼刚吃完,提前祝大家国庆快乐!!!!!!” 二次元语言:屌爆了,~( ̄▽ ̄~)“月饼刚吃完,提前祝大家国庆快乐!!!!!!”(~ ̄▽ ̄)~什么鬼

Continue reading 


男星乔任梁到底怎么了??

󰃭 2016-09-16

简介 乔任梁,1987年10月15日出生于上海,中国歌手,演员。大学毕业于上海电机学院。曾是全国跳高冠军,国家二级运动员。 2005年,参加湖南卫视的金鹰之星“自由我心声”比赛,获全国冠军。 2007年7月,签约橙天娱乐集团。2007年10月,首本写真集《Klash-IMI》上海签售会,连续签售5小时,销量破5000。 2009年2月14日,单曲《可爱的你》发行,在音乐电台Music Radio蝉联冠军。 2012年参演电视剧《新神探联盟》。2012年12月10日,个人专辑《Pin.K/拼》正式发行。 2013年主演年代剧《锦绣缘之华丽冒险》。 2014年,主演电影《死亡邮件》。 据凤凰娱乐及网易娱乐消息,9月16日晚,乔任梁在上海的家中因抑郁症自杀身亡。 乔任梁上海住宅内意外死亡 塑料袋套头身上有伤 转自网络

Continue reading 


发布才一天,已经有14.53%的用户升级了iOS 10

󰃭 2016-09-16

简介 苹果往往每周发布一次iOS市场接受率相关的数据。目前,业界只能依赖第三方评估iOS 10的具体市场渗透率。Mixpanel认为,iOS用户今年升级系统的速度要大大快于去年。数据显示,iOS 9系统于2015年推出,该系统在推出之后的24小时内,当时的用户接受率只有12.42%,即12.42%的iOS系统老用户更新到iOS 9系统。 从目前的情况追踪数据来看,iOS 10系统在推出之后24小时内的市场接受率最高。 一般而言,新推出的iOS系统往往在推出后的头几天率会被用户更加快速地接受,因为用户希望获得旧版系统所不具备的功能,与此同时,开发者也更想利用最新的API,打造受用户欢迎的新应用。随着新开发应用的增多,反过来这又会激励更多的用户向新系统升级,因为用户们也在寻求更多的新应用和新功能。 发布才一天,已经有14.53%的用户升级了iOS 10 Mixpanel预测称,iOS 10在推出后的不足11天内,市场接受率将达到50%。相比较而言,iOS 9在推出之后花费了12天时间,才让市场接受率达到50%;而iOS 8达到这一水平的时间更长,花费了31天;不过,iOS 7只花了5天时间就实现了用户接受率达到50%的水平。 当然,这些数据并不是苹果官方公布的数据。当年,在iOS 9系统的市场接受率突破50%这一水平时,苹果官方宣布,称iOS 9“是史上市场接受速度最快的iOS系统”。如果猜测不错的,苹果可能还会对iOS 10说同样的话。 iOS 10最初由苹果在今年6月的WWDC 2016大会上宣布,该系统包括诸如应用内的Siri、改进后的键盘、更加深度的3D触摸整合等功能。 新版iOS系统还具有内置应用改进功能等,例如改进后的Photos和苹果地图(Apple Maps)等,此外还包括重新设计后的苹果音乐(Apple Music)和苹果消息(Apple News)等功能,同时还包括一个全新的Home应用。不过,FaceTime等服务仍进行了端对端加密,苹果没有透露未对此功能进行升级的原因。 iOS 10问题不断,部分用户升级后无法联网 转自网络

Continue reading 


三星电子终究抛售了所持日本夏普公司的全部股份

󰃭 2016-09-16

消息人士今天表示,抛售行为于本月初发生,并且这次抛售让三星电子公司产生了小部分的亏损。2013年,三星电子公司曾投入103亿日元(约合1.01亿美元)购买了夏普约3%的股份。至于谁接盘购走了其抛售的所持夏普的股份,三星电子公司拒绝置评。不过该公司在一份声明中表示,“我们计划继续保持同夏普的合作。” 消息人士称,这次抛售夏普股份源于三星电子公司最近作出的将其打印机部门出售给美国惠普公司的决定。当初投资夏普之目的是为了获得夏普在复印和打印机方面的专业技术,特别是该方面的专利,以扩展自己的相应业务。 如此知识产权对于生存于这个行业的公司来说十分重要,该行业的市场领导者相互进行专利授权以保持竞争地位。现在决定将打印机部门对外出售,因此也就没有必要继续持有夏普的股份了。 消息人士还透露,三星电子公司希望获得夏普复印打印机技术的努力,受到行业其它主要竞争对手的阻碍,这些竞争对手试图阻止这家韩国公司进军该市场。 上个月台湾富士康科技公司完成了对夏普的收购,这一定程度上推动了三星电子公司抛售夏普股份的决定。夏普和富士康两家公司董事会今年3月份批准了一项计划,即后者以3890亿日元(约合35亿美元)收购前者。 夏普是苹果智能手机显示屏供应商,收购夏普是富士康的一个胜利,通过收购夏普使得富士康得以向下一代显示屏市场扩展。 富士康是三星电子公司竞争对手苹果公司的iPhone产品的主要代工厂商。富士康也是三星电子公司和其它一些公司的消费类电子产品的代工厂商。 夏普提供一系列消费类电子产品,包括台式计算设备、平板电视和冰箱等。在其103年的历史中,夏普发明创造了许多世界水平的科技新产品,但是由于对显示屏和太阳能面板进行了巨额投资,该公司在2012年陷入深度财政危机。 夏普当时表示,由于其在中国市场智能手机显示屏销售疲软以及在公司重组方面的巨大开支,预计截至今年3月份财年该公司营收将为2.45万亿日元,而运营亏损将达到1700亿日元。 对以上消息,夏普发言人今天表示没有任何评论。 转自网络

Continue reading 


Git 简明教程 [转]

󰃭 2016-09-12

Git 简明教程 origin address 创建新仓库 创建新文件夹,打开,然后执行 git init 以创建新的 git 仓库。 检出仓库 执行如下命令以创建一个本地仓库的克隆版本: git clone /path/to/repository 如果是远端服务器上的仓库,你的命令会是这个样子: git clone username@host:/path/to/repository 工作流 你的本地仓库由 git 维护的三棵“树”组成。第一个是你的工作目录,它持有实际文件;第二个是暂存区(Index),它像个缓存区域,临时保存你的改动;最后是HEAD,它指向你最后一次提交的结果。 添加和提交 你可以提出更改(把它们添加到暂存区),使用如下命令: git add <filename> git add * 这是 git 基本工作流程的第一步;使用如下命令以实际提交改动: git commit -m "代码提交信息" 现在,你的改动已经提交到了HEAD,但是还没到你的远端仓库。 推送改动 你的改动现在已经在本地仓库的HEAD 中了。执行如下命令以将这些改动提交到远端仓库: git push origin master 可以把 master 换成你想要推送的任何分支。 如果你还没有克隆现有仓库,并欲将你的仓库连接到某个远程服务器,你可以使用如下命令添加: git remote add origin <server> 如此你就能够将你的改动推送到所添加的服务器上去了。 分支 分支是用来将特性开发绝缘开来的。在你创建仓库的时候,master是“默认的”分支。在其他分支上进行开发,完成后再将它们合并到主分支上。 创建一个叫做 feature_x 的分支,并切换过去: git checkout -b feature_x 切换回主分支: git checkout master 再把新建的分支删掉:

Continue reading 


让机器像人类一样说话

󰃭 2016-09-11

TechWeb报道 9月12日消息,谷歌旗下人工智能公司DeepMind近来憋了个大招,继AlphaGo赢了人类棋手后,他们又研制出了能够生成模仿人类语音的系统。 据外媒介绍,该系统让机器说话与人类说话之间的差距缩小了50%。DeepMind将这个系统命名为Wavenet。 让人能与机器对话一直是人类希望在人工智能领域里实现的目标。但是,目前用计算机生成语音仍然大量地依赖于TTS(文本到语音)拼接技术。 在这个过程中,机器首先要记录一个说话人的声音片段,并基于此构建超大型的数据库,随后,经过再次结合过程,形成完整的表达。 WaveNet改变了这种旧范式,它直接对原始声音信号的声浪建模,每次对一个样本进行建模。和生成更加自然的语音一样,使用原始的声波意味着WaveNet能对任何音频建模,其中包括音乐。 研究人员称WaveNet能知道自己说的是什么。首先,研究人员通过把文本转化成一个语言与声学特征序列(这个序列包含了当下的声音、字母、词汇等),然后把这一序列喂到WaveNet中,从而能让模型了解到自己要说什么。 DeepMind是一家专注于人工智能的公司,于2010年成立于伦敦,并在2014年被谷歌以4亿英镑(约合5.32亿美元)收购。随后,DeepMind就获得了使用谷歌数据的权利,这对于他们训练自己的系统意义重大。这次训练WaveNet的数据用的就是谷歌TTS数据库。 训练结束后,研究人员可以把网络数据作为样本,产生合成的表达,进行取样,然后用到下一个步骤的预测中。 据外媒报道,目前谷歌还没有推出关于WaveNets的任何商业应用,因为它需要巨大的计算能力。 语音正在成为人类和机器互动中越来越重要的手段,目前亚马逊、苹果、微软和谷歌都在投资能让用户通过语音进行交互的个人数字助理。DeepMind的这项技术也受到了来自各方面的关注。 转自网络

Continue reading 


Laravel Pipeline 组件的实现

󰃭 2016-09-08

原文: https://www.insp.top/article/realization-of-pipeline-component-for-laravel 开始 本文当然不是讨论中间件如何使用,而是其实现的基础。Laravel 框架中有一个组件叫做 Illuminate\Pipeline,意味 “管道”,我们看看下面这个代码示例: <?php use Illuminate\Pipeline\Pipeline; $pipe1 = function ($poster, Closure $next) { $poster += 1; echo "pipe1: $poster\n"; return $next($poster); }; $pipe2 = function ($poster, Closure $next) { if ($poster > 7) { return $poster; } $poster += 3; echo "pipe2: $poster\n"; return $next($poster); }; $pipe3 = function ($poster, Closure $next) { $result = $next($poster); echo "pipe3: $result\n"; return $result * 2; }; $pipe4 = function ($poster, Closure $next) { $poster += 2; echo "pipe4 : $poster\n"; return $next($poster); }; $pipes = [$pipe1, $pipe2, $pipe3, $pipe4]; function dispatcher($poster, $pipes) { echo "result: " .

Continue reading 


PHP static 静态变量的作用域

󰃭 2016-09-04

static 在PHP中,static 表示静态, 包括了静态属性,静态变量和静态方法(函数), 又或者可用来表示类的延迟加载 不过今天不说这个, 而是尝试去说明static的静态变量作用域 理解 static 变量的作用域常规的理解是全局有效的。 那么怎么去理解这个全局的概念,我的理解如下 不管类被实例化还是直接静态调用, 对静态变量的定义和修改都是对同一个变量的修改 不论是父类还是子类,甚至是抽象类,只要能访问到静态变量,访问的都是同一个变量 实践 针对以上两点,做以下说明 针对第一点 不管类被实例化还是直接静态调用, 对静态变量的定义和修改都是对同一个变量的修改 这个比较直接,一般都不会混淆 abstract class A { protected static $names=[]; //静态新增 abstract public static function add_name($name); //常规新增 abstract public function dadd_name($name); public function get_names() { return static::$names; } public static function pop_name() { array_pop(static::$names); } } class CA extends A { // 抽象实现 public static function add_name($name) { static::$names[] = $name; } // 抽象实现 public function dadd_name($name) { static::$name[] = $name; } } 以上三个类,都能访问静态变量$names

Continue reading 


Composer 安装教程

󰃭 2016-09-03

什么是Composer 其官网给出的一个很直白的解释 Dependency Manager for PHP 即 PHP的依赖包的管理工具,它允许用户声明项目依赖的包/类库, 并安装和升级这些包/类库 安装 因为我用的是Ubuntu, 所以一下安装都是基于Ubuntu的, 基本上Linux的系统都可以参考 环境要求 PHP PHP > 5.3.2 可能还有些PHP的设置要注意一下, 不过一般来说如果这些这只有问题, 安装的时候会给出Warning,可以针对这些warning再做设置 安装过程 1.首先先下载一个installer文件并运行 wget https://getcomposer.org/installer 这是一个PHP文件 2.运行 php installer 之后就会下载一个 composer.phar 可执行文件, 这个就是composer的管理工具了 3.全局设置 不过这个文件暂时还只能在当前目录使用, 不能全局有效, 我们可以把他复制到系统的PATH里, 然后就能直接用了 cp composer.phar /usr/bin/composer 或者在第二步的时候下载就指定这些参数 sudo php installer --install-dir=/usr/bin --filename=composer 4.验证 运行 composer 看到以下截图即表示安装成功

Continue reading 


tcp 连接建立与关闭过程

󰃭 2016-09-01

tcp 协议介绍 TCP(Transmission Control Protocol 传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议 连接建立,三次握手 客户端发送 SYN,SEQ 数据包到服务器 服务器回复 SYN,ACK,SEQ 数据包给客户端 客户端回复 ACK,SEQ 到服务器,连接建立 如下图: 连接关闭,四次挥手 主动关闭方发送 FIN,ACK,SEQ 到被动关闭方 被动关闭方发送 ACK,SEQ 到主动关闭方,此时主动关闭方的 socket 关闭,半关闭状态,被动关闭方处于 CLOSE_WAIT 状态 被动关闭方发送 FIN,ACK,SEQ 到主动关闭方 主动关闭方发送 ACK,SEQ 到被动关闭方,此时被动关闭方 socket 关闭,连接结束,主动关闭方处于 TIME_WAIT 状态

Continue reading 


Laravel 学习笔记 —— 神奇的服务容器

󰃭 2016-09-01

原文地址: http://www.insp.top/learn-laravel-container ,转载务必保留来源,谢谢了! ======================================================================================================= 容器,字面上理解就是装东西的东西。常见的变量、对象属性等都可以算是容器。一个容器能够装什么,全部取决于你对该容器的定义。当然,有这样一种容器,它存放的不是文本、数值,而是对象、对象的描述(类、接口)或者是提供对象的回调,通过这种容器,我们得以实现许多高级的功能,其中最常提到的,就是 “解耦” 、“依赖注入(DI)”。本文就从这里开始。 IoC 容器, laravel 的核心 Laravel 的核心就是一个 IoC 容器,根据文档,称其为“服务容器”,顾名思义,该容器提供了整个框架中需要的一系列服务。作为初学者,很多人会在这一个概念上犯难,因此,我打算从一些基础的内容开始讲解,通过理解面向对象开发中依赖的产生和解决方法,来逐渐揭开“依赖注入”的面纱,逐渐理解这一神奇的设计理念。 本文一大半内容都是通过举例来让读者去理解什么是 IoC(控制反转) 和 DI(依赖注入),通过理解这些概念,来更加深入。更多关于 laravel 服务容器的用法建议阅读文档即可。 IoC 容器诞生的故事 讲解 IoC 容器有很多的文章,我之前也写过。但现在我打算利用当下的灵感重新来过,那么开始吧。 超人和超能力,依赖的产生! 面向对象编程,有以下几样东西无时不刻的接触:接口、类还有对象。这其中,接口是类的原型,一个类必须要遵守其实现的接口;对象则是一个类实例化后的产物,我们称其为一个实例。当然这样说肯定不利于理解,我们就实际的写点中看不中用的代码辅助学习。 怪物横行的世界,总归需要点超级人物来摆平。 我们把一个“超人”作为一个类, class Superman {} 我们可以想象,一个超人诞生的时候肯定拥有至少一个超能力,这个超能力也可以抽象为一个对象,为这个对象定义一个描述他的类吧。一个超能力肯定有多种属性、(操作)方法,这个尽情的想象,但是目前我们先大致定义一个只有属性的“超能力”,至于能干啥,我们以后再丰富: class Power { /** * 能力值 */ protected $ability; /** * 能力范围或距离 */ protected $range; public function __construct($ability, $range) { $this->ability = $ability; $this->range = $range; } } 这时候我们回过头,修改一下之前的“超人”类,让一个“超人”创建的时候被赋予一个超能力: class Superman { protected $power; public function __construct() { $this->power = new Power(999, 100); } } 这样的话,当我们创建一个“超人”实例的时候,同时也创建了一个“超能力”的实例,但是,我们看到了一点,“超人”和“超能力”之间不可避免的产生了一个依赖。

Continue reading 


python模块动态加载

󰃭 2016-09-01

python 提供了 exec 用于在程序中执行一段 python 代码,官方说明: exec_stmt ::= "exec" or_expr ["in" expression ["," expression]] 该语句可以使用exec()函数进行替代。 先举个简单的例子 In [1]: exec "print('hello')" hello 这里就执行了print语句,打印出了hello。然而这个并没有什么实际的效果,在实际编码中,我们更希望能够把加载文件中的方法、变量等取出使用,这时候就用到了exec中的in。 in的作用是将执行代码中的变量、函数或者类放入到一个字典中。 In [11]: m = dict() In [12]: exec "a=123" in m In [14]: print m["a"] 123 In [15]: print type(m) <type 'dict'> exec "a=123" in m这句话等同于exec("a=123", m) 根据这个思路,构造自己的模块加载方法 def load_conf(module_name, path): """ 加载模块 :param module_name: 加载后的模块名 :param path: 文件路径 :return: """ try: module = types.ModuleType(module_name) exec open(path).read() in module.

Continue reading 


Twitter收盘上涨4.5%:因联合创始人称公司应考虑卖掉

󰃭 2016-09-01

北京时间9月1日早间消息,在Twitter联合创始人埃文·威廉姆斯(Evan Williams)表示该公司必须考虑正确的选择后,外界猜测Twitter将会面临收购,促使其股价大涨7%。 威廉姆斯接受彭博电视台采访时说:“我们现在的地位很有利,作为董事会成员,我们必须考虑正确的选择。” 威廉姆斯拒绝对Twitter是否会保持独立发表评论。他持有Twitter 6%的流通股。 Twitter股价盘中触及19.60美元的高点,全天报收于19.21美元,收涨4.5%。但这一股价仍然远低于31.87美元的52周最低价。 由于外界怀疑微软前CEO史蒂夫·鲍尔默(Steve Ballmer)和沙特阿拉伯王子阿勒瓦利德·本·塔拉勒·阿苏德(Alwaleed bin Talal Al Saud)将收购Twitter,使得该股在8月初大涨9%。 威廉姆斯表示,他对Twitter CEO杰克·多西(Jack Dorsey)非常信任,后者去年夏天出任CEO,希望带领该公司扭转命运,并吸引更多主流用户。 但多西的掌舵并未赢得华尔街的支持,该公司的用户和营收增长都有所放缓。威廉姆斯则表达了乐观情绪,他说,Twitter拥有“无与伦比的价值”,今后的价值可以远高于现在。 在今年7月被问及Twitter是否应当继续保持独立时,多西表示,在过去一年领导该公司发展后,他相信Twitter是一款重要的服务,也是一家重要的公司,值得维持下去。 转自网络

Continue reading 


Google发布Android 7.0,带来250多项新特性

󰃭 2016-08-31

Google已经开始使用代号为Nougat的Android 7.0升级特定的设备。通常,新版本的Android会从秋季(9月底或10月初)开始向设备推送。但今年,他们改变了节奏,3月份发布了预览版,8月份发布了正式版。 据Google介绍,Nougat带来了250多项新特性。以下是其中的部分特性。 新的Interpreter JIT AOT编译器,。总的来说,该编译器减少了应用程序安装时间和存储空间,并在手机空闲的时候编译代码的热点部分,提高性能。Daydream:一个在移动设备上创建虚拟现实体验的VR SDK。其中有一个面向Unity 3D的SDK,用于创建Android和iOS VR应用程序,还有一个SDK是专门用于Android的。Vulkan:一个跨平台的图形和计算API。 它来自Khronos Group,面向现代GPU。Vulkan不只适用于智能手机,还适用于PC、控制器,甚至是嵌入式设备。Vulkan 1.0规范是今年早些时候发布的。多窗口:在Nougat上,开发人员可以创建两个窗口,一个在上面,一个在下面,或者在分屏模式下并排显示。应用界面的大小可以改变。借助Direct Reply,开发人员可以增强通知功能,让用户可以在通知抽屉上直接操作。改进了在Android Marshmallow中引入的Doze,当屏幕关闭而设备没有接通电源时,限制应用程序使用CPU和网络。 也就是说,只允许在特定的时间窗口内同步和访问网络,以便节省电池。Svelte进一步降低了后台运行的应用程序使用的内存。 要想更全面地了解Android Nougat的新特性,我们建议您阅读Android 7.0 for Developers,其中包含有关“数据流量节省(Data Saver)”、号码拦截、呼叫显示、多区域支持、新Emojis、WebView(已回归Chrome)、虚拟文件等特性的详细信息。 多种Nexus设备、Pixel C及Android测试计划推出的设备将首先收到Android Nougat。如果说上一年首先收到Android新版本的新设备是Nexus,那么今年LG V20的用户将最先体验到Nougat。 Google指出,他们已经致力于第一次Nougat升级相关的工作,升级包将会在今年秋天的某个时候发布,带来Bug修复和小改进。 查看英文原文:Google Releases Android 7.0 with Over 250 New Features

Continue reading 


乔布斯你是否知道库克执掌苹果五年的成绩到底如何

󰃭 2016-08-30

5年前,库克从创始人乔布斯手中接过苹果首席执行官的职务时,不管情愿不情愿,人们每分钟都会拿他和一代传奇乔布斯相比——但这5年来,苹果实际上已经从“后乔布斯时代的苹果”逐渐转变为“库克统治下的苹果”。 2011年8月24日,库克从乔布斯手中接过苹果公司,当日苹果收盘价为54美元(经调整分红和股票分割后价格)。5年之后,苹果在今年8月24日的收盘价为108.03美元,同时苹果的营收也在5年内翻番。此外,在库克的带领下,苹果将中国市场变成仅次于美国的收入来源地。 库克还将在乔布斯时代处于萌芽状态的苹果服务发展壮大,这些服务包含了iTunes、Apple Music、App Store和iCloud等等。库克曾强调,到明年这时候,包括Apple Music、App Store以及iCloud在内的服务业务规模就将和一家财富100强公司相当。 的确,库克带领下的苹果创下了业绩神话,成为全球市值最大的公司。增强现实、人工智能、无人驾驶汽车等这些未经苹果方面证实,但已经成为公开秘密的苹果“新项目”,则为苹果的未来增添了更丰富的想象力。 对于股东而言,库克也显得很“友善”:乔布斯不喜欢资本回报计划,但从2012年初到现在,苹果公司已经回购了大约1270亿美元的股票,派发了448亿美元的股息。 然而,在守业扩业的同时,库克在创新方面似乎并无太多建树,唯一一款在乔布斯去世之后推出的新品iWatch也有点表现乏力:在今年二季度销量仅为160万部,比去年同期下滑55%。此外,苹果更加依赖iPhone这一单一产品的销售,从5年前占销售收入40%到如今占到销售收入的三分之二以上,过分依赖iPhone的模式弊端也在苹果的近期财报中得到明显体现:由于iPhone销量的下滑,苹果公司整体的业绩也被明显拖累。 这并不是说库克不注重创新。在库克掌舵的5年间,苹果的研发收入连年增长,2016年二季度的研发开支达到25亿美元。 此外,在硬件销售乏力的情况下,苹果在中国市场的策略不得不做出调整。此前,苹果以10亿美元投资滴滴出行,一度让外界深感意外,但几个月后,滴滴与优步中国的合并,让苹果的这笔投资无论从财务回报还是战略考量上都让外界重新认识了苹果在中国进行大规模投资活动的重要意义。 有市场人士认为,要确定库克的历史位置,不能看乔布斯离去之后发生了什么,而应该看库克在未来五年中还会做些什么。的确,库克是否能够让公司游刃有余地面对一系列挑战,才是关键。 转自网络

Continue reading 


Sharp手机回归中国市场,新Sharp:狠

󰃭 2016-08-29

简介 8月29日消息,已在台湾两月连发三款新机的夏普,最近将强势回归中国大陆。现在夏普重开了新官方微博@夏普手机,并已开始运作。夏普手机表示,8月31日晚19:30将在北京东城区77文创园开启“夏普手机奇乐夜”的活动,中国内地流行乐女子组合BEJ48和喜剧研习社将登台表演,同时夏普还将带来一款“狠Sharp”的新机。 据称,该机将采用十核处理器,内置4GB运存,并且支持双CA载波聚合。如果不出意外的是,这款新机就是上周在台湾发布的5.5英寸的Sharp Z2。夏普Z2是一款中端机,它还将后置1600万+前置800万像素摄像头,支持4G和双卡双待,配备3000mAh电池,支持指纹识别。 值得一提的是,夏普还为该机打造新玩法,通过跟京东、爱奇艺、乐视生态合作,引入海量片源,其应该是一款主打影音的手机,同时也会更接地气。 夏普在功能机时代,设计生产的日系翻盖手机一直受到不少手机用户追捧;在智能机时代,它也推出过令人惊艳的AQUOS CRYSTAL等多款新品,现在获得富士康助力的夏普手机强势回归中国大陆,你会期待么? 转自网络

Continue reading 


Python学习网站导航

󰃭 2016-08-29

PythonTab 中文网 简介 PythonTab 中文网是一个python开发者学习交流社区门户,是一个非营利性公益网站,致力于壮大python中国开发者群体,帮助python开发者解决开发中遇到的各种问题。 http://docs.pythontab.com/python/python3.4/# 2.x版本 http://docs.pythontab.com/python/python2.7/ Ppython pub 简介 Ppython pub 享受python带来的便利以及快乐。 http://www.pythondoc.com/pythontutorial3/index.html 2.x版本 http://www.pythondoc.com/pythontutorial27/index.html pythontip 简介 Python是一门简单易学且功能强大的编程语言。 此网站让python优雅的语法和动态类型,编写python犹如书写闲文,悠闲而惬意。 http://www.pythontip.com/study/books/pythontutorial3-master 慕课网 简介 Python基础分《Python入门》和《Python进阶》两门课程,本课程是Python第一门课程,是Python开发的入门课程,将介绍Python语言的特点和适用范围,Python基本的数据类型,条件判断和循环,函数,以及Python特有的切片和列表生成式。让您快速入门并编写简单的Python程序。 http://www.imooc.com/learn/177 runoob 简介 菜鸟教程提供了最全的基础编程技术教程。菜鸟教程的 Slogan 为:学的不仅是技术,更是梦想! http://www.runoob.com/python/python-tutorial.html

Continue reading 


中国知名财经网站大汇总

󰃭 2016-08-29

腾讯网财经频道 腾讯网是中国最大的中文门户网站,是腾讯公司推出的集新闻信息、互动社区、娱乐产品和基础服务为一体的大型综合门户网站。腾讯网服务于是全球华人用户,致力成为最具传播力和互动性,权威、主流、时尚的互联网媒体平台。通过强大的实时新闻和全面深入的信息资讯服务,为中国数以亿计的互联网用户提供富有创意的网上新生活。 和讯网 http://www.hexun.com 网站简介: 和讯创立于 1996年,是中国最早的专业财经网站之一,目前已经发展成为中国最大的在线及移动财经服务提供商。 除财经以外,和讯还提供独特的网络社区服务和在线理财、商务、休闲娱乐服务,以求满足中产阶层的全面消费需求。和讯拥有的众多的财经专家、数据分析系统、专业背景的采编队伍,这让和讯网的资讯不是简单的信息堆砌,而是在海量信息的基础上整理分析得出的更具价值的资讯。 和讯目前提供包括互动交流、虚拟投资体验、投资指导、理财咨询等内容的中国第一财经网络社区——“财道俱乐部”,力图将其打造成为集交流、休闲、理财、培训于一体的具有个性化、交互性、娱乐性的大型财经网络互动社区。 东方财富网 http://www.eastmoney.com 网站简介: 东方财富网始终坚持网站内容的权威性和专业性,打造中国财经航母。网站内容涉及财经、股票、基金、期货、债券、外汇、银行、保险等诸多金融资讯与财经信息,全面覆盖财经领域,每日更新上万条最新数据及资讯,为用户提供便利的查询。 华尔街见闻 http://wallstreetcn.com/ 网站简介: 华尔街见闻是中国领先的互联网金融服务提供商,为用户提供金融资讯、数据、策略、和交易服务,旨在帮助中国投资者理解世界,更好地做好投资决策。 新浪财经 http://finance.sina.com.cn 网站简介: 新浪财经创建于1999年8月,经过近10年的发展壮大,已经成为全球华人的最知名的财经门户网站。 作为国内大型财经网络媒体,新浪财经打造高端新闻资讯,深度挖掘业内信息,全程报道80%以上的业界重要会议及事件,是最具影响力的主流媒体平台。 同时,新浪财经也开发出如金融超市、股市行情、基金筛选器、呼叫中心,金融产品在线查询等一系列实用产品,帮助网民理财,是最为贴心实用的服务平台。除此之外,新浪财经为网友搭建互动、交流、学习的财经大平台。财经博客、财经吧、模拟股市、模拟汇市等均成为业界最早、人气最旺、最知名的财经互动社区。 中国经济网 http://www.ce.cn 网站简介: 中国经济网是国家重点新闻网站之一,由经济日报社主办,以经济报道和经济信息传播为主,致力于成为中国规模最大、功能最齐全的经济类综合门户网站和中国最权威的经济数据中心。中国经济网最令人称道的是它的特色栏目。 CE指数:协同权威调查机构全面统计国内100多家平面媒体和40 家电视台数据信息,推出汽车、电脑、手机、饮料、化妆品、影音设备六大热点消费品市场活跃度指数。 CE图表:从宏观经济、财经证券、产业市场到新闻图表,用最为直观的方式向您传达、帮您解读统计数据,权威披露各项经济数据。中国经济网的产业市场栏目涵盖医药、房产、汽车、家电、服装、旅游、通讯、IT八大行业,并拥有权威行业数据库。

Continue reading 