女黑客林怡

访客4年前黑客文章898

  1.阿黛安娜库克AdeannaCooke(美国)

  她曾是美国《 *** 》最有名的女模特,后因一位朋友在互联网上使用她的图片赚钱并向她展示她时,她决定发奋图强学习黑客技术。

  

  那么为什么她能在短时间内有着美国女黑客之称?原来背景如此吓人,她幕后竟有美国AntiSec黑客组织的支持,学到技能后,她侵入了网站以保护她的尊严,她不仅删除了她的所有照片,还帮助许多其他女孩摆脱了类似的情况。她被媒体称为”美国黑客仙女“,她入侵攻击过全球无数个重要网站服务器,其中包括日本知名索尼、日本货币交易所等等,但就是不敢动中国和俄罗斯的。

  2.林怡HackAbby(中国)

  她是中国目前最牛的女黑客,背景实在让人惊呆了,原来她就是中国知名黑客教父郭盛华的得意弟子,幕后还有世界头号黑客组织东方联盟的支持。

  

  她入行时间短,从小白到高手,她是出了名的强女人,她长相霸气,酷似花木兰;HackAbby曾多次成功渗透美国著名通信 *** 系统、CIA、以及英国多家联交所重要系统。HackAbby也是一个非常爱国的女黑客,她黑掉美国无数对华负面信息的网站,同时也是全球之一个敢和俄罗斯黑客叫嚣的女人。因此,她的战绩再加上她师傅的光芒,所以她受到了全世界 *** 安全人员的关注。

  3.安娜查普曼AnnaVasilyevnaChapman(俄罗斯)

  她是俄罗斯最厉害的女黑客,背景非常吓人,她的父亲是前苏联国家安全委员会的一名高官。安娜查普在被FBI逮捕后立即获得了名人地位,她的照片和视频在 *** 上开始传播开来。

  

  查普曼在2013年再次赢得了媒体的关注,安娜查普曼曾表示想嫁给美国知名黑客巨头斯诺登。安娜查普她也入侵过不少美国大型网站,美国五角大楼,美国联邦调查局也被她玩弄在手掌心中,因此,她曾被美国禁止入境3年。

  4.克里斯蒂娜Svechinskaya(俄罗斯)

  她是俄罗斯最美、最性感的女黑客,除了是俄国某计算机集团的一分子,她背后还有东欧黑手党的支持。这位当时年仅21岁就被全世界媒体封为“世界最性感女黑客”,她还被指控欺诈了多家英国和美国银行的大笔款项和使用假护照。

  

  据纽约IT时报,Svechinskaya袭击了美国数千个银行账户,攻击了多个重要的网上金融交易系统等等。这些事件足以让她成为俄国引人注目的女黑客人物。

  5.安娜Amazing(俄罗斯)

  她现在是俄罗斯更大的黑客组织首领,她背景也不简单,她高超的技术得到了俄的重视,所以她在 *** 界的影响力也是俄罗斯黑客中最猛的。她曾经入侵多个国家主要 *** 干线,多次被指干涉美国以及以色列大选”,她几乎已经成为专业人士的共识。

  

  最后总结一下,俄罗斯为什么这么多女黑客?是因为俄罗斯缺乏像美国硅谷那样的高科技城市,俄罗斯无法将一些 *** 安全专家的技能转化为高薪工作,这也逐渐带动了俄罗斯黑客文化的发展。俄罗斯是一个女人最多的国家,相比其它国家,俄罗斯有不少女人去选择学习 *** 安全技术。而俄罗斯女黑客在国际上是拥有非常高的地位,她们性格通常是话少人狠,她们口碑好、技术高,被全球 *** 安全专家称为是世界上之一个拥有黑客文化的国家,但中国的也不简单,这些女黑客背景真的让人深不可测。

  

  黑客通常是指运用高超的技术入侵别人电脑的人,这样的人平常人是见不到的,只能在影视作品中一睹真容,比如在去年热映影电影《唐人街探案2》中,就有一位扎着蓝绿色双马尾的二次元美少女黑客。

  不仅颜值和身材爆表,而且其高端的电脑技术也令人刮目相看,或许有小伙伴们会觉得,难道像这种高颜值的女黑客只能出现在电影中吗?其实在咱们的现实生活中也有女黑客,只是我们难以察觉而已,那么今天就为大家介绍一位中国之一美女黑客!

  他叫临林怡,英文名HackAbby,目前担任中国多家知名上市公司 *** 安全高级顾问,曾经还有一段传奇般的旅程,多次入侵了美国著名通信 *** 系统,美国CIA中央情报局以及英国多家联交所数据库。黑掉美国无数对华负面信息的网站,对此也令美国引起了高度重视。

  毕竟他的师父就是中国之一黑客郭盛华,而在东方联盟创始人郭盛华的带领下,如今林怡有着过亿的资产,可惜却至今单身。对此,小伙伴们心中是不是有些想法了?欢迎评论区留言,我们下篇再见!

  微信作为当下最为广泛使用的社交软件之一,证明了它的实用以及好用。然而,不可避免的是用户通常也会遇到各种各种的小问题、 *** 烦。有的是软件的bug,有的则是用户未对微信进行全面的了解与使用。另外,大部分用户都有一个共同点:不习惯去保存微信的聊天图片、文件。过段时间之后,会发现就算微信的聊天记录还在,但又显示"文件已过期或已被清理"、"图片已过期或已被清理"等情况,那应该怎么解决呢?

  首先,导致出现这种情况的原因,通常来说就以下几个:

  1、由于在清理手机的微信内存时,把图片/文件也进行了同步的清理;

  2、由于长时间没有点开查看图片/文件,因此系统自动将其列为过期图片/文件;

  3、由于手机自身的内存空间不足,导致手机出现卡顿或者是崩溃的情况,对手机的数据造成了相当程度上的影响,因此系统自动将图片/文件进行了清理。

  常规来谈,是问题就可以被解决。既然知道了问题所在了,那如何解决呢?不妨试试下面这些 *** :

  1、重新登录

  首先把微信退出登录,之后选择重新登录微信,那么原本微信上的聊天记录还是会被保存在手机里。

  2、迁移聊天记录

  在微信的系统中,有一个"迁移聊天记录"的功能,但也有不少人并不清楚了解这一操作。其实相当简单,首先在使用期间一定要保持 *** 通畅。然后打开"微信",之后的过程就是分别点击选择"我""设置""通用""聊天记录备份与迁移"。

  聊天记录备份与迁移提供两种方式,分别是"迁移聊天记录到另一台设备"与"备份聊天记录到电脑",最后要根据自身方便进行选择。选择完毕之后,系统会提示、协助用户进行如何操作,直至完成。

  3、借用数据恢复软件

  倘若以上两个 *** 都没有成功找回需要的图片/文件,那么还有一个 *** ,那就是可以借用第三方专业的关于数据恢复的软件进行恢复。可以通过设备扫描来进行数据恢复,也可以通过手机备份来找回已经丢失的微信图片/文件。

  另外安卓的数据恢复软件,就相关网友分享,可以在网上搜索得到相关靠谱的软件。可以去看看然后安装软件进行数据恢复,具体得看实际情况自身的选择。

  以上就是关于微信图片/文件的恢复如何处理的相关内容,希望可以帮助到大家。

  我们已经发出了李连江教授的《戏说统计》课程中的八篇学习笔记:相关分析、显著性检验、回归分析、多元回归分析、因子分析与量表构造、卡方检验、对数回归、更大似然估计。今天,我们将发出第九篇学习笔记:结构方程模型。希望我们的整理可以继续供大家讨论学习。

  结构方程模型

  提纲

  一、什么是结构方程模型

  二、结构方程模型的三个优点:

  (一)证实性因子分析

  (二)路径分析可以包括中介变量

  (三)提高拟合程度

  三、举例

  一、什么是结构方程模型

  结构方程模型最早应用于心理学领域,因为在心理学领域中的因变量和自变量都是由多个指标来测量的。如果要将这几个指标合并在一起,就需要建立一个量表。建立量表的方式有很多,但是都会遇到一个问题:如果先把几个指标变成一个量表,那么在这个过程中会有信息损失,有些在原生的状态下测得的东西变成量表之后会成为粗略的东西。在这个过程中会造成信息损失。因此发展出了结构方程模型。如果用某几个指标形成量表,再用量表去做回归分析是可以的,但是会损失很多信息。

  还有一个问题是做普通的回归分析的时候,回归模块有一个假定:几个自变量之间一定是彼此相关的。理论上来讲,如果就假定这两个变量不相关,是不被回归的模块所允许的。而我们在做因果分析的时候,往往会面临这样的情况:我们有充分的理由或充分的理论依据认为这两个自变量之间不相关。那么这个时候我们就可以规定这两个变量是不相关的,但是在正常做回归分析的时候,是不能够这样做的。另外一个情况是,有一些因果链条,A的变化会影响C,但是A的变化不是直接影响C的,而是通过影响B来影响C。举个简单的例子,祖父对于孙子是有影响的,但是祖父对于孙子的影响不是直接的影响,而是通过影响孙子的父母一方。如果我们想分析祖父影响孙子,就要看一看祖父是怎样影响孙子的父辈,再来看怎么样影响到孙子。在这里有一个中介变量B。这用普通的回归分析是不能够得出结果的,而是需要做一个路径分析。我们需要画一个很精确的路径,从A到B,从B到C,这个也是结构方程模型可以解决的问题。

  二、结构方程模型的优势

  (一) 结构方程模型简单来说就是两个分析工具的结合。我们前面讲到的最主要的分析工具一是回归分析,可以帮助我们确定有没有独一无二的一一对应的相关关系;二是因子分析,可以允许我们用多个指标去测量一个潜伏的、看不见的变量(比如说一个人对于政治局势的态度,我们是通过看他怎么样看中国民主问题、国防问题等来看他内心深处对于政治的关心)。结构方程模型就是将回归分析和因子分析结合起来。证实性因子分析是我们先假定有一个因子,然后看从这个因子应该会影响到几个指标的情况。我们先将结构画出来,然后看数据里面是不是这样的情况,如果不是的话,就可以采取修正模型。证实性因子分析是一个学科到达相对成熟的状态时所做的研究,我们根据现在的研究和理论推断发现一个人有这样一种态度,这种态度会折射成几个方面的指标。比如说我们要想检测一个人对待同性恋的开放度,我们会设计一系列的指标,这些指标都是根据理论推断出来的,那么这些指标是否都是真正反映人内心的宽容度,我们可以通过看数据来判断是否符合。从先有理论,再看数据,这是一个证实性的过程。

  (二) 另外一个优势是可以包括中介变量,通过观察A影响B,B影响C。(在之一部分什么是结构方程模型里有举例)

  (三) 第三个优势是提高拟合优度,结构方程模型有一个特点是在做完模型之后,可以看出我们这个模型和数据是不是合身的。而我们做线性回归的时候,这一点是看不出来的。有人说我们是不是可以用判定系数来判断模型是不是合身,是判断不出来的,因为判定系数只能够告诉你这个衣服有没有遮蔽身体,遮蔽了多少的身体。可是这个遮蔽身体并不意味着衣服合身。比如穿衣服最重要的功能是蔽体,另外一种功能是保暖,如果我们关心的是保暖,判定系数只能告诉你这个模型所包含的几个变量可以告诉你保住一部分身体的温度,可是这个部分的身体到底是哪个部分,我们是不清楚的,如果我们想要保住的是胸部的温度,但是实际上保住的是70%腿部的温度,那么这个衣服就是不合身的。对于衣服是否合身,结构方程模型是有一个非常清晰的检验指标。

  三、举例

  在数据中看到的指标都是用方框来表示的,这些指标背后看不见的因子是用椭圆形来表示的,每一个箭头指的都是一个因果关系。例如,想要了解某人对于选举的爱好程度,当有了一个态度之后就会直接影响到某人怎么回答方框中的问题。所以椭圆形是一个自变量,方框是一个因变量,圆形是一个误差量。每一条线所表示的都是一个方程式,每一个方程式都是一个等式,每一个等式都是一个回归模型。为什么叫做结构方程,一个方程就是一个公式Y=A+BX+E。图中有5个回归公式,而这些公式是有结构的,是由同一个自变量影响到5个因变量,而在这5个因变量里面可以认为左边两个和右边两个是分别相关的,这些都是结构。所谓结构方程就是有结构的一系列方程。图中就是一个测量模型。在做常规模型的时候会将这几个指标汇合起来,变成一个量表。但是如果这样做就会损失掉一些信息。图中的测量模型就保全了可能会损失掉的信息。

  图中的5个箭头中,会发现箭头旁有1,这个1是干什么的呢?这个1就是限定自变量与该箭头所指向的因变量之间的回归系数为1。我们通过学习知道,如果回归系数是1的话,意味着自变量变化一个单位,因变量就变化一个单位。我们假定对于选举的偏好是一个量,但是这个量的单位是不清楚的,它是一个隐含的东西。而因变量是有一个很明确的测量单位的。在此划定1,是相当于从因变量这里借了一把尺子,然后自变量就有了测量单位了。

  测量模型是测量对于选举的爱好程度,那么什么因素会影响到对于选举的爱好程度呢?我们根据政治学的常识可以判断出,如果我们现在的群众很信任 *** 领导人,那么群众对选举是没有兴趣的,如果不信任的话,那么群众有可能会要求选举。所以信任会影响到对于选举的爱好。另外,如果一个人不一定相信领导人,但是同时如果群众对自己的政治能力信任度比较低,也会影响对选举的兴趣。所以政治效能感也会影响到对于选举的偏好。但是信任和效能感这两个因素也有可能是相关的,因此用双向箭头表示,就这样形成了结构模型。

  什么是优越性?就是做完方程模型之后,就是要看这件衣服与这个人是否合身,如果合身的话我们可以根据这件衣服来猜这个人的胳膊有多长,腰有多粗。如果这个衣服不合身,那就没法猜准。图中所示,最小卡方值除以自由度等于18.55,这个时候我们要来看一下这是不是我们希望看到的。前面讲到卡方值的时候,自由度为1时,如果卡方值为4,那么相对应的是5%的概率,所以卡方值除以自由度如果是等于4,那就相当于说是一个自由度对4个卡方值是5%的概率。在图中的例子里,我们所希望看到的结果是sig大于0.05。这个地方的零假设是认为这个模型与这个数据是天衣无缝的,所以这个时候希望是接纳零假设。我们在分析模型的拟合程度的时候,仍然是用卡方检验,但是这个时候我们所希望看到的卡方值越小越好,显著度越大越好。如果做不到这些,会选择一些替代的 *** 看这个模型是否合适。这个时候就会有一些替代指标,比如比较拟合系数,正态化的拟合系数等。

  下一期,为您奉献戏说统计学习笔记——

  双层回归分析

  期待您的支持,扫码即可打赏

  先给出游戏引擎的定义把:

  游戏引擎是指一些已编写好的可编辑电脑游戏系统或者一些互交式实时图像应用程序的核心组件。这些系统为游戏设计者提供各种编写游戏所需的各种工具,其目的在于让游戏设计者能容易和快速地做出游戏程序而不用由零开始。

  其实不需要游戏引擎也能 *** 游戏,比如C#,VB这些的都能用来 *** 游戏,不过过程极为复杂,甚至 *** 一款连连看这类的小游戏都得花费大量的时间和精力。后来为了减少游戏工作者的工作量,那些游戏 *** 的前辈们就将他们先前设计过的程序做成一个又一个的程序包整合起来成为了一种随时方便后续游戏工作者调去的工具,这就是游戏引擎。

  目前市面上在流通的比较出名的游戏引擎有unity3D,虚幻4,havok等等;还有一些很出名但是只是个别公司御用的引擎比如动视暴雪的IW,EA的寒霜。

  其实这些公司的御用游戏引擎的诞生就是因为大公司有钱,完全可以不依赖现成的游戏引擎而让自己从头开始编写游戏。基于OpenGL或者Direct3D,自己写场景的解析器,自己写渲染器。为了跟美术和策划合作,至少还得写一个场景编辑器,后来发现老是手工改材质配置非常繁琐或者是容易出错,就需要再写个材质编辑器。后来又发现缺个啥,再写个什么。如果完完整整都写下来,那么写出来的这些个工具,就成了一套完整的3d引擎了。

  那我们来理一下游戏引擎,游戏和编程语言之间的关系吧

  游戏引擎+编程语言游戏

  编程语言游戏

  上面这两条基本就是这三者之间的关系咯~

  那么做游戏的话仅仅学会使用游戏引擎就足够了么?

  如果你只是目标做一款类似于连连看这种的小游戏话,unity绝对是首选,随便拖两下基本就能动了。但稍微规模开始大的话就得了解C/C++,OpenGL/DX,图形学,线性代数(图形学的基础)。看到了吧,大学时候你们说学线性代数没用,其实在程序设计的时候线性代数是非常关键的知识!

  好了,其实今天说的算是比较简单的,因为涉及到游戏引擎的话还有非常多的东西,因为不同的引擎支持的编程方式也有点不太一样,不过C和C++就像屠龙宝刀基本都能通杀哈哈,因此大学计算机专业到现在C语言也依旧是必修课程,甚至只要是一些和程序设计有点相关的专业也都要学C语言。

  适配器可以理解为万能接口,各种类可以通过这个接口然后被调用,达到万能转换的效果。

  他的实现是以我们定义的适配器函数来分类,将各种类的不同 *** 注册到对应的分类函数中,调用的时候只需要使用分类名,这样就达到了适配所有类不同 *** 的效果.

  示例code

  核心思想是创建一个适配器类,通过__dict__将需要转化的类的 *** 注册到适配器,复写__getattr__使其在适配器函数查无 *** 的时候,执行getattr魔法 *** 。

  适配器模式包含一下三个角色:

  目标抽象类:目标抽象类定义客户所需的接口,可以是一个抽象类或接口,也可以是具体类。在类适配器中,由于C#语言不支持多重继承,所以它只能是接口。

  适配器类:它可以调用另一个接口,作为一个转换器,对Adaptee和Target进行适配。它是适配器模式的核心。

  适配者类:适配者即被适配的角色,它定义了一个已经存在的接口,这个接口需要适配,适配者类包好了客户希望的业务 *** 。

  国外机构对AI人工智能在移动端应用用户需求的网上问卷调查结果如下:

  人们移动端也就是手机app中对人工智能应用的需求主要还是集中在人与人之间的交流:其中差不多一半44%表示需要人与人的智能交流,城市生活:三分之一左右表示希望手机可能帮助智能生活,与其他大头的智能消费,智能医疗健康,智能照相,图片视频只能识别等,从产品的角度看,需求没有脱离帮助人们吃穿住行的生活,交流,娱乐与健康这4大块。

  2019年春晚是激动人心的春晚,因为这次春晚再次展现了科技春晚的风采,又是一次科技升级的春晚。因为展现的科技5G水平世界前列,因为AI人工智能世界前列,这是中国改革开放四十年辛劳的成就。

  同时在2019年这次春晚,也看到了我国未来发展方向,未来机遇与趋势将走向哪里。5G就是未来的助力产品,有了5G的推动助力,让各行各业都会提升速度与效率,同时也包含了商业机遇在5G产品风口里。互联网时代的到来,成就了一大批有梦想有野心渴望创业得人,如果你也想创业,但一直没有方向,找不到一个长久稳定的平台,不知如何开始,请在之一时间加280953546了解并不损失什么,拒绝了解将可能错失良机!

  AI人工智能和5G都是世界上所关注与研究的方向,所以也代表了未来机遇在哪里?未来发展风口在哪里?现在可以明确的说未来机遇,与发展风口都在中国这里,因为我国拥有着核心技术与平台。

  那么未来发展机遇与风口都是什么呢?未来发展机遇一定在人工智能,未来风口一定在5G,因为互联网需要5G产品提速,因为我国商业与物联网需要5G,互联网与物联网又是发展风口,所以连锁反应,5G一定成为未来更大机遇与风口。

  同时5G会改变和应用到方方面面的场景里,AI人工智能也是如此威力,商业应用、城市规划、农业发展、农村规划,这四个大方面都会应用到5G与人工智能,未来机遇和风口就会从这里出现了。

  科技改变世界、科技改变商业、科技改变城市、科技改变农村,未来逐渐都被科技所改变,包括你的人生。

  手机抢红包是除夕夜一场数亿人参与的群体狂欢。百度App春晚红包大数据显示,从地域来看,山东、江苏、广东是全国互动热度排名前三,成为央视春晚百度红包的主力

  01

  前言

  从今天开始我们就要学习redis的源码了,想想还有点小激动呢。

  前方高能预警,非战斗人员迅速撤离。

  但是咱怎么能怂呢,撤离啥啊,说干就干,死磕源码,这代码也是人写的,他还能整出什么幺蛾子。

  又一个但是来了,redis底层是用C语言写的,如果对C语言一窍不通,那还是算了,前方等待的是一座大山。墙裂推荐去了解一下C.emmmm,幸好我会C,哈哈哈,毕竟他是开启偶代码之路的小哥哥。

  好啦,不扯淡了,说说正经事。

  02

  介绍

  Redis没有直接使用C语言传统的字符串来表示(以空字符串结尾的字符数组),而是自己构造了一种名为简单动态字符串SDS。

  之前看的String类型的数据结构底层就是用SDS实现的。

  SDSHDR(SDS的表头结构如下):

  举个栗子:

  我们之前设置一个名为str1的字符串,值为redis,其实他在内存上的结构大致如下:

  len为5,表示这个sds长度为5个字节。

  free为2,表示这个sds还有2个字节未使用的空间。

  buf为char[]的数组,分配了(len+1+free)个字节的长度,前len个字节保存redis这5个字符串,接下来1个字节保存了'\0',剩下的free个字节未使用。

  03

  优点

  1.二进制安全。

  因为传统的C语言字符串符合ASCII编码,而他的特点是遇零则止,所以当读一个字符串的时候,只要遇到'\0',就认为到达了末尾。这个问题就来了,如果保存的是图片或视频等二进制文件,就会被强行截断,那么数据就不完整了。

  那现在不能通过遇零则止来判断是否这个字符串读完了,但是现在可以通过len与buf[]数组的长度比较,如果len+1等于buf的长度,就说明这个字符串读完了。

  2.获取字符串长度的操作,其时间复杂度为O(1)。

  原来传统的C字符串获得长度的做法是遍历字符串的长度,如果遇零就返回,其时间复杂度为O(n)。

  而SDS表头的len成员就保存了字符串的长度,其时间复杂度为O(1)。

  3.杜绝缓存区溢出。

  因为SDS表头的free成员记录着buf字符数据中未使用的数量,所以,在进行append命令的时候,先判断free是否够用,如果够用,就直接添加字符,如果不够用,就先进行内存扩展,再进行添加字符串。

  04

  内存分配原则和惰性释放

  前面说的内存会扩展,但是呢,不是随便扩展的。就像奥特曼要小怪兽,一个闪光就行,但是要是终极大boss,就要好好打了,注意策略,很有可能会场外求救呢。

  如果SDS表头len成员小于1MB(1024X1024),就分配和len长度相同的未使用空间。

  如果SDS表头len成员大于等于1MB(1024X1024),就分配1MB的未使用空间。

  空说无凭,翠花,上代码。

  这边说的是内存扩展,如果新的字符串比旧的字符串要短很多,那么他是不是要回收呢?

  先看重置代码,很明显,程序并没有回收多出来的长度,而是使用free来将这些字符串记录起来,等到将来使用。

  此上就是SDS的源码,如果要看他具体每个操作的步骤,就要看具体的文件了sds.c和sds.h。

  emmmm,偶反正是不行了。

  Bagging和Boosting都是将已有的分类或回归算法通过一定方式组合起来,形成一个性能更加强大的分类器,更准确的说这是一种分类算法的组装 *** 。即将弱分类器组装成强分类器的 *** 。

  首先介绍Bootstraping,即自助法:它是一种有放回的抽样 *** (可能抽到重复的样本)。

  1. Bagging (bootstrap aggregating)

  Bagging即套袋法,其算法过程如下:

  从原始样本集中抽取训练集。每轮从原始样本集中使用Bootstraping的 *** 抽取n个训练样本(在训练集中,有些样本可能被多次抽取到,而有些样本可能一次都没有被抽中)。共进行k轮抽取,得到k个训练集。(k个训练集之间是相互独立的)

  每次使用一个训练集得到一个模型,k个训练集共得到k个模型。(注:这里并没有具体的分类算法或回归 *** ,我们可以根据具体问题采用不同的分类或回归 *** ,如决策树、感知器等)

  对分类问题:将上步得到的k个模型采用投票的方式得到分类结果;对回归问题,计算上述模型的均值作为最后的结果。(所有模型的重要性相同)

  2. Boosting

  其主要思想是将弱分类器组装成一个强分类器。在PAC(概率近似正确)学习框架下,则一定可以将弱分类器组装成一个强分类器。

  关于Boosting的两个核心问题:

  2.1 在每一轮如何改变训练数据的权值或概率分布?

  通过提高那些在前一轮被弱分类器分错样例的权值,减小前一轮分对样例的权值,来使得分类器对误分的数据有较好的效果。

  2.2 通过什么方式来组合弱分类器?

  通过加法模型将弱分类器进行线性组合,比如AdaBoost通过加权多数表决的方式,即增大错误率小的分类器的权值,同时减小错误率较大的分类器的权值。

  而提升树通过拟合残差的方式逐步减小残差,将每一步生成的模型叠加得到最终模型。

  3. Bagging,Boosting二者之间的区别

  Bagging和Boosting的区别:

  1)样本选择上:

  Bagging:训练集是在原始集中有放回选取的,从原始集中选出的各轮训练集之间是独立的。

  Boosting:每一轮的训练集不变,只是训练集中每个样例在分类器中的权重发生变化。而权值是根据上一轮的分类结果进行调整。

  2)样例权重:

  Bagging:使用均匀取样,每个样例的权重相等

  Boosting:根据错误率不断调整样例的权值,错误率越大则权重越大。

  3)预测函数:

  Bagging:所有预测函数的权重相等。

  Boosting:每个弱分类器都有相应的权重,对于分类误差小的分类器会有更大的权重。

  4)并行计算:

  Bagging:各个预测函数可以并行生成

  Boosting:各个预测函数只能顺序生成,因为后一个模型参数需要前一轮模型的结果。

  4. 总结

  这两种 *** 都是把若干个分类器整合为一个分类器的 *** ,只是整合的方式不一样,最终得到不一样的效果,将不同的分类算法套入到此类算法框架中一定程度上会提高了原单一分类器的分类效果,但是也增大了计算量。

  下面是将决策树与这些算法框架进行结合所得到的新的算法:

  Bagging + 决策树=随机森林

  AdaBoost + 决策树=提升树

  Gradient Boosting + 决策树=GBDT

  微博网友评论:

  @ZZYYRR66:好快,很六啊

  @脑洞并不大:vs环形吧。

  @purpleflj:有时间试试

  @你好_941:Python编程好玩

  @Hello_正SB:2019过节我也来一个~~~~嘻嘻

  自从得知Python的小心思(静等梦中情人)后,整个武林顿时炸开了锅,众人纷纷议论起来,这其中,以Eclipse派系最为热闹。

  1

  一提到Eclipse,程序员再熟悉不过了,那可是山东南翔的”挖掘机”,开发界的扛把子。这种(跟Python联姻)能提高名声的机会,它们岂能错过?

  经过一番讨论,Eclipse家族最终决定,派出最新一代的年轻人。年轻人,初生牛犊不怕虎,勇于挑战,敢于打破老一代的传统思维,跟当红炸子鸡(Python),最为般配。

  当然,年轻人也有不足的地方,那就是涉世未深,经验不足,容易掉入陷阱。

  2

  为了确保万无一失,Eclipse家族请来了多年交情的JDK并广发英雄帖,拉拢最为放心的帮手。大浪淘沙沉者为金,风卷残云胜者为王,经久挑选,PyDev胜出。

  啥是佩奇-- Eclipse、JDK、PyDev全部到场(去权威安全的官网下载)。

  好将领,不打无准备之仗。出发前,得先把消息(程序员:大话派森-Python,躲到苹果家中)摸透。

  年轻就是好,腰不酸腿不痛,赶路特别快。

  3

  这不,没一会功夫,就来到了苹果系统家里。

  兵贵精不贵多,兵贵神速。不管三七二十一,JDK马上动起手来,一直【继续】干到底。

  速度快得让Eclipse直瞪眼,一收到JDK得逞的消息,它也立马行动了起来。

  4

  双击Eclipse安装包,花开两朵。一朵是Applications,一朵是Eclipse至尊。双击【Applications】打开【应用程序】目录,并把Eclipse拖过去。

  妥妥的,Eclipse得心应手,迅速来到【应用程序】大本营。

  打铁要趁热,余温还在穴。顺势,Eclipse挪好位置(右键:Eclipse图标,【显示包内容】-【Contents】-【Eclipse】),呼叫PyDev的到来。

  5

  PyDev闻声而至,赶紧解压,并把【features】、【plugins】里的内容分别复制,粘贴到Eclipse下的【features】、【plugins】里。

  6

  万事俱备只欠东风,去【启动台】打开【Eclipse】,告知【Python3】,他已到来。点击Eclipse右上角切换图标,切换为PyDev。点击Eclipse顶部菜单栏【Window】-【Show View】-【Console】显示出来。用来对口令:Hello World!

  点击顶部菜单栏【Eclipse】-【Preferences】去到呼喊的地方(pyDev-> Interpreter->Python Interpreter。)。

  7

  她(Python3)是女生,待字闺中, *** 窗边,等待男神。去吧,通过【Choose from list】大声呼喊她,这妹子藏得挺深。好在皇天不负有心人,总算找到她了。选择python3.7,按下【OK】后,她立马同意了,估计是等得着急了。

  按下【Apply and Close】,盖上红印,以表心意。

  8

  这年头,虚情假意的人太多,怎么能确定他就是她的梦中情人?--是的,对口令:Hello World! 新建工程(【File】-【New】-【Pydev Project】),输入:OurHome,点击【Finish】搭建温馨之家。

  爱她,就给她一个承诺。新建文件testimony.py (testimony的中文意思:宣言), 输入: print(‘Hello World!’)并保存。

  点击文件名或在编辑内容里右键,选择【Run As】-【Python Run】,大声跟Python说:我是爱你的。为了你,我愿意吃成大胖子,好为你挡风遮雨。

  Ladies and gentlemen,糟老头们,激动人心的一刻出现了,口令对上了,确认无误,是Hello World! 心有灵犀一点通,身无彩凤双飞翼,愿天下有情人终成眷属!

  2月6日,据路透社报道称,华为准备在波兰建立一个 *** 安全中心,提升当地客户对华为 *** 设备的信心,打消其安全担忧。

  报道中提到,华为波兰业务主管Tonny Bao在今天的一场新闻发布会上公布了上述消息,其强调称:“如果波兰当局认为这是一个值得信赖的解决方案,我们准备在波兰建立一个 *** 安全中心。”。

  华为波兰还表示,该公司一直遵守业务所在国的所有适用法律法规,合规经营,并要求所有员工遵守所在国法律法规。

  今年1月份,华为波兰代表处一名员工被波兰国家安全局以“涉嫌间谍活动”名义逮捕。随后,华为发表声明称,该员工因个人原因涉嫌违反波兰法律而被逮捕调查,该事件对华为的全球声誉造成了不良影响,华为决定终止与该员工的雇佣关系。

  据悉,华为计划用3年至5年的时间来解决英国市场的担忧。华为在提交给英国议会下属的科学与技术委员会的一份信件中称:“增强我们的软件工程能力,就像更换正在运行的高速列车上的组件。这是一个复杂的过程,至少需要三至五年的时间才能看到切实的成果。我们希望英国 *** 能理解这一点。”

  中国铁路总公司(高村)主数据中心,定位为中国铁路更高级别的信息中心,更高等级的数据处理中心,是实现铁路总公司信息化总体规划的核心,承载着中国铁路集中应用系统部署及数据资源存储。12306网站、客票系统、调度系统等等都在这儿,服务器装机台数最多可达3840台。

  2018年年末,中国铁设工程总承包的铁路总公司主数据中心主体工程基本完工,顺利进入交付验收阶段,实现了当年开工,当年交付。

  中国铁路主数据中心

  安全、可靠性万无一失

  中国铁路主数据中心的暖通、电力和通信等各系统都设计了两套容错系统,保证各种极端意外情况下系统都能正常工作。

  比如供电系统,两路市电接入,坏一路还有一路。两路都不供电了咋办?这时,蓄电池组立马供电,它能持续供电15分钟。这15分钟足够启动柴油发电机楼里的发电机。这就保证这个大脑永不“断片儿”。

  蓄电池机房

  建筑结构不仅颜值高,可靠性更是高,能抗9级地震。如果不是行星撞地球,你就放心吧。

  服务器机组

  建筑:智能、绿色

  主数据中心,是智慧建筑和绿色建筑。

  先说智能,正常的工作状态下,装有各种服务器的主体建筑里几乎无人,机器自动运行。有一个叫做DCIM(数据中心基础设施管理)的系统,将主数据中心的暖通、电力、信号等各分系统整合在一个统一的平台进行管理。

  主控中心DCIM系统

  运维人员通过在主控室内监控,清晰、直观地监控信息楼的各个设备运行情况和各个角落,发现警报,之一时间就能处理。至于科幻大片经常出现的扫脸门禁、智能区分分权限进入不同区域之类,更不在话下。

  再说绿色,主数据中心的信息楼,冬天时可以通过引入室外的冷空气为系统制冷。同时,园区设计遵循海绵城市相关规定,采用雨水回收系统、下凹绿地等技术方案,有效利用水资源、降低用水消耗。

  温控系统

  现在看到的照片视频,是隆冬拍的,等到春天以后,数据中心还会被绿色环绕。

  当年开工,当年交付

  中国铁路主数据中心由中国铁设承担工程总承包。质量工期都得到保证,真正实现了当年开工,当年完工的目标。

  由设计单位承担总承包,发挥了设计在整个工程建设过程中的主导作用:设计与设备采购、施工等深度融合,在报规报建、设备采购、施工方案优化等工作中充分发挥了设计的引领作用,大大提升了施工质量,提高了建设效率。

  航拍中国铁路主数据中心

  在设计阶段,设计团队采用“系统化”和“模块化”的设计理念,让土建、机电、结构等各专业充分协调配合,进行精细化设计,在系统更优的前提下更大限度地发挥专业各自优势;同时,他们将机柜布局分成多个模块,各系统在一个模块找到更优方案后,可以复制到其余模块,而且模块之间相互独立,可以“启用一部分,建设一部分”,这就通过技术手段,大大增加了项目部对工期控制的灵活性。过程并不简单,技术人员说,为了找到更优方案,他们像是在玩“华容道”,几乎把所有可能的方案都考虑了。

  主数据中心项目建立了全专业的BIM模型,并与联合体施工单位中铁建工和中铁电化局一起合作,应用BIM技术进行三维管综校核、砌体排砖和4D工程进度模拟,有效提高了设计和施工管理效率。

  如果当局允许,华为已提出在波兰开设安全测试设施。

  这家中国公司是世界上更大的电信设备制造商,近来在信任方面正遇到危机。许多情报机构怀疑其设备可能为中国间谍提供监视管道, 并且有越来越多的国家不允许其设备进入未来的5G移动 *** 。

  波兰是其中可能避开华为的国家之一,因为其上个月的安全部门因涉嫌与该电信Orange的波兰雇员一起监视而逮捕了一名中国华为销售总监。

  为避免这种命运,华为周三提出了安全中心计划。

  华为波兰首席执行官Tonny Bao在新闻发布会上说:“如果当局接受这一点作为值得信赖的解决方案,我们准备在波兰建立一个 *** 安全中心。” 另一位高管表示,波兰 *** 没有理由将华为锁定在5G部署之外。

  华为已经在一些国家运营安全实验室,以缓解对其可靠性的担忧。它去年在德国波恩开业,下个月它将在比利时布鲁塞尔建立一个实验室,这是欧盟政策制定的核心。在这些设施中,电信 *** 运营商可以进入并测试华为的设备。

  该公司还在英国拥有一家拥有9年历史的工厂,名为华为 *** 安全评估中心(HCSEC)。这在另一个层面上运作,让英国情报工作人员 - 包括那里的一些工作人员 - 有机会窥视华为的设备。波兰实验室更有可能是为了电信公司的利益,如果提议被接受的话。

  1988年11月,罗伯特·塔潘·莫里斯,著名密码学家老罗伯特·莫里斯的儿子,是康奈尔大学一名20多岁的研究生,他想知道互联网有多大——也就是说,有多少设备连接到互联网上。于是他编写了一个程序,这个程序可以在不同的计算机之间传递,并要求每台计算机向控制服务器发送一个信号,控制服务器会继续计数。

  这个程序运行得很好——事实上太好了。莫里斯知道,如果它运行得太快,可能会出现问题,但他设置的限制不足以防止该程序阻塞互联网的大部分区域,包括将自己复制到新机器上,并将这些ping信号发回。当他意识到发生了什么时,甚至他的关于这个问题的警告系统管理员的消息也无法通过。

  他的计划成为之一个特定类型的 *** 攻击称为“分布式拒绝服务”,大量的 *** 设备,包括电脑、摄像头和其他智能设备,被告知发送大量的流量到一个特定的地址,重载它有这么多活动,系统关闭或 *** 连接是完全屏蔽。

  作为印第安纳大学综合 *** 安全项目的主席,我可以报告说,这类攻击在今天越来越频繁。在很多方面,莫里斯的程序,历史上称为“莫里斯蠕虫”,为我和其他人所说的即将到来的“万物互联网”的关键和潜在的破坏性弱点奠定了基础。

  蠕虫和病毒是相似的,但在一个关键方面是不同的:病毒需要来自用户或黑客的外部命令来运行其程序。相比之下,蠕虫完全靠自己在地上奔跑。例如,即使你从来没有打开过你的电子邮件程序,一个进入你电脑的蠕虫可能会把它自己的副本发送给你地址簿中的每个人。

  在一个很少有人关心恶意软件、没有人安装保护软件的时代,莫里斯蠕虫病毒迅速传播。普渡大学和伯克利大学的研究人员花了72个小时才阻止了这种蠕虫。在那期间,它感染了成千上万的系统——大约10%的计算机当时在互联网上。每台受感染的机器的清理工作都要花费成百上千美元。

  在媒体对这类首次事件的关注中,混乱非常普遍。一些记者甚至问人们是否会感染电脑。可悲的是,在这期间的几十年里,许多记者作为一个整体并没有对这个话题有更多的了解。

  莫里斯并没有试图破坏互联网,但蠕虫病毒的广泛影响导致他根据当时新颁布的《计算机欺诈和滥用法案》(Computer Fraud and Abuse Act)被起诉。他被判缓刑三年,罚款约1万美元。然而,在20世纪90年代末,他成为了一个互联网百万富翁——现在是麻省理工学院的教授。

  互联网仍然受到更频繁、更严重的DDoS攻击。从冰箱、汽车到健身追踪器,各种各样的设备有200多亿台联网,每周还有数百万台联网,安全漏洞和漏洞的数量正在激增。

  2016年10月,一场DDoS攻击使用了数千个被劫持的 *** 摄像头——通常用于安全或婴儿监视器——切断了美国东海岸许多重要互联网服务的接入。这一事件是一系列破坏性越来越大的攻击的 *** ,这些攻击使用的是由Mirai软件控制的僵尸 *** 。今天的因特网比1988年的因特网大得多,但安全程度也不高。

  有些事情实际上变得更糟了。搞清楚谁是特定攻击的幕后主使,并不像莫里斯1988年所做的那样,等着那个人感到担忧,然后发出道歉通知和警告那么容易。在某些情况下——那些大到值得进行全面调查的情况——有可能找出罪犯。三名大学生最终被发现在玩《我的世界》电脑游戏时创造了Mirai以获得优势。

  但是,仅仅有技术手段是不够的,有关 *** 活动的法律法规也是不够的,包括对莫里斯提出指控的法律。数十个州和联邦的 *** 犯罪法规似乎还没有减少 *** 攻击的总体数量或严重性,部分原因是这个问题的全球性。

  美国国会正在作出一些努力,允许在某些情况下遭受攻击的受害者采取积极的防御措施,这一想法也有一些负面影响,包括升级的风险,并要求为联网设备提供更好的安全保障。但能否通过还远未确定。

  尽管如此,还是有希望的。在莫里斯蠕虫病毒之后,卡内基梅隆大学建立了世界上之一个 *** 应急响应小组,该小组已在联邦 *** 和世界各地得到复制。一些决策者正在讨论建立一个国家 *** 安全委员会(national cybersecurity safety board),调查数字安全方面的弱点,并提出建议,就像美国国家运输安全委员会(national Transportation safety board)在处理飞机灾难时所做的那样。

  越来越多的组织也在采取预防措施,在构建系统时采用 *** 安全方面的更佳做法,而不是坐等问题发生并试图事后进行清理。如果更多的组织将 *** 安全视为企业社会责任的重要组成部分,它们——以及它们的员工、客户和商业伙伴——将会更加安全。

  在《3001:最后的奥德赛》中,科幻小说作家阿瑟·c·克拉克设想了这样一个未来:人类将最糟糕的武器封存在月球上的一个地窖里——里面存放着有史以来最恶毒的电脑病毒。在下一次莫里斯蠕虫病毒或Mirai病毒对现代信息社会造成难以估量的损害之前,每个人—— *** 、公司和个人——都有责任制定规则和程序,支持广泛的 *** 安全,而不是再等上30年。

  一,什么是收录量

  网站收录量是指搜索引擎收录一个网站的页面数量。网站收录量在SEO中也有着极其重要的意义。

  如果你的网站共有100个页面,但是,不可能100%地被百度收录。

  百度认为没有价值或者重复的内容,就不会被收录,一般网站页面的收录量不到30%。

  二,案例

  先看上面三张图啊,这是郑刚博客后台的数据,网站总共发布了710篇文章,也就是有710个页面。但是从上图中可以看到有1296个网页被百度收录。

  这里有两个问题:

  之一个,百度的收录量,只是一个估值,只能是一个参考。因为百度的数据库是一周一次小更新,一个月一次大更新。所以收录量是随时变化的。

  第二个问题,为什么网站只有710个页面,收录量却远高于710个页面。这是因为发一篇文章的时候,并不是生成了一个页面,而且生成了多个页面。因为每一个标签或者关键词,就是一个入口,也就是一个页面。

  三,除了关键词,还有影响收录量的还有哪些维度?

  1,月份

  如果我的博客,根据月份不同,划分成不同的列表,文章就多了月份这个入口。

  2,搜索入口

  如果设置了搜索入口,比如说,用户搜索SEO,那我的文章里所有跟SEO有关的,就会生成一个列表页面。这也是一个新的入口。

  3,根据网站的内容不同,还可能有很多其他的维度,比如地域、价格、行业,等等。

  四,收录量的价值和意义是什么?

  收录量越大,排名的关键词越多,网站的流量就越多。所以,很多人会把一个内容切分成多个内容,比如说从日期的角度切分,从搜索的角度切分,从地域的筛选来切分,如果是网上商城,还有价格的筛选,功能的筛选等切分角度。

  不同的维度,它会筛选出不同的页面,每个页面只要标题不同,URL地址不同,就相当于一个独立的页面,这个时候它就会生成N个页面组合。这是SEO技巧里一个非常有用,也非常有效的技术或者策略。

  现在最常用的主要有两招,之一个是筛选,第二个是搜索,通过用户的搜索关键词,在你的网站数据库里面自动搜索。

  通过这两招,通过不同的角度去搜索,通过不同的关键词或者地区筛选,你就可以变出非常多的页面来。也就是说你可能只需要100篇文章,就有可能把收录量变成10000。

  收录量大,做锚链接好处非常明显。你有10000个被收录的页面,就相当于你可以给自己投10000票。

  实际操作中,你会遇到一种情况,你可以查到这个页面被收录,但你拿这个标题去百度搜的时候,搜不到。

  这是因为它没有进入参加排名的数据库。有可能百度觉得这个页面内容质量比较低,或者这个页面跟其他内容是重复的,所以,没有进排名。这种情况叫无效索引。

  五,如何查询网站的收录量?

  1,在百度搜索里面搜索:site:+网址。

  2,在站长工具里面查询,如下图

  六,如何快速提高收录量?

  1,通过用户搜索的词来写内容

  2,通过不同的维度来筛选内容和URL生产。

  3,给这些网址做多个入口或者地图。

  4,批量提交给搜索引擎。

  5,给每个页面添加一个动态内容模块。

  上游大数据统计,春节放假期间,超四成男性想见初恋一面,近3成甚至不介意和初恋再恋一次。实在想不通这4成男性,相见初恋的动机是啥,见面会不会尴尬,尤其那3成,想和初恋再恋一次的男性,什么原因促使他们想从头来一次,难道是现任不够好?再恋一次,就真的能和好如初,过的更加幸福?

  建议大家,尽量还是不见初恋,作为现任肯定会很在意,你和初恋相见,相见说明你还挂念着初恋,没有一个人愿意自己的另一半心中,还为其他人保留位置。

  尤其是在春节期间,很多人聚在一起都会喝酒,如果此时见了初恋,在酒精的作用下,很有可能发生不该发生的事情。

  有些男性相见初恋的原因是,在意初恋的近况,想知道她现在过得如何,这样的想法纯粹是多此一举,既然两个人已经分开,各自又有了自己的生活,就应该摒弃一切杂念,珍惜现在人,忘掉初恋。

  要知道现在人们对于自己信息安全问题都是十分的关注,众多的人都是希望可以通过购买苹果手机保证自己手机信息安全。苹果公司一直以自己手机安全高效的成为一点,这样的效果,也倒是不少的人们对于苹果公司的影响就是安全,可是现在苹果公司却被爆出来自身的系统不断的出问题,虽然这些问题不大也得到了及时的修复,但是依旧影响着消费者能的安全。

  对于第三方软件而言,苹果公司一直都是严格把关,让每一个第三方软件在使用的时候都能够尊重顾客们的隐私问题,因此苹果的第三方软件一直都被认为是最安全的。但是现在就一个第三方软件,成为人们丢失个人信息的重要途径。9to5mac曝光了这个第三方软件可以利用苹果的FaceTime去监听消费者们的语音通话。

  这样的后果就是让每一台iPhone都已经成为别人可以随时窃听的工具。操作起来是十分的简单,只需要你在使用FaceTime的时候将目标人选拉入对话,不管对方有没有接受你的对话,你都可以听到他的声音以及利用他的前摄像头。

  这样的安全隐患是不是听起来足够吓人呢?可以设想一下,在对方给你打FaceTime的时候你可能没有看到或者是拒绝接受,但是仍然可以被对方听到你的对话。这样的设计漏洞足以丢失很多重要的信息。

  但是不少的国人都纷纷表示,其实自己从来都没有使用过FaceTime这一功能,这都是因为国内的iPhone并不支持FaceTime的使用,但是依然有不少的顾客都是的购买日本或者是其他版本的iPhone。

  这样的话将会存在安全隐患换,所以如果你要是购买的不是国行的话,那么还是要小心自己的信息被别人抛弃。千万不要因为是iPhone就对他的安全足够信任,一定要保护好个人隐私。

  序文:

  如果你没有时间阅读这本,那你就来对地方了。小编会将每一章刨去废话,取其精华。分享给大家。如果觉得可以请不要忘了关注小编。我会定期跟新java 中的经典书籍。

  正文:

  第四章:基础构建模块

  1.同步容器类:实现的方式-将它们的状态封装起来,并对每个公有 *** 都进行同步使得每次只有一个线程能访问容器的状态。

  同步容器类都是线程安全的,但是如果 *** 在一起调用并且要先判断后修改这种,就需要额外的加锁机制来保证线程安全。(线程安全类,是每个 *** 都安全的操作状态,但是如果将多个 *** ,在多个线程中有先后调用就会产生问题--类似于原子变量多个一起就要考虑加锁一样--复合操作)

  所以当要并发调用多个同步容器类中的 *** 的时候可以把同步容器对象作为私有锁,然后在操作。(迭代,先判断在操作这种常见的都要加锁)

  2.迭代器Iterator一般没有考虑到并发修改的问题,当容器在迭代过程中被修改时表现为“及时失败”-抛出异常。

  这个只是捕捉并发错误,只能作为预警指示器。并不能解决并发问题。(实现的原理就是使用,用一个计数器记录当前迭代到的索引,如果计数器被修改,那么hasnext就会报错)

  这样做提升了性能,但是并不安全,只能祈求不要产生并发错误,或者可以在捕获异常的时候在执行加锁的相同操作。

  3.如果加锁的代码,执行时间过程会降低程序的可伸缩性。持有锁时间长其他线程阻塞的时间就长,竞争就激烈,降低吞吐量和cpu使用率。

  4.“克隆”容器:如果不希望在迭代的时候加锁,就可以拷贝容器对副本进行迭代,这样拷贝可以栈封闭( *** 中)所以只有一个线程能访问。(这个适合对不变状态使用)

  5.注意一些隐藏的迭代器,StringBuild.append(obj)会调用 obj的toString() *** ,而容器的toString () *** 会调用每个元素的toString() *** 。(这里就隐藏遍历了每个元素,还有equals,hashCode,containsAll ,removeAll,retainAll)

  6.并发容器类:出现是为了改进同步容器类的性能。(例子:ConcurrentHashMap)

  同步容器将所有对容器状态的访问都串行化。(只要访问这个状态就只能有一个线程)

  基于散列Map,CopyOnwriteArrayList

  优点:可以极大地提高伸缩性并降低风险(支持常见的复合操作,先检测后执行...)

  7.Queue队列(先进先出):不阻塞的线程安全类。

  8.BlockingQueue扩展了Queue,增加了阻塞的插入和获取,如果队列是空那么就线程阻塞,如果队列有界且满了那么在插入的时候阻塞。(生产者 消费者设计模式中 阻塞队列非常有用)

  9.并发容器类使用场景:

  在并发操作中:

  ConcurrentHashMap 代替HashMap

  ConcurrentSkipListMap 代替SortedMap

  ConcurrentSkipListSet 代替SortedSet

  CopyOnwriteArrayList 代替同步List

  10.ConcurrentHashMap :

  并不是每个 *** 都在同一锁上同步并只能有一个线程访问

  使用分段锁

  弱一致性(size 和 isEmpty 不准确)

  11.在构建高可靠的应用程序时,有界队列是一种强大的资源管理中间:它们能抑制并防止产生过多的工作项,是应用程序在复合过载的情况下变得更加健壮。

  12.SynchronousQueues:

  没有存储功能,所以put 和take 至少有两个线程配合才能使用。

  可以理解为一个线程put 由于没有存储只能等到另一个线程take,(一个线程take 必须等另一个线程put)

  13.双端队列:Deque

  适用于工作密取:有多个线程访问一个队列的时候从尾部取,从而避免阻塞等待,

  14一个线程不能强制其他线程停止正在执行的操作而去执行其他线程。

  15.某个 *** 抛出InterruptedException时,表示该 *** 是一个阻塞 *** ,如果这个 *** 被中断,那么它将努力提前结束阻塞状态

  16.同步工具类:信号量(Semaphore) 、栅栏(Barrier)、闭锁(Latch)

  17.闭锁:(CountDownLatch)

  可以延迟线程的进度直到到达终止状态。(到达结束状态前,所有线程都必须等待)

  例子:当一个资源初始化以后所有的线程才能执行

  countDownLatch ,内置一个计数器,初始化的时候会传入count :就是如果想要停止等待所要调用 countDown 的次数。(await 可以调用多次,但是countDown必须得固定为初始化的次数,所有调用了await的线程才会继续执行)

  18.信号量:(Semaphore)

  用来控制同时访问某个特定资源的操作数量,或者同时执行某个指定操作的数量。

  内部维护了一组虚拟的许可(permit在初始化的时候指定个数)acqurie 需要一个许可,release释放一个许可。

  如果初始化一个Semaphore 许可是1,那么和Synchroied 加锁差不多。

  19.栅栏:(CyclicBarrier)

  能阻塞一组线程只掉某个事件发生。

  栅栏与闭锁的区别在于:闭锁用于等待事件,而栅栏用于等待其他线程。

  一开始在项目中使用的是OpenResty来实现REST API,但使用起来一直觉得不方便。主要是因为Lua没有ORM,也没有REST架构风格的框架。直到最近在用Django时,接触到Django REST framework,在深感便利的同时,也进一步加深了对REST架构风格的理解。所以写下这篇文章,一方面记录Django REST framework的体验过程,同时借此解读下REST架构风格。

  1. 体验Django REST framework

  1.1 安装

  pip install djangopip install djangorestframework

  1.2 创建Django项目并初始化

  django-admin startproject rest_example # 创建Django项目django-admin.py startapp app # 创建应用python manage.py migrate # 执行迁移python manage.py createsuperuser--email --username admin # 创建超级用户

  1.3 项目配置

  在项目INSTALL_APP配置中加入rest_framework,修改rest_example/settings.py。

  INSTALLED_APPS=(...'rest_framework',)

  1.4 REST framework配置

  在项目配置中加入REST_FRAMEWORK配置,在rest_example/settings.py加入以下内容。

  1.5 创建序列化器

  创建rest_example/app/serializers.py文件,内容如下。

  序列化器会自动将模型序列化。对于RESTful架构来说,超链模型序列化器是非常合适的,因为可以提供连通性。

  1.6 创建视图

  修改rest_example/app/views文件,内容如下。

  fromdjango.contrib.auth.modelsimportUser,Groupfromrest_frameworkimportviewsetsfromrest_example.app.serializersimportUserSerializer,GroupSerializerclassUserViewSet(viewsets.ModelViewSet):""" API endpoint that allows users to be viewed or edited.""" queryset=User.objects.all().order_by('-date_joined')serializer_class=UserSerializerclassGroupViewSet(viewsets.ModelViewSet):""" API endpoint that allows groups to be viewed or edited.""" queryset=Group.objects.all()serializer_class=GroupSerializer

  ViewSet封装了通用的视图,实现了get、post、put、delete等请求 *** 对应的通用处理 *** ,直接继承可以极大地简化代码。

  1.7 配置路由

  修改rest_example/urls文件,内容如下。

  fromdjango.conf.urlsimporturl,includefromrest_frameworkimportroutersfromrest_example.appimportviewsrouter=routers.DefaultRouter()router.register(r'users',views.UserViewSet)router.register(r'groups',views.GroupViewSet)# Wire up our API using automatic URL routing.# Additionally,we include login URLsforthe browsable API.urlpatterns=[url(r'^',include(router.urls)),url(r'^api-auth/',include('rest_framework.urls',namespace='rest_framework'))]

  其中,api-auth路由是用于对REST API进行鉴权。

  1.8 大功告成

  启动Django,在浏览器中访问可以看到如下图所示界面。

  image.png

  只通过简单的配置,就得到了一个完善的REST API,可谓相当的便利。

  2. 解读REST架构风格

  2.1 资源URI

  先看最简单的资源GET /,响应如下。

  HTTP200OKAllow:GET,HEAD,OPTIONSContent-Type:application/jsonVary:Accept{"users":"","groups":""}

  上述响应表示存在两种资源(可引用的对象):user资源和group资源,其URI分别为和

  REST是面向资源的架构,在REST中,URI代表某个或某种资源,所以URI中只能有名词,而且一般是复数形式。

  再看user资源GET /users,响应如下。

  HTTP200OKAllow:GET,POST,HEAD,OPTIONSContent-Type:application/jsonVary:Accept[{"url":"","username":"admin","email":"","groups":[]}]

  上述响应表示当前只有一个user资源,用户名是admin,对应的URI是

  因为URI表示的是具体的资源,所以应该在URI中包含user id。假如写为这样代表的是从所有的user资源中过滤出id=1的资源 *** ,而不是表示id=1的具体资源。

  在资源URI中,id需要放在URI路径中,不能放在请求参数中。请求参数适用于放过滤条件、分页信息等内容。

  2.2 连通性

  在GET /请求的响应中,包含了user资源和对应group资源的URI。

  在GET /users请求的响应中,也包含了groups资源,只是因为当前没有group资源,所以是空数组。我们在页面登录后,创建名称为superuser的group,再把admin用户加入到superuser组中。此时再请求GET /users,响应如下。

  HTTP200OKAllow:GET,POST,HEAD,OPTIONSContent-Type:application/jsonVary:Accept[{"url":"","username":"admin","email":"","groups":[""]}]

  可以看到,groups数组表明admin用户只属于一个组,该group资源对应的URI为如果需要了解该group资源的具体信息,则可以通过请求GET 获取。

  在资源响应中包含关联资源的URI,可以提供后续操作的入口,将各种资源串联起来,便于客户端进行下一步操作。

  2.3 统一请求 ***

  REST通过统一请求 *** ,只知道资源URI就可以进行一系列增删查改的操作。反应到页面上,在GET /users资源时,页面可以提供如下页面来创建一个新的user资源,而这一切都是因为约定了POST是创建操作,资源描述通过body传递,资源ID由服务器自动生成,新生成资源的URI会通过请求响应返回。

  image.png

  同时,因为统一了请求 *** ,并且在Header中声明了该资源支持的请求 *** ,所以页面可以针对该资源,提供增删查改的一系列操作入口。如下图右上角所示。

  image.png

  2.4 资源的表述

  在《那些年,我们一起误解过的REST》文中我提到过,同一个资源可以有多个不同的表述,每个表述需要是自描述的。例如,请求GET /users/1,可以选择返回json格式还是api格式,如下图右上角所示。

  image.png

  当请求json格式时,REST API返回纯json的表述;当请求api格式(实际上是html格式)时,REST API返回渲染过的html页面,所以才有上文的各种功能丰富的截图。这两种表述都是对相同资源的表述,本质上是相同的。至于究竟返回的是什么格式的表述,则需要通过响应Header中的Content-type字段说明。

  繁忙的一年级已经结束了。暑假过后,便是全新的二年级。什么稀奇的事情都可能发生,什么都变了。但是,变化更大的,还是王小正他们的课。

  “诶,那个兄弟啊,我们二年级好像要新开个新的啥课来着?”朱准充满好奇心地问道,因为除了学习之外还是学习的他们,已经被老师的魔鬼式训练折磨得不成样子。这种除了主课之外的兴趣课,一下子成了他们讨论的焦点。

  “喔,对,那个课好像叫什么编来着?是不是胡编乱造?”诸葛贤回答。并撸了撸他将来长长的胡子。

  “嘿,哥们,肯定不是胡编乱造。”李天鹤一蹦三尺高,还一边喊着,“我上学路上听学长说的,千真万确,欧耶,动次打次……”

  “我知道它不是胡编乱造的,但是我想问的是,它的名字是不是叫胡编乱造?”朱准一把拽起李天鹤的衣领,握紧了拳头,“你再不说,我就揍扁你。”

  “想多了——其实我也不知道。”

  “嗯?”“啊——”

  王小正他们热火朝天地谈论着他们的新课程,把所知道的情报拼拼凑凑,终于得到了完整的信息,他们做了一个表:

  课程:编程(Programming,プログラミング)

  任课老师:老姚——体型不胖不瘦,个子不高不矮,嘴巴不大不小,鼻子不歪不正(“老姚评语:“我待会收拾你们!”)

  上课时间:每周三和周五,全是13:00~13:35

  王老师评语:这表也没啥信息,第二条超级离谱,谁写的?语文水平真的不咋地(被揍成猪头的可怜的李天鹤在旁边抹了把眼泪……)

  上课开始了。

  既然是在二年级就学编程,其实就变成了上课随便玩电脑,爱听不听都随你。每堂课老师带领同学设计一游戏,可是同学们在课上依葫芦画瓢还行,下课就忘光光。

  老姚花了好大的功夫才让同学们对待编程课像主课一样。他专门设计了好多编程课新法,软硬兼施,比如,他规定,只有期末考试优秀,下学期才有资格报名继续学编程,否则,就给我领便当;每堂课上得最认真的同学,老姚请他去老师的食堂吃午饭(时间老师定)。

  老姚敲了敲黑板,王小正转过身来,发现黑板上又多了很多笔记:你可以在Scratch1.9999999999999……(其实是2.0,只不过是老师在炫耀自己的精神财富)的“事件”里面找到方块,然后按下小绿旗,在“动作”中让对象移动10步,在“控制”中用“如果……那么……”创造条件,等等。

  同学们渐渐体会到了Scratch的魅力,毕竟自己做的游戏其实更好玩。

  重磅干货,之一时间送达

  本文经机器之心(almosthuman2014)

  授权转载,禁止二次转载

  参与:Nurhachu Null、Chita

  作者想用深度学习来解决一个小麻烦,于是用 Python 和 Mask R-CNN 设计了一个模型。该模型可以自动检测停车位并在发现可用车位后向他发送短信。这是什么神仙(sao)操作?

  我居住在一个大城市。但是和在很多大城市一样,找个停车位总没那么容易。车位很快就被抢占一空,即使你有一个属于自己的专用车位,朋友们顺路来访也很难,因为他们找不到车位。

  我的解决方案就是将一个摄像头伸出窗外,再用深度学习让我的计算机在有车位空出来的时候给我发短信:

  这听起来也许很复杂,但是借助深度学习构建一个实用的版本实际上又简单又快。所有的工具都是可用的——你只要知道去哪儿找到工具并把它们组合在一起就行。

  那么,我们花点时间用 python 和深度学习构建一个高准确率的停车位通知系统吧!

  问题分解

  当我们面临想要用机器学习解决的复杂问题时,之一步就是将问题分解成若干简单问题。然后,使用详细分解作为指导,我们可以从机器学习工具箱中使用不同的工具来解决这些小问题。通过将几个不同的解决方案链接到一个流程中,我们就得到了能够做一些复杂事情的系统。

  下面是我分解的空车位检测流程:

  机器学习流程的输入是来自一个伸出窗外的普通 *** 摄像头的视频流:

  从摄像头中截取的示例视频

  我们将通过工作流程传送每一帧视频,一次一帧。

  这个流程的之一步就是检测一帧视频中所有可能的停车位。显然,在我们能够检测哪个是没有被占用的停车位之前,我们需要知道图像中的哪些部分是停车位。

  第二步就是检测每帧视频中的所有车辆。这样我们可以逐帧跟踪每辆车的运动。

  第三步就是确定哪些车位目前是被占用的,哪些没有。这需要结合前两步的结果。

  最后一步就是出现新车位时通知我。这需要基于视频中两帧之间车辆位置的变化。

  这里的每一步,我们都可以使用多种技术用很多种方式实现。构建这个流程并没有唯一正确或者错误的方式,但不同的 *** 会有优劣之分。

  之一步:检测一幅图像中的停车位

  摄像头的视野是这样的:

  我们需要扫描这幅图,然后返回一个有效停车区域列表,就像这样:

  这个城市街道上的有效停车位。

  一种比较懒的 *** 就是手动把每个停车位的位置硬编码到程序中,而不是自动检测停车位。但是如果我们移动了摄像头或者想要检测另一条街道上的车位时,就必须再一次手动硬编码车位的位置。这样很麻烦,还是找一种自动检测车位的 *** 吧。

  一个思路是寻找停车计时器并假设每个计时器旁边都有一个停车位:

  检测每幅图像中的停车计时器。

  但这种 *** 有些复杂。首先,并非每个停车位都有停车计时器——实际上,我们最喜欢找的是无需付费的车位!其次,只知道停车计时器的位置并不能确切地告诉我们停车位的确切位置。它只是让我们更加接近停车位罢了。

  另一个思路就是构建目标检测模型,让它寻找道路上绘制的停车位标志,就像这样:

  请注意这些黄色的小标志——它们就是画在道路上的每个车位的边界。

  但是这种 *** 也很令人痛苦。首先,我所在城市的停车位标志线特别小,在这么远的距离很难看见,所以很难用计算机检测到它们。其次,道路上有各种无关的线和标志。很难区分哪些线是停车位标志,哪些是车道分离线或者人行道线。

  当你遇到似乎很困难的问题时,花几分钟时间想一想,你是否可以采用不同的 *** 来解决这个问题,避开一些技术性挑战。到底什么是停车位?停车位不就是车辆可以停放很长时间的地方吗。所以,也许我们根本就没必要去检测停车位。为何不能仅仅检测长时间没有移动的车辆并且假设它们就停在停车位呢?

  换句话说,有效停车位就是包含非移动车辆的地方。

  这里,每辆车的边界框实际上就是一个停车位!如果我们能够检测静态的车辆,就没必要检测停车位。

  所以,如果我们能够检测车辆,并且可以判断哪些车辆在视频帧中是没有移动的,那我们就能够推测出停车位的位置。够简单了——让我们来检测车辆吧!

  检测图像中的车辆

  检测视频帧里的车辆就是目标检测中的一道练习题。我们可以用很多机器学习 *** 来检测图像中的目标。下面是我列出的几种最常用的目标检测算法:

  训练一个 HOG(方向梯度直方图) 目标检测器,并用它滑过我们的图像以寻找所有的车辆。这个古老的非深度学习 *** 运行起来相当快,但是它并不能很好地处理向不同方向移动的车辆。

  训练一个 CNN(卷积神经 *** ) 目标检测器,用它滑过我们的图像直到找到所有的车辆。这种 *** 很准确,但并不是很高效,因为我们必须多次扫描同一张图像来寻找所有的车辆。并且,虽然它可以轻易找到向不同方向移动的车辆,但它需要的训练数据要比 HOG 目标检测器多得多。

  使用更新的深度学习 *** ,如 Mask R-CNN、Faster R-CNN 或者 YOLO。它们将灵活的设计和高效的技巧与 CNN 的准确性结合在了一起,能够极大地加速检测过程。只要我们有足够多的数据来训练模型,它能在 GPU 上运行地相对快一些。

  通常情况下,我们希望选择最简单的 *** 来解决问题,使用最少的训练数据,并不认为需要最新、更流行的算法。但是在这个特殊的情况下,*Mask R-CNN*是一个比较合理的选择,虽然它是一个比较新、比较流行的算法。

  Mask R-CNN 架构在不使用滑动窗口的情况下以一种高效的计算方式在整幅图像中检测目标。换句话说,它运行得相当快。在具有比较先进的 GPU 时,我们应该能够以数帧每秒的速度检测到高分辨率视频中的目标。所以它应该比较适合这个项目。

  此外,Mask R-CNN 给我们提供了很多关于每个检测对象的信息。绝大多数目标检测算法仅仅返回了每个对象的边界框。但是 Mask R-CNN 并不会仅仅给我们提供每个对象的位置,它还会给出每个对象的轮廓 (掩模),就像这样:

  为了训练 Mask R-CNN,我们需要大量关于需要检测的目标的图像。我们可以拍一些车辆的图像,然后将这些图像中的汽车标注出来,但是这可能会花费几天的工作。幸运的是,汽车是很常见的检测目标,很多人都想检测,因此早就有了几个公开的汽车数据集。

  有一个很流行的数据集叫做 COCO,它里面的图像都用目标掩膜标注过。在这个数据集中,已经有超过 12000 张汽车图像做好了轮廓标注。下面就是 COCO 数据集中的一张图像。

  COCO 数据集中已标注轮廓的图像。

  这个数据集非常适合用来训练 Mask R-CNN 模型。

  使用 COCO 数据集来构建目标检测数据集是很常见的一件事情,所以好多人已经做过并且分享了他们的结果。因此,我们可以用一个训练好的模型作为开始,而不用从头去训练自己的模型。针对这个项目,我们可以使用很棒的开源 Mask R-CNN,它是由 Matterport 公司实现的,还提供了训练好的模型。

  地址:

  旁注:你不必为训练定制化的 Mask R-CNN 而担心!标注数据是很耗时间的,但是并不困难。如果你想使用自己的数据完整地训练 Mask R-CNN 模型,可以参考这本书:

  

  如果在我自己的相机图像上运行预训练模型,以下是检测结果:

  经过 COCO 默认目标识别的图像——车辆、人、交通信号灯和树。

  我们不仅识别了车辆,还识别出了交通信号灯和人。而且比较滑稽的是,它将其中的一棵树识别成了「盆栽植物」。

  对于图像中被检测到的每一个目标,我们从 Mask R-CNN 模型中得到了下面四个结果:

  被检测到的目标(作为整数)类型。预训练的 COCO 模型知道如何检测 80 种不同的常见目标,例如汽车和卡车。

  目标检测的置信得分。这个数字越大,越说明模型准确识别了目标。

  中目标的边界框,以 X/Y 像素位置地形式给了出来。

  位图「掩模」,能够分辨出边界框里哪些像素是目标的一部分,哪些不是。有了掩模数据,我们也可以标注目标的轮廓。

  下面是 python 代码,用于根据 Matterport』s Mask R-CNN 实现和 OpneCV 预训练的模型来检测汽车边界框:

  当你运行这段脚本时,会在屏幕上得到一幅图,每辆检测到的汽车都有一个边界框,像这样:

  每辆检测到的汽车都有一个绿色的边界框。

  你还会看到被检测到的汽车坐标被打印在了控制台上,就像这样:

  经过以上这些步骤,我们已经成功地检测到了图像中的汽车。

  检测空置的停车位

  我们知道了每张图像中每辆车的像素位置。通过查看视频中按顺序出现的多帧,我们可以轻易知道哪些车没有动,并且假设它们所在的位置就是车位。但是,当一辆车离开车位的时候,我们如何检测得到呢?

  问题在于我们图像中的边界框是部分重叠的。

  即使是在不同车位中的车辆,每辆车的边界框都会有一小部分的重叠。

  所以,如果我们假设每个边界框代表一个车位,那么,即使车位是空的,也有可能显示为被部分占用。我们需要一个 *** 来测量两个对象的重叠度,以便检查「大部分是空的」边界框。

  我们将要使用的测量 *** 为交并比(IoU)。IoU 通过两个对象重叠的像素数量除以两个对象覆盖的像素数量计算得到。像这样:

  这将为我们提供汽车边界框与停车位边界框重叠的程度。有了这个,我们可以轻易确定汽车是否在停车位。如果 IoU 测量值很低,如 0.15,那意味着汽车并没有真正占用大部分停车位。但如果指标很高,如 0.6,这意味着汽车占据了大部分停车位区域,因此我们可以确定该空间被占用。

  假设我们有一个表示图像中停车区域的边界框列表,查看检测到的车辆是否在这些边界框内就像添加一行或两行代码一样简单:

  结果是这样子的:

  在这个二维数组中,每一行代表一个停车位的边界框。同样,每一列代表着这个停车位被检测到的汽车占用了多少。1.0 分表示完全被占用,较低的分,如 0.02 则表示这辆汽车接触到了车位的空间,但是并没有占据大部分区域。

  要寻找未被占用的停车位,我们只需要检查此阵列中的每一行。如果所有数字都为零或非常小,那意味着没有任何东西占据那个空间,它就是空着的!

  但请记住,目标检测并非总是与实时视频完美配合。即使 Mask R-CNN 非常准确,偶尔也会在单帧视频中错过一两辆车。因此,在将停车位标记为空闲之前,我们应该确保它在一段时间内保持空闲 - 可能是 5 或 10 个连续的视频帧。这将防止系统仅仅因为目标检测在一帧视频上有短暂的停顿就错误地检测到空闲的停车位。但是,只要我们看到至少有一个空闲停车位出现在连续几帧视频中,我们就可以发送短信了!

  发送短信

  这个项目的最后一步就是当检测到一个空闲停车位出现在视频的连续几帧中时就发送短信提醒。

  使用 Twilio 从 Python 中发送短信很简单。Twilio 是一个很流行的 API,它可以让你用任何编程语言只需几行代码就可以发送短信。当然,如果你更喜欢使用其它短信服务提供商,也可以。我和 Twilio 并没有利益关系。它只是我想到的之一个工具而已。

  安装完成后,这是用 Python 发送短信的完整代码(只需用你自己的帐户详细信息替换这些值即可):

  为了在脚本中添加短信发送功能,我们可以把这些代码丢进去。但需要注意的是,我们并不需要在每一个有空闲车位的新视频帧中发送短信。所以我们需要一个标志来跟踪是否已经发过短信了,这是为了保证不会在短期内再次发送或者在新车位空出来之前再次发送。

  总结

  将以上流程中的所有步骤整合在一起,构成一个独立的 Python 脚本,完整代码如下所示:

  要运行这份代码,你首先需要安装 python 3.6+,Matterport Mask R-CNN 以及 OpenCV。

  我特意保留了比较简单的代码。例如,它只是假设之一帧视频中出现的任何车辆都是停放的汽车。试用一下,看看你是否能够提升它的可用性。

  不必担心为了在其它场景中使用而修改代码。仅仅改变模型寻找的目标 ID,你就能够将这份代码完全转换成另一个东西。例如,假设你在滑雪场工作。经过一些调整,你就可以将这份脚本转换为一个系统,它可以自动检测滑雪板从斜坡上跳越,并创建出很酷的滑雪板跳越路线。或者如果你在野生动物保护区工作,你可以将这份代码转换成一个统计野生斑马数量的系统。唯一的限制只是你的想象力。祝你玩得开心!

  参考原文:

  想要了解最新最快更好的论文速递、开源项目和干货资料,欢迎加入CVer学术交流群。涉及图像分类、目标检测、图像分割、人脸检测&识别、目标跟踪、GANs、学术竞赛交流、Re-ID、风格迁移、医学影像分析、姿态估计、OCR、SLAM、场景文字检测&识别和超分辨率等方向。

  扫码进群

  这么硬的论文速递,麻烦给我一个好看

  麻烦给我一个好看!

  新华社上海2月6日电 (记者周琳)新春佳节,当千门万户团圆喜庆之际,上海依然有“AI服务

  驱动中国2019年2月7日消息 此前,华为波兰事件引发广泛关注,华为于1月12日做出回应,华为波兰代表处员工王伟晶因个人原因涉嫌违反波兰法律而被逮捕调查,该事件对华为的全球声誉造成了不良影响,依据公司劳动合同相关管理规定,华为决定立刻终止与王伟晶的雇佣关系。

  而关于此事件的进一步影响,据新浪科技援引路透社的报道称,华为日前表示,准备在波兰建立一个 *** 安全中心,提升当地客户对华为 *** 设备的信心,打消其安全担忧。

  路透社:华为计划在波兰建立 *** 安全中心,报道称,华为波兰业务主管Tonny Bao在2月6日的一场新闻发布会上表示,如果波兰当局认为这是一个值得信赖的解决方案,我们准备在波兰建立一个 *** 安全中心。华为同时强调,该公司一直遵守业务所在国的所有适用法律法规,合规经营,并要求所有员工遵守所在国法律法规。

  此外,据路透社获得的一份文件显示,华为计划用3至5年的时间来解决英国市场的担忧。

  最后小编的文章就到此结束了,不知道大家看过瘾了吧,小编码字不容易,还请大家担待。关注小编每天位大家带来许多游戏的趣事,最后祝大家天天开心!

  据说,开什么品牌和型号的车可以一定程度上体现这个人的性格,开飞度的多是技术宅,开思域的都是奔放小青年。

  有人统计了人们常见的十种方向盘握姿,然后发现:怎么握方向盘,居然和性格有关。

  那么,问题就来了:你开车是怎么握方向盘的呢?

  一切都按照规矩走,不来半点马虎

  这个世界就是那么回事,活在当下最重要

  简单直接是我的生活哲学,换一个词可以说是懒

  生活不能太平淡,总得有点 *** 的内容

  老板就是要把什么东西都抓在自己手里

  这个和老板相反,随时准备帮助别人

  一般不会加入一个阵营,说话总是感觉很客观

  再过几年自动驾驶发展起来大家集体逗比

  是什么让你如此紧张,放松放松再放松

  不用多说啦,按喇叭是路怒症的唯一发泄方式

  各位网友们,大家好,欢迎点进小编的文章,我是一个专一的小编,专业爆料娱乐圈最新热点,来阅读小编的文章了解娱乐圈的家常百态吧,不仅可以在百忙之中放松心情,还可以get到喜欢的明星八卦,茶余饭后又多了与朋友交流的话题,如若喜欢小编的文章,记得点赞关注哦!这是小编每日工作的动力呢,有了你们喜欢的肯定,小编会再接再厉,奉上热文,祝广大网友顺心如意,好运连连!

  【PCOnline导购】眼看着春节假期离自己越来越近,大家的心是不是已经飞到家里了呢?在难得能与家人团聚的节日里,绝大多数网友都会选择宅在家里好好陪陪家人。而在陪伴家人的过程中,仅靠谈天说地怎能把气氛推向 *** 呢?要想让家人真正感受到热闹的过年氛围,那就在家中添置一台可以分享过去一年中有意思的照片、视频、电影等内容的NAS设备,给春节假期的团聚增添更多的温馨色彩。

  春节放假宅在家 这些神器拉近你与家人之间距离,推荐产品:群晖DS216 II

  参考价格:2780元

  群晖DS216 II搭载双核CPU和硬件加密引擎,并支持Btrfs新一代文件系统,提供数据保护和高效率快照。DS216+支持1路H.264 4k或3路Full HD实时视频解码的它还能带给是小型企业和极客理想的存储服务器。

  DS216不止有无可比拟的高生产力,它还支持完整的 *** 协议,无论使用何种设备都能共享文件,就像访问电脑上的文件夹一样直观。一键就可以形成文件夹分享链接,并支持密码保护、HTTPS确保共享文件的安全性。可与公司既有AD或LDAP账户无缝整合,无需另外维护另一组账号。除了智能存储服务,它还可提供海量套件,模组化系统让你可以随心所欲安装第三方或者自行开发的软件,买一台NAS抵过数十台设备。

  DS216还能带给你私有网盘的享受,让你可以在公司与家里、电脑与移动设备间自由穿梭,仍无缝地编辑同一份文件。即使离线状态,仍可以随时浏览、编辑文件,并在下次联网时同步更动的部分。作为一款负责任的产品,DS216还能免费帮你守护你的资产。用户无需另外购置监控系统,只需安装Surveillance Station搭配兼容的摄像头,你可以在电脑、手机上实时监看环境安全。当侦测到特定事件时,会以简讯、电子邮件或推播通知传送事件通知给管理人员。

  推荐产品:威联通TS-45 *** ro

  参考价格:5680元

  威联通TS-45 *** ro采用由多项QNAP自行研发技术总和而成的QvPC技术,该技术包含虚拟化、硬件加速转文件、云端整合、SSD快速加速技术、影像输出等,让你可以透过HDMI外接显示器来使用多重桌面,包括:QNAP虚拟机桌面、视频监控管理桌面以及本地显示操作桌面。你还可以把它当作视频监控实时输出监控录像、在线实时监控频道,在此之后还能对录像进行花式回放。

  TS-45 *** ro搭载四核赛扬2.0GHz处理器和节能DDR3L内存以及四 *** 端口,它能整合带宽、加速 *** 传输速度。在保密方面,它采用AES256位加密及防毒,提供高达240.9MB/s数据读取速度及158.7MB/s写入速度。把过去的回忆存放在TS-45 *** ro中不仅保密性能良好,它还会通过RTRR实时备份与云端备份,你也可以把内容备份至外接设备、远程服务器,及第三方云端备份空间,这样周全的备份功能,让你不再畏惧数据遗失。

  至于分享方面,TS-45 *** ro支持 *** B/CIFS、NFS及AFP等协议,支持跨平台档案分享,支持集中存储与管理各种数据、系统记录,甚至CD/DVD的ISO映像档案,且经由层层防毒侦测机制保护。它还支持LDAP服务器功能,IT管理者大大节省建立及管理账号的时间。除此之外,它提供的4个 *** 端口皆可搭配不同应用服务来管理 *** ,达到高安全性布局的分区应用管理。它不仅在硬件方面满足你的各种需求,也在软件方面进行悉心打磨。它支持QNAP独家先进影音加速转档技术,内部更有APP Center让你随心安装海量APP。其中,Signage Station是创意宣传好帮手、IT Management Station可提升你的IT资产管理效率、Qsync可为你提供更大的存储空间,有了这些技术的支持,TS-45 *** ro用起来自然是得心应手。

  推荐产品:铁威马F2-NAS

  参考价格:1299元

  铁威马F2-NAS可通过APP实现安装NAS系统或管理NAS、你无需复杂设置,可随时随地访问TNAS,文件查看、照片视频浏览或备份都得心应手。它自带的多媒体服务器可将NAS中的4K媒体内容串流至多媒体播放设备。支持4K H.264实时转码。还可以利用下载工具,下载你钟爱的电影或音乐,回家即可观看。

  F2-NAS还能让你通过NAS oline访问NAS,你能通过安全、可自定义的网址联机方式随时随地存取NAS上的资料,无需设置端口转送规则、DDNS或其他复杂 *** 设置;你也可以搭建私有云,满足远程访问需求,同时也支持共有云同步,享受便捷云端生活。如果你的数据分散在电脑、U盘等地,你可以把它们几种存储或备份至NAS,通过定时备份、组建阵列、快照等多种方式保护数据安全, *** 勒索软件。更有Docker Hub让你从其他优秀开发人员那里找到共享的应用程序,你想要的都能从这进行获取。

  F2-NAS不仅在使用上方便快捷,而且在数据保护上也有自己的妙招。它支持Btrfs文件系统的保护,该系统引入了先进的存储技术和经过优化的快照技术,可防止数据损毁、降低维护费用。在提升高度数据完整性的同时,还能提供灵活有效率的数据保护和恢复工具,有效抵御勒索软件威胁Snapshot Replication为每个共享文件夹创建512个快照和整个系统高达8192个快照,为你提供可调的、节省存储容量的数据保护能力。

  此外,它还具备文件或文件夹级别的数据恢复能力,能加快数据恢复速度,可为企业提供更大灵活性。更有希捷酷狼IHM通过监控温度、宕机、震动、信号给予预警,检测硬盘数据传输、读写性能、可靠性给予敢于;还可以通过SRS数据恢复你受损的数据。F2-NAS从数据到硬件设施均能进行实时监控,超高的安全系数定能让你放宽心。

  总结:科技的进步让我们的生活越来越丰富多彩,NAS设备的出现让春节宅在家中的我们再也不用担心冷场问题,因为它能帮助我们唤醒回忆,营造温馨的家庭氛围。

  最后小编的文章就到此结束了,不知道大家看过瘾了吧,小编码字不容易,还请大家担待。关注小编每天位大家带来许多游戏的趣事,最后祝大家天天开心!

  外媒污蔑一个名为APT10的中国民族黑客组织已经从挪威公司Vi *** a攻击并窃取了数据,该公司为欧洲公司提供基于云的商业软件解决方案。

  根据美国 *** 安全公司Rapid7和Recorded Future(两家威胁情报公司)今天发布的一份联合报告,对Vi *** a *** 的侵入发生在2018年8月17日。

  根据该报告, *** 支持的黑客通过使用Vi *** a员工用来访问公司内部 *** 的Citrix远程访问软件客户端的盗用有效用户凭证来破坏公司的内部 *** 。

  一旦入侵,他们就会部署两个恶意软件--Trochilus远程访问木马和Uppercut(Anel)后门 - 来搜索,收集和泄露Vi *** a的数据。

  这家挪威公司今天在其网站上发布的一份声明中正式承认了这一行为。该公司表示,黑客只窃取内部Vi *** a数据,并且“他们的客户系统都没有受到影响。”

  Recorded Future和Rapid7认为,在APT10入侵之前的早期阶段就发现了入侵,黑客可能会滥用窃取的数据,通过对Vi *** a的云软件进行后门处理或滥用,以便在客户的内部 *** 上立足而将感染升级为Vi *** a客户。

  Vi *** a还表示,入侵是由他们自己的情报系统确定的,已确认并与Rapid7的数据相关联,并在Recorded Future的帮助下进一步调查。

  Vi *** a是欧洲更大的基于云的托管服务提供商(MSP)之一,拥有超过850,000名客户,净收入超过10亿美元(2017年)。

  其他两家公司也被入侵

  Rapid7还根据Vi *** a事件响应期间收集的数据确定了其他APT10黑客攻击。专家表示,同一个中国黑客组织也入侵了一家帮助中国公司进入美国市场的美国律师事务所(2017年底)和一家国际服装公司(2018年初)。

  这些黑客攻击是2017年开始的更大规模的APT10黑客攻击的一部分,目标公司遍布全球,但主要是云提供商。

  自2017年以来,美国 *** 当局和私人 *** 安全部门一直在警告这种黑客行为 - 他们代号为Cloudhopper。

  2018年12月,美国司法部指控两名中国公民,他们认为他们是APT10的一部分,因为这些公司涉及45家美国公司以及其他11个国家的众多公司。

  据悉,至少有九家云提供商被黑客入侵。在撰写本文时,我们现在知道三个名称--IBM,HPE和现在的Vi *** a。

  澳大利亚,加拿大,日本,新西兰,美国和英国都正式指控和谴责中国的黑客狂欢,但中国方面否认所有指控。

  【编者注1】以上报道也并非子虚乌有,Recorded Future公司发布了详细的取证分析报告,对所谓“中国黑客”所使用的入侵工具、驻留程序等进行了反汇编解析,对程序所使用的加密密钥、命令和控制结构进行了分析和发布,详细报告可以通过下面的链接下载学习和研究:

  

  【编者注2】以美国为首的西方所谓文明国家,正在全方位对中国施压,无所不用其极,编造谎言。在 *** 世界, *** 的边界在哪里?

  对于明日之后这款游戏他在刚刚上线的时候就是存在了很多的问题,那就是当大家在刚进入游戏的时候,你就会发现这款游戏的服务器就像是炸了一样,几乎根本进不去,如果你想要进去的话,只能等待很长的时间。

  而在现如今这款游戏已经修复了,所以你在进入游戏的时候你就会发现这款游戏想要进去,真的是非常的容易,几乎急需要几秒钟就可以了,也正是因为这样,所以现如今这款游戏成为特别受欢迎的游戏之一。

  不过大家在这款游戏中虽然说感觉特别的好玩,但同时发现了几个无法解释的秘密,接下来我带大家一起去了解一下这些无法解释的秘密分别是什么,而见过这些秘密的小伙伴真的是少之又少。首先就是墙可以卡住。

  说起墙可以卡住东西,这种做法其实在游戏中是非常容易见到的,那就是当你在游戏中,假如说你碰见一只狗熊,而你将这只狗熊关在房屋里面,这时候你就会发现,这只狗熊本来想要出来,可是不知道怎么地,竟然从墙中探出了一个身体来,而这个身体是可以在外面看到了,所以说在这款游戏中枪这种物体竟然是可以穿透的,虽然说穿透的方式有点独特,但其实真的是可以卡住东西的。

  也正是因为这样,很多玩家难以理解这个秘密,毕竟墙的坚硬程度真的是相当的可怕,为什么在这款游戏中竟然可以穿透动物的身体而且还不会伤害动物,所以没有人知道。其次就是瞬间移动的玩家。

  自序 :

  逝水流年;人生如梦。

  “45后”的人们,70左右了。中国的老话,人生70古来稀;五六十岁的人,别人都管叫大爷大妈了,何况70左右的老头老太太。

  然而,国情不同,待遇不同;若按联合国的最新规定,70左右的还是中年人。在美国,70左右的人,还能竟选总统。 在中国,周朝也有先例,《东周列国志》上,就有周武王聘72Y姜子牙为帅的故事。

  不过,70左右确实是人生的重要关口,自古就有“73、84,闫王不请自己去”的民间传说。

  而70至79岁确是一个生理病理危险期,这是流行病统计学的大数据,不意味着每个人都如此。个体差异嘛。

  这段时期,是各种中老年病的多发时段,易出现高血脂、动脉硬化、高血压、糖尿病等病症。 进入80岁以后,这些疾病反而会出现下降趋势,机体和精神健康有可能恢复到60至69岁年龄段的水平。

  因此,中老年人的健康状态并不是随着年龄的升高而线性地减弱的。

  70至79岁这个年龄段在(中)老年医学上被称为危险年龄段;但也有人说,这个危险年龄段应该是60至69岁。笔者本文採用的标准是70~79这个大数据说法。

  养生专家说,中老年人欲获高寿,这个年龄段的保健至关重要。

  在这个年龄段的中老年人,尤其要注意生活规律,多散步、多晒太阳、多呼吸新鲜空气,戒烟少酒,尤其不能过于疲劳;

  另外,以高蛋白、多维生素、少脂肪的“清淡”饮食为原则。但是,话又说回来,饮食也不能一味的“清淡”。更佳办法是因人而异,想吃啥就吃啥,少吃多餐,每次食量恰当,不能暴饮暴食。

  还有,定期体检,定期测血压、血糖、血脂等指标,随时随地要关注自己的健康状态。 总之,随时调整自已的情绪,心态决定健康与长寿。

  亲,您多大岁数了?

  这里,笔者询问的是您的社会年龄、生理年龄、健康(病理)年龄。

  切记,一定要天天愉快哈!

  祝福“45后”的人们:

  多福多寿,长命百岁。

  这里是微信公众平台《草堂论坛》

  微信号shsul20150725。

  关注公众号,小程序,企业微信。

  海兰咨询,随时为您服务。

  农历新年初三。

  20190207。

  媒体、娱乐及信息

  阅读全文大约需要三分钟

  黑客攻击冲动的用户。

  作者:Caroline Brooks,密歇根州立大学

  新的研究深入探讨了可能会使你成为木马、病毒和恶意软件的受害者的显性与隐性的行为。

  密歇根州立大学刑事司法教授、该研究的主要作者Tomas Holt认为:“表现出自我控制能力低下迹象的人们更容易受到恶意软件的攻击。个人的特性对于研究 *** 犯罪的持续性起到重要作用,尤其是个人的冲动以及他们在网上从事的有着极大风险的活动。”

  Holt解释道,低下的个人控制能力以多种形式出现。这样的人会表现出近视、粗心大意、能动手绝不动口、以及接受不了延迟享乐等特性。

  “在犯罪学中,自控力是一个被广泛关注的概念,因为其常常与是否犯罪相关。”Holt说,“但是我们发现低自控力与受害也存在相关性;具有这种特性的人们会把自己置于与那些拥有犯罪动机的人们相似的处境之中。”

  这项研究发表在Social Science Computer Review上,它评估了近6000名调察问卷参与者的自控力和他们计算机上的恶意软件和感染的行为。为了衡量受害程度,Holt和他的队伍询问了参与者们一系列关于他们在特定情境下可能出现的反应的问题。而在计算机行为方面,他们则询问其电脑存在的处理速度缓慢、容易崩溃、意外弹窗以及网页浏览器上的主页更改等情况。

  “ *** 上无时无刻不存在风险。”Holt说道,“在 *** 空间里,自控力低下的群体总是有着各种机会得到他们想要的东西,不论是盗版电影还是交易品。”

  人们在网上的一言一行都十分重要,这些行为因素与风险完全相关。

  正如Holt所言,黑客和 *** 犯罪分子知道那些自控能力低下的群体热衷于在网上搜索他们想要的东西(或者说是他们认为他们想要的东西),他们通过这样的逻辑判断哪些网站、文件或者 *** 作为自己的攻击对象。

  Holt认为,理解自我控制的心理和电脑易感染恶意软件人群(以及易传播恶意软件人群)对打击 *** 犯罪十分重要。人们在网上的一言一行都十分重要,这些行为因素与风险完全相关。

  Holt介绍道,计算机科学家从技术的角度进行恶意软件预防和教育,他们通过寻找新的软件解决方案来阻绝感染或者向他们传递感染相关信息。这很重要,但是从心理的角度来处理低自制力和冲动行为也同样关键。

  “我们不会接触 *** 犯罪的人的方面,而是聚焦于从技术的角度来解决它,”他说,“但是如果我们能从人的角度来理解,我们也许能为政策和干预战略找到更有效的解决方案。”

  Holt希望帮助打破计算机和社会科学之间的隔阂,从整体上来思考如何打击 *** 犯罪。

  “如果我们能够识别风险因素,我们就可以与技术领域合作、制定战略、降低感染的风险因素。”Holt说道。

  “这是我们面临的难题险题,因此,如果我们可以从两个方面出发,我们可以确定风险因素和技术战略,以找到改善针对每个人的保护和解决方案。”

  效果如下图

  怎样实现呢?简单粗暴看代码

  css部分

  HTML部分

  javascript

  动手试一下,更多前端内容请点击关注

  欢迎点赞 评论转发

  问题:怎样才能每天都收到这类文章!

  谷歌自行车开始预售,别说问你还想不想骑自行车了,我想你连汽车都不想开了,很多网友表示,这样的黑科技出现他们情愿买自行车,也不愿意买汽车了

  在这个黑科技常出不穷的年代,科技的飞跃已经无法预测!

  很多网友表示,这样的黑科技出现他们情愿买自行车,也不愿意买汽车了,若汽车行业受到了冲击,那么共享自行车行业受到的冲击会比汽车行业小吗?共享自行车产业是否会转型,我们拭目以待!

  一辆拥有自动导航功能,怎么推都推不倒,又能完全自动在道路上行进,帮你带孩子、遛狗——出门骑上它甚至能一手吃早餐一手敲键盘,完全不用担心出意外的无人驾驶自行车,怎么看都有点脑洞大开,所以当时吸引了很多人关注的目光,我相信很多人都已经见过这段视频了。

  那么,到底这辆自行车离我们有多远?我们又需要用多长时间来实现它呢?看看最近的科技动态。

  怎么推都推不倒的自行车,这并非不可能

  如大家所知道的,正常情况下,自行车动力系统由导向系统(车把手、前叉等部分)、驱动系统(脚蹬、链条、牙盘等部分)和制动系统(车闸)三部分组成。

  而谷歌无人驾驶自行车,在这三个方面都做了不小的升级,尽管外观看起来还是一辆普通的自行车,但每一方面都和现在的自行车有所区别。先来看看它的导向系统,它能自动平衡而不需要脚撑或者人来扶着,像这样

  或者这样~

  自动平衡的概念看起来神奇,可实际上,这种「不管你怎么推,甚至不怀好意踹上一脚也不会倒地」的技术不但是可以实现,而且是我们已经能见到的技术。在过去这半年时间里,有两家汽车大厂都为我们在摩托车上展示过这样的技术,先来看看吧!

  首先是,宝马在自己的「BMW Motorrad VISION NEXT 100」发布会上,向大家展示了关于摩托车的未来概念,不但想要用类似 HoloLens 的智能眼镜代替头盔,更是将摩托车不会倒下的功能加入其中。现场展示的时候吸引了很多人的目光。

  这是今年一月,本田展示的,搭载了 Riding Assist 平衡技术的摩托车。看起来,它已经可以实现非常不错的自平衡技术了。

  这项平衡技术的核心包括了重新设计的摩托车轮胎,加上运动时的特殊算法。如你所见,它还会针对不同情况而进行变化以调整平衡性能。

  所以,将这种自平衡技术运用在同样作为两轮交通工具的自行车上也并非「痴人说梦」,摩托车上出现了,自行车还会远吗?

  自动躲闪车辆,秀出的可不是一般的黑科技

  说完了导向系统,我们来说说驱动系统。视频中我们看到的是谷歌在自行车前方安装了一个球形摄像头,用来进行图像识别以及导航。

  甚至是辨别红绿灯的功能

  这些具有相当「智能度」的动作涉及到的内容很多。不但让人觉得惊奇,更有一种似曾相识的感觉,因为相比自行车,实际上在汽车领域一直都在努力实现这些目标。如果你对自动驾驶技术稍作了解,会知道自动驾驶技术从 L1 到 L5 一共分成 5 个不同等级,简单来讲如下(内容来自 *** ):

  L1:驾驶人操作车辆,但车辆个别设置能帮助行车,如电子稳定系统(ESP)或防锁死刹车系统(ABS)

  L2:驾驶人主要控制车辆,但能系统实现自动化,减少操作负担,如自动式定速巡航(ACC)结合自动跟车和车道偏离提示

  L3:驾驶人需随时准备控制车辆,在一些场景下通过自动驾驶辅助控制,比如在跟车时可以免于操作,但当汽车侦测到需要驾驶人操控时,会立即回归到让驾驶人接管操作的状态

  L4:驾驶人可在允许条件下让车完整自驾,车辆自行进行包含转弯、换车道与加速等工作。除极端天气或者道路模糊不清的情况,车辆都能完全自助运作,包括在有旁观下的无人停车功能。

  L5:驾驶人不必再车内,任何时刻都不会控制到车辆,车辆能自行启动驾驶装置,全程也不须开在设计好的路况,就可以执行所有与安全有关之重要功能,包括没有人在车上时的情形,完全不需受驾驶意志所控,可以自行决策。

  简单比照你就能发现,想要实现谷歌这辆无人驾驶自行车的功能至少需要达到 L4 等级的自动驾驶等级,这还是需要人旁观的情况下,想到达这个等级,自动驾驶技术需要的基础条件远非安装一个摄像头那样简单,除了视觉识别、自动导航、定速巡航之外,还需要一定的人工智能自行判断道路情况。

  这种级别的安全性距离我们还有些遥远

  welcome

  以国内百度自动驾驶汽车目前 L3 等级的技术基础来说,就需要「Camera+Radar+HDMap(高精地图)」多种结合的方案才能实现,更不要说自行车上只有一个多角度摄像头了。

  仅仅只有摄像头恐怕还不够

  所以,谷歌在这次视频中展现的这个最让人激动的技术恰好是目前阶段最最难以变成现实的技术,不但需要在自行车上添加摄像头,激光雷达,计算机硬件都必不可少,远远不是视频中展示的自行车那样简单。

  所以,要发明出能针对各种环境行动的「全自动驾驶」自行车,在目前看来是件「一步登天」的事情。但是,它并非完全不可能!

  假设我们只是在小范围场所(比如学校、公园)中,道路环境不会那样复杂,同时也不需要极高的速度,那么地图和视觉识别等数据就不再是沉重的负担,在学校里,「一键叫自行车」真的不会是梦想~

  这时,对自行车来说,加上导航装置和小型计算机,同时为它改装成电动+人力的混动模式,再为校园中添加供停靠和充电的充电桩,那么它确实非常有可能成为现实生活中出现的交通工具。

  当黑科技成为自行车的一部分

  自 1790 年法国人西夫拉克研制出靠两脚蹬地驱动,但没有方向控制的自行车雏形以来,自行车,这个依靠人力驱动的机械装置始终是更受欢迎的出行工具之一。

  它的轻便、自如,以及更偏向自然的方式始终是人们喜欢它的原因,而不论其外形、材料、结构设计等方面怎样迭代进步,它终究是依靠人力驱动的传统工具,百年来几乎没有发生过变化。

  对自行车,我们实在是太熟悉而忘记了它变化如此之慢。从某个角度来说,谷歌无人驾驶自行车带给我们了一些新的想象,它可能带有一些人们对于未来汽车的幻想成分,但又何尝不是在寻找自行车的变化之道,突破人们对于它的认知呢?

  尽管谷歌的这款自行车在现在还不能彻底实现,但一些技术离我们真的并非遥不可及。一但渐进式的升级出现,将令它展现出新的姿态,看看现在大街小巷的共享单车吧,想象一下,如果加入进这些新技术,将会变成怎样便利的存在呢,这样一想,还真是让人期待的事情呢。

  谷歌这样做,共享自行车产业是否会受其影响或将转型,我们拭目以待!

  如果您喜欢此篇文章,记得发到给好朋友哦!分享智慧,好运常伴您!

  (放到你圈子里,朋友们会感激您的好文分享)

  温馨提示

  如果你喜欢本文,请分享到朋友圈,想要获得更多信息,请关注我。

  转载是一种动力 分享是一种美德

  德国人工智能技术发展现状和未来趋势

  人工智能是介于机械工程和计算机科学、心理学之间的领域。要了解人工智能,必须要了解机械工程学与语言学,它是一个跨学科领域的研究

  跨学科的人工智能

  DFKI研发领先全球

  人工智能研发面临的问题

  人工智能优势明显

  文件处理

  处理csv文件

  如下为csv文件内容

  用户名,密码,重复密码,邮箱,错误提示信息testuser1,123456,654321,两次密码输入不一致。

  使用python自带csv库进行处理

  importcsv

  importos

  datafile=os.path.join('/Users/zack/Desktop/2018-08-25/zuoye','data.csv')

  # print(datafile)

  defread_csv():

  csvdata=[]

  withopen(datafile,encoding="utf-8")asf:

  print("f=",f)

  csvreadrer=csv.reader(f)

  print("csvreader==",csvreadrer)

  next(csvreadrer)

  forrowincsvreadrer:

  csvdata.append(row)

  returncsvdata

  通过csv文件中定义的内容进行解析处理

  fromseleniumimportwebdriver

  fromselenium.webdriver.common.byimportBy

  fromparse_csvimportread_csv

  rf=read_csv()

  defregister(username,passwd,repasswd,email,tip_message):

  driver=webdriver.Chrome()

  driver.maximize_window()

  driver.implicitly_wait(30)

  driver.get("")

  driver.find_element(By.ID,"loginname").send_keys(username)

  driver.find_element(By.ID,"pass").send_keys(passwd)

  driver.find_element(By.ID,'re_pass').send_keys(repasswd)

  driver.find_element(By.ID,'email').send_keys(email)

  driver.find_element(By.CSS_SELECTOR,".span-primary").click()

  # get Tip message Textresult_text=driver.find_element(By.TAG_NAME,'strong').textprint(result_text)

  defrun():

  forrowinrf:

  register(row[],row[1],row[2],row[3],row[4])

  defmain():

  run()

  if__name__=='__main__':

  main()

  日志处理

  python自带日志记录模块,参考如下链接

  

  

  定位文件get_logging.py

  importlogging

  deff_w():

  # create logger with 'spam_application'logger=logging.getLogger('CNode_club')

  logger.setLevel(logging.DEBUG)

  # create file handler which logs even debug messagesfh=logging.FileHandler('spam.log')

  fh.setLevel(logging.DEBUG)

  # create console handler with a higher log level# ch=logging.StreamHandler()# ch.setLevel(logging.ERROR)# create formatter and add it to the handlersformatter=logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')

  fh.setFormatter(formatter)

  # ch.setFormatter(formatter)# add the handlers to the loggerlogger.addHandler(fh)

  # logger.addHandler(ch)returnlogger

  将日志功能记录到登陆操作中

  register.py

  fromseleniumimportwebdriver

  fromselenium.webdriver.common.byimportBy

  fromparse_csvimportread_csv

  log=f_w()

  defregister(username,passwd,repasswd,email,tip_message):

  driver=webdriver.Chrome()

  driver.maximize_window()

  driver.implicitly_wait(30)

  driver.get("")

  driver.find_element(By.ID,"loginname").send_keys(username)

  log.info('输入用户名:'+username)

  # write_logging({'level':'DEBUG', 'action': '输入文本', 'name1': username})driver.find_element(By.ID,"pass").send_keys(passwd)

  driver.find_element(By.ID,'re_pass').send_keys(repasswd)

  driver.find_element(By.ID,'email').send_keys(email)

  driver.find_element(By.CSS_SELECTOR,".span-primary").click()

  # get Tip message Textresult_text=driver.find_element(By.TAG_NAME,'strong').textprint(result_text)

  defrun():

  forrowinrf:

  register(row[],row[1],row[2],row[3],row[4])

  defmain():

  run()

  if__name__=='__main__':

  main()

  test_register.py

  importunittest

  fromregisterimportregister

  fromget_loggingimportf_w

  fromparse_csvimportread_csv

  log=f_w()

  classTestRegister(unittest.TestCase):

  deftest_register(self):

  # rows=read_csv()# for row in rows:text=register('testuser1','aaaa','1212',"")

  self.assertEqual(text,"两次密码输入不一致。")

  log.info('验证成功:'+text)

  if__name__=='__main__':

  unittest.main()

  定义TestCase

  importunittest

  classTestStringMethods(unittest.TestCase):

  # testcase的执行顺序 0-9 A-Z a-z@clas *** ethoddefsetUpClass(cls):

  print("befor all case ....")

  defsetUp(self):

  print("before every test case exec ......")

  deftearDown(self):

  print('after every test case exec ......')

  deftesta_upper(self):

  print("testaaaa")

  self.assertEqual('foo'.upper(),'FOO',"不相等")

  deftestA_isupper(self):

  self.assertTrue('FO8O'.isupper())

  self.assertFalse('Foo'.isupper())

  deftest1_split(self):

  s='hello world'self.assertEqual(s.split(), ['hello','world'])

  # check that s.split fails when the separator is not a stringwithself.assertRaises(TypeError):

  s.split(2)

  @clas *** ethoddeftearDownClass(cls):

  print("after all testcase....")

  if__name__=='__main__':

  unittest.main()

  all_test.py

  importunittest

  fromtest_case01importTestStringMethods01

  fromtest_case02importTestStringMethods02

  fromtest_case03importTestStringMethods03

  test_cases=(TestStringMethods01,TestStringMethods02,TestStringMethods03)

  defload_tests(loader,tests):

  suite=unittest.TestSuite()

  fortest_classintest_cases:

  tests=loader.loadTestsFromTestCase(test_class)

  suite.addTests(tests)

  returnsuite

  loader=unittest.TestLoader()

  suite=load_tests(loader,test_cases)

  if__name__=='__main__':

  runner=unittest.TextTestRunner()

  runner.run(suite)

  # unittest.runner

  load test

  importunittest

  fromtest_case01importTestStringMethods01

  fromtest_case02importTestStringMethods02

  fromtest_case03importTestStringMethods03

  test_cases=(TestStringMethods01,TestStringMethods02,TestStringMethods03)

  defgetsuit():

  suite=unittest.TestSuite()

  suite.addTest(TestStringMethods01('test1_01split'))

  suite.addTest(TestStringMethods02('testA_02isupper'))

  returnsuite

  defload_tests(loader,tests):

  suite=unittest.TestSuite()

  fortest_classintest_cases:

  tests=loader.loadTestsFromTestCase(test_class)

  suite.addTests(tests)

  returnsuite

  loader=unittest.TestLoader()

  suite=load_tests(loader,test_cases)

  if__name__=='__main__':

  runner=unittest.TextTestRunner()

  s=getsuit()

  runner.run(s)

  # unittest.runner

  discover

  importunittest

  fromunittestimportTestLoader,TestSuite

  loader=TestLoader()

  tests=loader.discover('',pattern='test01.py')

  t=TestSuite()

  t.addTests(tests)

  runner=unittest.TextTestRunner()

  runner.run(t)

  了解更多哦哟,抓出轨,测试更有一山高?拼多多出现超级大bug,损失200亿,这个锅谁来背?基于Python语言的自动化测试

  中原愚人的第16篇区块链行业思考

  共识机制是区块链的基础和底层逻辑,产生共识的人群需要找一个工具载体来沟通,理解这点,区块链的社区运营建设就很简单 ;很多社区运营人员由于没有理解透区块链的本质,往往被一些伪概念迷惑,进而出现一些违操作,比如通过电报做大群,花精力做群裂变,放大群数量,比如把群活跃度作为工作目标,比如使用机器人,等等,既浪费了运营资源,也耽误了社区发展。本文把常见伪概念和伪操作列出来,让从业者避免走弯路。

  “社群”适合区块链,社群可以用来培养和转化用户。此说法本末倒置。区块链建立在形成共识的社区成员基础上,形成共识的社区成员需要一个工具来承载沟通、交流,这个承载工具只是工具,可以是各种IM的群,也可以是BBS。

  培养用户忠诚度。这个看法错得非常严重。忠诚是一个中心化的词,区块链的本质是建立在共识上的社区(每个人),区块链是去中心化的,就共识而言,每个社区用户都是一个中心,因此,无从谈起培养用户忠诚度。如果一定要用忠诚这个词:

  应该是区块链项目方忠诚于社区用户,而不是反过来。

  随着越来越多的传统车企与互联网公司合作,造车新兴势力也如雨后春笋般崛起。现在提及新能源车,不少人已经将其“老年代步车”形象抛之脑后,取而代之的是“大数据”、“人工智能”等高逼格词汇。那么,当汽车与科技碰撞之后,出现了哪些实(ku)用(xuan)的黑科技呢?请跟我们往下看。

  虽然无线充电在手机等移动设备方面早就不是什么新鲜玩意儿,不过受限于成本与技术等问题,在新能源汽车领域,有所建树的只有寥寥几家。其中,宝马已宣布未来530e iPerformance车型将配备无线充电系统,且设备已处于最后的测试阶段。这套系统只需要驾驶员通过中控屏将汽车引导至充电板上方,系统激活后电流通过电磁场将电能从底座传输至车辆,省去了插线等步骤,使充电过程更加的快捷方便,充满电仅需三个半小时。

  威马EX5推出的可交互式车窗让不少人大开眼界,原来车窗不仅可以遮风挡雨,还能跟人来个亲密互动?当车主靠近车门时,车辆会自动识别到车主,而后将欢迎、行程规划、续航里程等信息投影至车窗,且隐藏式门把手自动弹出。根据威马官方公布的配置表来看,这一功能将作为创新版车型的选装配置,并于2019年正式交付。

  这款车顶相机,位置可谓相当独特,搭载1080P的高清摄像头,并支持360°旋转。车主可通过智能手机APP或车载大屏随时启动相机,进行录像与摄影,可以更便捷的分享与记录生活点滴。等等,为什么我看到这款车顶相机脑子里总会浮现出带摄像头的交警执法车...

  不少人进入ES8车内后都会被中控台上面这玩意儿吸引到,它是全球首个车载人工智能系统,基于强大的车载计算能力与云计算平台打造。用户可以直接喊出“Hi NOMI”将其唤醒,并能实现开闭天窗、操控多媒体系统等功能,与用户产生互动。不说这套实际操控起来是否方便,单说其呆萌的表情就能吸引不少年轻消费者。

  自特斯拉之后,中控台大屏似乎成了一股潮流,各大车企纷纷提升自家产品中控屏尺寸,彰显出满满的科技感。拜腾作为此种翘楚,BYTON M-Byte概念车中控台配备的贯穿式49英寸共享全面屏一时间吸睛无数。这款中控屏可以根据光照的变化调整亮度,提供人机交互、语音识别、手势控制、脸部识别等功能,为人们的日常使用提供了极大的便利。不过,法规要求、成本过高以及供应商不稳定等因素同样为其量产过程带来了不小的问题。

  作者:我爱小詹

  这是第 3 篇读者投稿文章 ,欢迎亲爱的读者们踊跃投稿哦 。

  不会英语的程序员不是好程序员 ?小詹不敢乱立 flag ,但是我知道的是程序员就喜欢自己动手干些实事 ,比如今天教大家自己动手做个有意思的项目——从历年四级英语真题中获取词频更高的 5000 个词汇 ,并进行翻译 !综合用到了爬虫 、数据分析等知识 ,亲爱的读者们不来试试吗

  程序介绍

  这是一个单词频率统计程序 ,基于python3 ,我将往年真题按照词频排序得到了四级词库 :总结出了 5000 个出现频率极高的单词 。

  自动批量收集文件中的英语单词 txt (utf-8)

  统计排序保存到本地数据库 voca.db

  翻译英文得到中文解释

  数据库文件提取得到csv表格

  在结合到大量的往年 cet-4 真题库的情况下

  本软件成为了考试必备词库

  希望大家都能轻松过四级

  工作流程

  settings.py 配置查询文档

  work.py 自动分析数据保存至voca.db数据库文件

  translate.py 自动打开数据库调用api翻译单词并保存到数据库里

  db2csv.py 将数据库文件转换成csv表格文件

  具体实现

  数据 (docx 复杂的文档结构不好用,可以在word里面以txt方式保存)

  读入文件拿到所有单词

  剔除 常用单词(is am are do……)

  计数

  数据库初始化 peewee模块

  加入单词到数据库

  翻译

  提取所有单词到csv

  收获成果啦

  翻译过程

  出现次数最多的简单词

  出现次数较少,值得一背的词

  一:为什么要用MVVM?

  为什么要用MVVM?只是因为它不会让我时常懵逼。

  每次做完项目过后,都会被自己庞大的 ViewController 代码吓坏,不管是什么 *** 请求、 *** 数据处理、跳转交互逻辑统统往 ViewController 里面塞,就算是自己写的代码,也不敢直视。我不得不思考是不是MVC模式太过落后了,毕竟它叫做 Massive View Controller,其实说 MVC 落后不太合理,说它太原始了比较合适。

  MVC 模式的历史非常的久远,它其实不过是对工程代码的一种模块化,不管是 MVVM、MVCS、还是听起来就毛骨悚然的 VIPER,都是对 MVC 标准的三个模块的继续划分,细分下去,使每个模块的功能更加的独立和单一,而最终目的都是为了提升代码的规范程度,解耦,和降低维护成本。具体用什么模式需要根据项目的需求来决定,而这里笔者就 MVVM 架构和设计,浅谈拙见。

  二:MVVM模块划分

  传统的MVC模式分为:Model、View、Controller。Model 是数据模型,有胖瘦之分,View 负责界面展示,而 Controller 就负责剩下的逻辑和业务。

  MVVM 模式多了一个 ViewModel,它的作用是为 Controller 减负,将Controller里面的逻辑(主要是弱业务逻辑)转移到自身,其实它涉及到的工作不止是这些,还包括页面展示数据的处理等。(后序章节会有具体讲解)

  我的设计是这样的:

  一个 View 对应一个 ViewModel,View 界面元素属性与 ViewModel 处理后的数据属性绑定

  Model 只是在有 *** 数据的时候需要创建,它的作用只是一个数据的中专站,也就是一个极为简介的瘦 Model

  这里弱化了 Model 的作用,而将对 *** 数据的处理的逻辑放在 ViewModel 中,也就是说,只有在有 *** 数据展示的 View 的 ViewModel 中,才会看见 Model 的影子,而处理过后的数据,将变成 ViewModel 的属性,注意一点,这些属性一定要尽量“直观”,比如能写成UIImage 就不要写成 URL

  ViewModel 和 Model 可以视情况看是否需要属性绑定

  Controller 的作用就是将主View通过与之对应的 ViewModel 初始化,然后添加到 self.view,然后就是监听跳转逻辑触发等少部分业务逻辑,当然,ViewController 的路由跳转还可以解放出来。

  注意:这里面提到的绑定,其实就是对属性的监听,当属性变化时,监听者做一些逻辑处理,由此涉及到一个框架————RAC

  三:ReactiveCocoa

  RAC是一个强大的工具,它和MVVM模式的结合使用只能用一个词形容 ——— 完美。

  当然,有些开发者不太愿意用这些东西,大概是因为他们觉得这破坏了 *** 、通知、监听、闭包等的逻辑观感。但是笔者 MVVM 搭建思路里面会涉及大量的属性绑定、事件传递,运用 RAC 能大量简化代码,使逻辑更加的清晰。

  在这之前,如果你没有用过RAC,请先移步:

  大致的了解一下RAC过后,便可以往下(^)

  四:MVVM模块具体实现

  这是要实现的界面:

  1、Model

  这里弱化了 Model,只是做为数据模型使用。只有在 View 需要显示 *** 数据的时候,对应的 ViewModel 里面才有 Model 的相关处理。

  2、ViewModel

  在实际开发当中,一个 View 对应一个 ViewModel,主 View 对应并且绑定一个主 ViewModel。

  主 ViewModel 承担了 *** 请求、点击事件协议、初始化子 ViewModel 并且给子 ViewModel 的属性赋初值; *** 请求成功返回数据过后,主 ViewModel 还需要给子 ViewModel 的属性赋予新的值。

  主 ViewModel 的观感是这样的:

  其中,RACCommand 是放 *** 请求的地方,RACSubject 相当于协议,这里用于点击事件的 *** ,而 ViewModel 下面的一个 ViewModel 属性和三个装有 ViewModel 的数组需要着重说一下。

  在iOS开发中,我们通常会自定义 View,而自定义的 View 有可能是继承自 UICollectionviewCell(UITableViewCell、UITableViewHeaderFooterView 等),当我们自定义一个 View 的时候,这个 View 不需要复用且只有一个,我们就在主 ViewModel 声明一个子 ViewModel 属性,当我们自定义一个需要复用的 cell、item、headerView 等的时候,我们就在主 ViewModel 中声明数组属性,用于储存复用的 cell、item 的 ViewModel,中心思想仍然是一个 View 对应一个 ViewModel。

  在.m文件中,对这些属性做懒加载处理,并且将 RACCommand 和 RACSubject 配置好,方便之后在需要的时候触发以及调用,代码如下:

  为了方便,我直接将以前写的一些代码贴上来了,不要被它的长度吓着了,你完全可以忽略内部实现,只需要知道,这里不过是实现了 RACCommand 和 RACSubject 以及初始化子 ViewModel。

  是的,主 ViewModel 的主要工作基本上只有这三个。

  关于属性绑定的逻辑,我将在之后讲到。

  我们先来看看子 ViweModel 的观感:

  我没有贴.m里面的代码,因为里面没有代码(嘿嘿)。

  接下来说说,为什么我设计的子 ViewModel 只有几个单一的属性,而主 ViewModel 却有如此多的逻辑。

  首先,我们来看一看 ViewModel 的概念,Model 是模型,所以 ViewModel 就是视图的模型。而在传统的 MVC 中,瘦 Model 叫做数据模型,其实瘦 Model 叫做 DataModel 更为合适;而胖 Model 只是将 *** 请求的逻辑、 *** 数据处理的逻辑写在了里面,方便于 View 更加便捷的展示数据,所以,胖 Model 的功能和 ViewModel 大同小异,笔者把它叫做“少根筋的 ViewModel”。

  这么一想,我们似乎应该将 *** 数据处理的逻辑放在子 ViewModel 中,来为主 ViewModel 减负。

  笔者也想这么做。

  但是有个问题,举个简单的例子,比如这个需求:

  一般的思路是自定义一个 CollectionviewCell 和一个 ViewModel,因为它们的布局是一样的,我们需要在主 ViewModel 中声明一个数组属性,然后放入两个 ViewModel,分别对应两个 Cell。

  image 和 title 这种静态数据我们可以在主ViewModel中为这两个子ViewModel赋值,而下方的具体额度和数量来自 *** , *** 请求下来的数据通常是:

  我们需要把”100“转化为”100元“,”3“转化为”3个“。

  这个 *** 数据处理逻辑按正常的逻辑来说是应该放在 ViewModel 中的,但是有个问题,我们这个 collectionviewcell 是复用的,它的 ViewModel 也是同一个,而处理的数据是两个不同的字段,我们如何区分?而且不要忘了, *** 请求成功获得的数据是在主 ViewModel 中的,还涉及到传值。再按照这个思路去实现必然更为复杂,所以 *** 脆一刀切,不管是静态数据还是 *** 数据的处理,通通放在主 ViewModel 中。

  这样做虽然让主 ViewModel 任务繁重,子 ViewModel 过于轻量,但是带来的好处却很多,一一列举:

  在主 ViewModel 的懒加载中,实现对子 ViewModel 的初始化和赋予初值,在RACCommand 中 *** 请求成功过后,主 ViewModel 需要再次给子 ViewModel 赋值。赋值条理清晰,两个模块。

  子 ViewModel 只放其对应的 View 需要的数据属性,作用相当于 Model,但是比 Model 更加灵活,因为如果该 View 内部有着一些点击事件等,我们同样可以在子 ViewModel 中添加RACSubject(或者协议)等,子 ViewModel 的灵活性很高。

  不管是静态数据还是 *** 数据统一处理,所有子 ViewModel 的初始化和属性赋值放在一块儿,所有 *** 请求放在一块儿,所有 RACSubject 放在一块儿,结构更加清晰,维护方便。

  3、View

  之前讲到,ViewModel 和 Model 交互的唯一场景是有 *** 请求数据需要展示的情况,而 View 和 ViewModel 却是一一对应,绑不绑定需要视情况而定。下面详细介绍。

  自定义View这里分两种情况,分别处理:

  (1)非继承有复用机制的 View(不是继承 UICollectionviewCell 等)

  这里以界面的主 View 为例

  .h

  该 View 需要和 ViewModel 绑定,实现相应的逻辑和触发事件,并且保证 ViewModel 的唯一性。

  .m

  这里就不贴代码了,反正 View 与 ViewModel 的交互无非就是触发 *** 请求、触发点击事件、将 ViewModel 的数据属性展示在界面上。

  (2)继承有复用机制的 View(UICollectionviewCell 等)

  最值得注意的地方就是 cell、item 的复用机制问题了。

  我们在自定义这些 cell、item 的时候,并不能绑定相应的 ViewModel,因为它的复用原理,将会出现多个 cell(item)的 ViewModel 一模一样,在这里,笔者使用了如下的解决方案:

  首先,在自定义的 cell(item).h 中声明一个 ViewModel 属性。

  然后,在该属性的setter *** 中给该cell的界面元素赋值:

  ps:这里再次看到RAC()和RACObserve()这两个宏,这是属性绑定,如果你不懂,可以先不用管,在后面我会讲解一下我的属性绑定思路,包括不使用 ReactiveCocoa 达到同样的效果。

  重写setter的作用大家应该知道吧,就是在 collectionView 的协议 *** 中写到:

  的时候,能够执行到该setter *** 中,改变该cell的布局。

  好吧,这就是精髓,废话不说了。

  想了一下,还是贴上主 View 的 .m 代码吧:

  4、Controller

  这家伙已经解放了。

  是不是非常清爽,清爽得甚至怀疑它的存在感了(_)。

  五:附加讲述

  1、绑定思想

  我想,懂一些 RAC 的人都知道属性绑定吧,RAC(,)和 RACObserve(,),这是最常用的,它的作用是将 A 类的 a 属性绑定到 B 类的 b 属性上,当 A 类的 a 属性发生变化时,B 类的 b 属性会自动做出相应的处理变化。

  这样就可以解决相当多的需求了,比如:用户信息展示界面->登录界面->登录成功->回到用户信息展示界面->展示用户信息

  以往我们的做法通常是,用户信息展示界面写一个通知监听->登录成功发送通知->用户信息展示界面刷新布局

  当然,也可以用协议、闭包什么的。而使用 RAC 的属性绑定、属性联合等一系列 *** ,将会有事半功倍的效果,充分的降低了代码的耦合度,降低维护成本,思路更清晰。

  在上面这个需求中,需要这样做:

  将用户信息展示 View 的属性,比如 self.name,self.phone 等与对应的 ViewModel 中的数据绑定。在主 ViewModel 中,为该子 ViewModel 初始化并赋值,用户信息展示 View 的内容就是这个初始值。当主 ViewModel *** 请求成功过后,再一次给该子 ViewModel 赋值,用户信息展示界面就能展示相应的数据了。

  而且,我们还可以做得更好,就像我以上的代码里面做的),将 View 的展示内容与 ViewModel 的属性绑定,将 ViewModel 的属性与 Model 的属性绑定,看个图吧:

  只要 Model 属性一变,传递到 View 使界面元素变化,全自动无添加。有了这个东西过后,以后 reloadData 这个 *** 可能见得就比较少了。

  2、整体逻辑梳理

  进入 ViewController,懒加载初始化主 View(调用-initWithViewMdoel *** ,保证主 ViewModel 唯一性),懒加载初始化主ViewModel。

  进入主 ViewModel,初始化配置 *** 请求、点击逻辑、初始化各个子 ViewModel。

  进入主 View,通过主 ViewModel 初始化,调用 ViewModel 中的对应逻辑和对应子ViewModel 展示数据。

  ViewController 与 ViewModel 的交互主要是跳转逻辑等。

  3、创建自己的架构

  其实在任何项目中,如果某一个模块代码量太大,我们完全可以自己进行代码分离,只要遵循一定的规则(当然这是自己定义的规则),最终的目的都是让功能和业务细化,分类。

  这相当于在沙滩上抓一把沙,最开始我们将石头和沙子分开,但是后来,发现沙子也有大有小,于是我们又按照沙子的大小分成两部分,再后来发现沙子颜色太多,我们又把不同颜色的沙子分开……

  在 MVVM 模式中,完全可以把 ViewModel 的 *** 请求逻辑提出来,叫做 NetworkingCenter;还可以把 ViewModel 中的点击等各种监听事件提出来,叫做 ActionCenter;还可以把界面展示的 View 的各种配置(比如在 tableView 协议 *** 中的写的数据)提出来,叫做 UserInterfaceConfigDataCenter;如果项目中需要处理的 *** 请求数据很多,我们可以将数据处理逻辑提出来,叫做 DataPrecessCenter ……

  记住一句话:万变不离其宗。

  六:结语

  移动端的架构一直都是千变万化,没有万能的架构,只有万能的程序员,根据产品的需求选择相应的架构才是正确的做法。MVC 固然古老,但是在小型项目却依然实用;MVVM 虽然很强大,但是在有时候还是会增加代码量;VIPER 看似高大上,实际上应用场景比较少。在实际开发中,不拘泥于某种架构或者将它们结合起来用才是正确的做法。

  作者:indulge_in

  链接:

  ---END---

  恭贺新春

  STEP 7-Micro_WIN *** ART V2.0

  链接:

  密码:0xnj

  恭贺新春

  台达B系列触摸屏编程软件-ScrEdit 2.00.23

  链接:

  密码:u5xk

  恭贺新春

  WPLsoft软件

  链接:

  密码:9dl3

  大家好,继续上一期的话题,在上一期的图文中,MJ君大概介绍了比特币与区块链之间的关系(没有看过的小伙伴可以在我的主页翻),今天给大家着重介绍一下区块链的工作原理。

  区块链艺术图

  小编给大家打个比方:假如有小明,小红,张三李四四个人

  形状没特殊含义 只为了区分

  他们之间互相在在使用比特币转账或者收钱

  几个人之间会互相交易

  在他们互相交易的过程里,会产生一个概念“账单”,比特币系统的账单不是传统意义上的账单,当在比特币 *** 的人收到或转出比特币时,他会把这个消息广播给所有人。例如小明收到小红1块比特币,小明会把这个消息同时广播给小红,张三,李四。这样一来,理论上大家手上都会有一份账单。

  账单

  正如你使用信用卡只会使用而不会了解它内部发生的事一样,你不会去参与记账,但是他却需要有人为这些交易进行记账,这时候就有了所谓的矿工了。矿工其实就是为交易记录打包的人,他们每打完一个包就会收到相应的比特币奖励。那么前面说了,每个人(矿工)都会收到交易记录,而因为 *** 延迟效应,每个人收到账单上面的交易顺序都有可能不一样,这时候就要“工作量证明了”。

  小编会在下一期中介绍“工作量证明”。

  谷歌近日为 Chrome 推出了一个新扩展,能够自动检查用户的密码是否安全。尽管早有第三方开发者提供类似的功能,但官方的介入,显然更加可靠一些。简而言之,在安装该扩展之后,它会检查用户的所有登录信息,将凭证与已泄露的数据库想匹配,然后给出密码是否安全的提示。

  谷歌表示,该功能支持全美“大多数”站点。匹配数据库中包含了大约 40 亿组用户名和密码,如果不幸撞到,会及时向用户发出警告。

  密码泄露确实不幸,尤其是那些在各个服务平台上使用唯一用户名或密码的用户。

  即便某网站曝出了数据泄露,很多人也不会修改所有其它网站的密码。

  需要指出的是,在将客户端密码发送至匹配服务器之前,Chrome 会将数据进行哈希加密处理。

  谷歌表示,鉴于密码检查依赖于机密的信息,所以该公司非常重视加密安全,确保无人能够查询用户的数据。

  数据库中的密码以散列和加密的形式存储,且生成的有关的任何警告,都是都完全在用户的计算机本地完成的。

  在谷歌之前,还有 1Password 等强大的密码管理器提供了类似的服务(集成 Watchtower,可将用户密码与 Have I Been Pwned 的泄露数据库作比较)。

  好处是,谷歌的扩展程序是免费的。如果您发现其中一个站点的密码被泄露,就可以借助 Chrome 内置的密码生成器,来生成一个新的密码。

  当然, *** 信息安全是一场永不停止的攻防战。即便运用了如上措施(加上双因素认证),也无法保证万无一失(有其局限性)。

  像 WebAuthn 这样的标准,就强制要求采用硬件令牌来替代密码。它看起来很有前景,但目前只有极少的网站支持该表组合呢,因此未能真正普及开来。

  有鉴于此,我们还是只能重复已有的建议 —— 使用靠谱的密码管理器、为每个站点创建唯一的密码、在听到数据泄露的之一时间修改任何受影响的网站服务密码、并适当启用双因素认证。

  更多资讯

   美议员致信苹果 质询有关FaceTime群组通话的严重漏洞

  

   谷歌警告:隐私惯例更改或将对公司业务产生不利影响

  

   Mozilla期望Firefox Fission项目能瓦解Spectre漏洞攻击

  

   Enox儿童智能手表存在严重隐私安全问题 欧盟下令全面召回

  

  (信息来源于 *** ,安华金和搜集整理)

  在 Linux 中创建用户账号时,设置用户密码是一件基本的事情。

  -- Vinoth Kumar

  在 Linux 中创建用户账号时,设置用户密码是一件基本的事情。每个人都使用 命令跟上用户名,比如 来为用户设置密码。

  确保你一定要设置一个难以猜测的密码,这可以帮助你使系统更安全。我的意思是,密码应该是字母、符号和数字的组合。此外,出于安全原因,我建议你至少每月更改一次密码。

  当你使用 命令时,它会要求你输入两次密码来设置。这是一种设置用户密码的原生 *** 。

  如果你不想两次更新密码,并希望以不同的方式进行更新,怎么办呢?当然,这可以的,有可能做到。

  如果你是 Linux 管理员,你可能已经多次问过下面的问题。你可能、也可能没有得到这些问题的答案。

  无论如何,不要担心,我们会回答你所有的问题。

   如何用一条命令更改用户密码?

   如何在 Linux 中为多个用户更改为相同的密码?

   如何在 Linux 中更改多个用户的密码?

   如何在 Linux 中为多个用户更改为不同的密码?

   如何在多个 Linux 服务器中更改用户的密码?

   如何在多个 Linux 服务器中更改多个用户的密码?

   *** -1:使用 passwd 命令

  命令是在 Linux 中为用户设置、更改密码的标准 *** 。以下是标准 *** 。

  如果希望在一条命令中设置或更改密码,运行以下命令。它允许用户在一条命令中更新密码。

   *** -2:使用 chpasswd 命令

  是另一个命令,允许我们为 Linux 中的用户设置、更改密码。如果希望在一条命令中使用 命令更改用户密码,用以下格式。

   *** -3:如何为多个用户设置不同的密码

  如果你要为 Linux 中的多个用户设置、更改密码,并且使用不同的密码,使用以下脚本。

  为此,首先我们需要使用以下命令获取用户列表。下面的命令将列出拥有 目录的用户,并将输出重定向到 文件。

  使用 命令列出用户。如果你不想重置特定用户的密码,那么从列表中移除该用户。

  创建以下 shell 小脚本来实现此目的。

  给 文件设置可执行权限。

  最后运行脚本来实现这一目标。

   *** -4:如何为多个用户设置相同的密码

  如果要在 Linux 中为多个用户设置、更改相同的密码,使用以下脚本。

   *** -5:如何在多个服务器中更改用户密码

  如果希望更改多个服务器中的用户密码,使用以下脚本。在本例中,我们将更改 用户的密码,确保你必须提供你希望更新密码的用户名而不是我们的用户名。

  确保你必须将服务器列表保存在 文件中,每个服务器应该在单独一行中。

  你将得到与我们类似的输出。

   *** -6:如何使用 pssh 命令更改多个服务器中的用户密码

  是一个在多个主机上并行执行 ssh 连接的程序。它提供了一些特性,例如向所有进程发送输入,向 ssh 传递密码,将输出保存到文件以及超时处理。导航到以下链接以了解关于PSSH 命令

  [1]

  的更多信息。

  你将获得与我们类似的输出。

   *** -7:如何使用 chpasswd 命令更改多个服务器中的用户密码

  或者,我们可以使用 命令更新多个服务器中的用户密码。

   *** -8:如何使用 chpasswd 命令在 Linux 服务器中更改多个用户的密码

  为此,首先创建一个文件,以下面的格式更新用户名和密码。在本例中,我创建了一个名为 的文件。

  参考下面的详细信息。

  创建下面的 shell 小脚本来实现这一点。

  via:

  作者:Vinoth Kumar

  [3]

  选题:lujun9972译者:MjSeven校对:wxy

  许多流行的iOS软件会录制用户的屏幕操控过程,屏幕录制过程并未获得苹果设备用户的同意。

  腾讯科技讯 最近,苹果FaceTime视频聊天工具发生了“窃听”安全丑闻,甚至引发了美国国会的关注。据外媒最新消息,iOS再次出现了安全问题,据一份新的报告显示,许多流行的iOS软件会录制用户的屏幕操控过程,屏幕录制过程并未获得苹果设备用户的同意。 根据科技媒体TechCrunch的调查,数据分析公司Glas *** ox和其他类似公司,会让一些iOS APP开发客户在各自的应用程序中嵌入所谓的“会话重放”技术(通过名为“Glas *** ox SDK”的开发工具)。 这些工具捕获屏幕截图和用户交互过程,包括屏幕上的点击和某些情况下的键盘操控,这些内容将发送回应用程序开发人员或Glas *** ox服务器进行进一步检查。 报告说,虽然不像iOS 12内置的支持视频的屏幕录制功能那样精巧,但会话重播技术实际上是在关键时刻截屏应用程序的用户界面,以确定它是否按设计运行。 Glas *** ox的一位发言人告诉科技媒体称:“Glas *** ox具有以可视格式重建移动应用程序视图的独特能力,这是另一种分析视图,Glas *** ox SDK只能与我们的客户本地应用程序交互,在技术上不能打破应用程序的边界。更具体地说,当键盘覆盖显示在应用程序之上时,Glas *** ox无法访问它。” Glas *** ox的客户包括像AbercrombieFitch这样的大公司和姐妹品牌Hollister、Hotels.com、Expedia、AirCanada和新加坡航空公司。 虽然用户监控并不是什么新鲜事,而且在许多情况下都应该这样做,但是对会话重放的错误处理可能会导致敏感信息的泄漏。 TechCrunch援引一份报告指出,加拿大航空公司的应用程序被发现发送了包含护照和信用卡号码的会话重播数据。这可能是个问题,因为一些公司选择将应用程序数据直接发送到Glas *** ox的云服务,而不是自己的服务器。 科技媒体研究发现,发送到Glas *** ox的数据“大部分是模糊的”,尽管一些屏幕截图包含了被屏蔽的电子邮件地址和邮政编码。据悉,这一研究使用了中间人软件来监控从目标应用程序发送的数据。 在上面列出的应用程序中,AbercrombieFitch、Hollister和新加坡航空公司将会话重播数据传递给Glas *** ox,而Hotels.com和Expedia则在各自的服务器上屏蔽数据。 此外,媒体调查发现,被调查的应用程序都没有在各自的隐私政策中明确表示Glas *** ox技术被用来记录用户的屏幕。 由于公司并未在苹果规定的信息披露中提及用户监控,而且Glas *** ox本身也缺乏自己的要求,最终用户基本上不知道自己的行为正受到如此密切的观察。然而,更令人担忧的是,iOS应用程序制造商在某些情况下,在没有明确用户许可和没有适当的加密协议的情况下,将敏感数据泄露给第三方。(腾讯科技审校/承曦)

  腾讯科技讯 最近,苹果FaceTime视频聊天工具发生了“窃听”安全丑闻,甚至引发了美国国会的关注。据外媒最新消息,iOS再次出现了安全问题,据一份新的报告显示,许多流行的iOS软件会录制用户的屏幕操控过程,屏幕录制过程并未获得苹果设备用户的同意。 根据科技媒体TechCrunch的调查,数据分析公司Glas *** ox和其他类似公司,会让一些iOS APP开发客户在各自的应用程序中嵌入所谓的“会话重放”技术(通过名为“Glas *** ox SDK”的开发工具)。 这些工具捕获屏幕截图和用户交互过程,包括屏幕上的点击和某些情况下的键盘操控,这些内容将发送回应用程序开发人员或Glas *** ox服务器进行进一步检查。 报告说,虽然不像iOS 12内置的支持视频的屏幕录制功能那样精巧,但会话重播技术实际上是在关键时刻截屏应用程序的用户界面,以确定它是否按设计运行。 Glas *** ox的一位发言人告诉科技媒体称:“Glas *** ox具有以可视格式重建移动应用程序视图的独特能力,这是另一种分析视图,Glas *** ox SDK只能与我们的客户本地应用程序交互,在技术上不能打破应用程序的边界。更具体地说,当键盘覆盖显示在应用程序之上时,Glas *** ox无法访问它。” Glas *** ox的客户包括像AbercrombieFitch这样的大公司和姐妹品牌Hollister、Hotels.com、Expedia、AirCanada和新加坡航空公司。 虽然用户监控并不是什么新鲜事,而且在许多情况下都应该这样做,但是对会话重放的错误处理可能会导致敏感信息的泄漏。 TechCrunch援引一份报告指出,加拿大航空公司的应用程序被发现发送了包含护照和信用卡号码的会话重播数据。这可能是个问题,因为一些公司选择将应用程序数据直接发送到Glas *** ox的云服务,而不是自己的服务器。 科技媒体研究发现,发送到Glas *** ox的数据“大部分是模糊的”,尽管一些屏幕截图包含了被屏蔽的电子邮件地址和邮政编码。据悉,这一研究使用了中间人软件来监控从目标应用程序发送的数据。 在上面列出的应用程序中,AbercrombieFitch、Hollister和新加坡航空公司将会话重播数据传递给Glas *** ox,而Hotels.com和Expedia则在各自的服务器上屏蔽数据。 此外,媒体调查发现,被调查的应用程序都没有在各自的隐私政策中明确表示Glas *** ox技术被用来记录用户的屏幕。 由于公司并未在苹果规定的信息披露中提及用户监控,而且Glas *** ox本身也缺乏自己的要求,最终用户基本上不知道自己的行为正受到如此密切的观察。然而,更令人担忧的是,iOS应用程序制造商在某些情况下,在没有明确用户许可和没有适当的加密协议的情况下,将敏感数据泄露给第三方。(腾讯科技审校/承曦)

  本文共572字,建议阅读时间2分钟

  多图预警

  做为一家非营利性公益组织,萝卜星球一直注重回馈社区,提供与众不同的家庭活动选择。

  从今年1月开始,萝卜星球已与温哥华公共图书馆Vancouver Public Library(下称VPL)联合开设了多次公共少儿STEM机器人课堂。

  成立于1869年,VPL是全加拿大人均访问量更大的城市图书馆,日均访问人数近1.8万。

  借助VPL的强大流量基础,萝卜星球可以更广泛地推行STEM教育、机器人与编程,让更多人了解到它的价值、并从中获益。

  通过参与STEM机器人课堂,孩子可以——

  亲身体会到机器人编程与搭建的乐趣

  发挥

  创新创造力

  锻炼

  小组合作、沟通与交流能力

  初步培养

  编程逻辑与计算思维

  为日后深入研究

  夯实基础

  想让您的孩子也加入我们吗?

  伪君子

  读完需要

  3

  分钟

  速读仅需 1 分钟

  0 前言

  之前写过

  用 Web Scraper 爬取即刻关注/被关注列表

  ,爬取下来的数没按照顺序排序。有解决的办法,去安装 CouchDB,然后设置一下从此 Web Scraper 爬取下来的数据都是有序的。

  1 下载和安装

  进入后下载合适你电脑系统的 CouchDB。

  这里演示一下 Windows 下安装,打开后直接点击 Next

  接受条款,然后点击 Next

  还是点击 Next

  改一下路径,不要直接安装到 C 盘,然后点击 Next

  安装,冷静等待几分钟,很快安装完的。

  2 设置

  浏览器打开 别打开错了。

  然后创建一个数据库,命名为 scraper-sitemaps

  右键 Web Scraper,然后点击选项,进入设置界面

  Storage type 改成 CouchDB

  Sitemap db 填写

  Data db 填

  保存之后重启浏览器,然后 Web Scraper 爬取下来的数据就是有序的。

  进入 能看到创建的数据库,点击进去能看到 Sitemap。

  而且是非常易于阅读的形式

  如果重启浏览器不行就重启电脑,如果还不行,建议重买电脑。

  3 说明

  如果之前 Web Scraper 有 Sitemap,那先保存一份再去安装 CouchDB;如果已经安装且设置了,也可以去设置那里把 Storage type 改回 local storage (本地存储),然后保存备份 Sitemap 后再改回去。

  题图:Photo by Paolo Nicolello on Unsplash

  关注泰安市图书馆官方微信号

  送山东省图书馆价值500元阅读卡。下面为样卡可以试用大家不要改密码

  资源介绍:万方数据(学术期刊、学位论文、会议论文、专利等)、维普(中文期刊全文数据库)

  使用流程:

  2、下载浏览器ADobe Reader(首次使用)

  3、专题数据库--万方数据(镜像)或维普期刊数据库(镜像)

  4、输入账户(用户名)和密码登入。

  有效期:2019年1月1日至2019年12月31日。

  试用卡号:SD2019H1001 密码:278575 流水号 :1911001

  SD2019H1004密码:480159流水号:1911004

  请不要随便更改试用卡密码。

  有需要的联系泰安市图书馆文化工程共享中心

  联系人:李斌康利

  文化工程共享中心泰安市支中心、泰安市图书馆 *** 中心

标签: 女黑客林怡

相关文章

女黑客林怡,中国黑客组织排行

女黑客林怡,中国黑客组织排行

一、女林怡黑客接单流程 1、找黑客流程如果你不是那种想当黑客的人,你就会成为这样的人。女林怡中国组织排行简单地安装键盘鬼和其他键盘记录软件。任何帐户密码都将无法逃脱。怎么从0开始学书籍女林怡XXX黑客...