首页 文章 精选 留言 我的

精选列表

搜索[cto],共10000篇文章
优秀的个人博客,低调大师

英特尔AI CTO:人工智能训练需要新型芯片架构

英特尔人工智能产品集团新上任的首席技术官Amir Khosrowshahi表示,当你使用GPU水平较低的时候,业界需要新架构用于神经网络的理由就愈加明显了。 Khosrowshahi此前是Nervana System公司的共同创始人兼首席技术官,该公司在去年8月被英特尔收购,金额未对外公布。Nervana的技术迅速成为英特尔人工智能计划的核心。 Khosrowshahi详细介绍了Nervana公司是如何使用GPU的,因为“这是最先进的技术”,Nervana用它自己的汇编器取代了标准的Nvidia汇编器,因为这被Nervana视为可以生成“次优”指令。 “我们在公司发展初期是这么做的,部分是为了我们自己的发展,但后来我们意识到它比Nvidia的库要快2-3倍,所以我们将其作为开源发布了。” Nervana的努力并没有止步于软件方面,它还创造了自己的硅芯片瞄准神经网络训练。 “神经网络是一系列预定的操作,它不像是用户与系统的交互,它是一组可以被描述为数据流图表的指令。” 据Khosrowshahi称,一些功能有助于图形处理单元执行图形渲染工作——如大量缓存,处理节点,渲染——都是多余的。 “GPU中有很多电路,这对于机器学习来说并不是必需的,随着时间推移有很多东西堆积起来。” “你并不需要电路,这些电路在芯片中占很大比例,而且能源利用成本也很高。” “神经网络非常简单,它是很少的矩阵乘法和非线性,你可以直接搭建硅芯片来实现。你可以搭建硅芯片专用于神经网络架构,GPU却不是这样的。” Khosrowshahi给出的答案是正在开发的Lake Crest,英特尔将在今年向选定客户推出这个独立的加速器,随着时间的推移,它还将更紧密地与至强处理器捆绑在一起。 “这是一个张量处理器,处理矩阵操作的指令。”Khosrowshahi解释说。“所以指令集是矩阵1乘以矩阵2,通过一个查找表,而且这些大指令都是高级别的。” “在GPU中,它是一个个的寄存器,移入另一个寄存器,做逐个元素的乘法,这是相当低级别的。” 不过Khosrowshahi表示,Nvidia近年来努力让他们的GPU更适合于神经网络,他们的人工智能芯片仍然具有大量图形功能。 “作为一家芯片厂商,我可以看出为什么这对Nvidia来说很困难,”Khosrowshahi说。 另一方面,英特尔通过收购一步步接近人工智能。 “推出一个全新的价格,这在芯片行业是一大挑战;英特尔的方式就是收购。他们收购了FPGA,所以又收购了Altera,Altera是一个非常酷的架构,专注于神经网络,所以FPGA架构对于神经网络来说是非常有趣的……当然,Nervana芯片很大程度上也是一个专注于引擎的神经网络,但是稍微脱离出神经网络一些。” 当谈到神经网络时,Khosrowshahi认为考虑在硅芯片中做蚀刻神经网络是错误的,因为其中很多功能仍然是在软件方面的。 “很多功能都是在软件的,所以即使开发了Lake Crest,针对Lake Crest的指令也不是‘神经网络,这么做’,而是这个矩阵乘以这个矩阵。” “除了芯片之外,还有一些软件知道这是神经网络,这是训练,用户寻找不同的东西并搜索参数——当你有了神经网络系统的时候这些都是你要做的事情。” 在神经科学的大背景下,Khosrowshahi认为人工智能的重点不是重建人脑,而是超越人脑。 “人脑就是人工智能的一个例子,但这是相当有限的人工智能,我的视觉系统看到了物理世界,它知道去了解世界的统计数据。” “如果你环顾四周,你能看到很多边缘、很多表面、阴影区等等,如果你看看大脑……主要是视觉皮层,有对这些特征敏感的神经元,所以你的人工智能了解这个世界的统计数据,并且能够对此进行推论——就像是这个杯子快要打碎,我接住了这个杯子。” 但是企业内的数据与人类互动的数据大不相同,Khosrowshahi说。 “这个统计数据是非常不直观的,所以让人工智能处理这些数据是另外一种智能了。” “这试图向人们解释这一点,因为他们认为我们正在创造一个大脑,我们想做的超越了这一点,我们希望创造一种新的人工智能,可以理解企业、医疗等所有领域的数据统计,这些数据本质上与现实世界中的截然不同。 英特尔人工智能架构的竞争对手之一是Google定制的Tensor Processing Unit,本周Google称这种架构笔当前的GPU和CPU快15-30倍,功效高30-80倍。 本周,IBM和Nvidia也宣布IBM将从5月开始在IBM Cloud中提供Tesla的P100。 原文发布时间为:2017年4月7日 本文作者:杨昀煦 本文来自云栖社区合作伙伴至顶网,了解相关信息可以关注至顶网。

优秀的个人博客,低调大师

高通CTO:未来将是5G、AR、物联网的天下!

高通芯片部门的首席技术官Matt Grob在接受外媒采访时说了增强现实设备如何、何时将取代智能手机,以及他的公司如何对抗谷歌的威胁。 Matt Grob可以很清楚地看到未来。Grob帮助芯片制造商高通开发了第一款智能手机芯片,目前在公司负责长期的研究和开发,与苹果、三星电子、谷歌等几乎每一个电子设备制造商一起工作并影响它们的产品路线图。所以他有特殊的资格对现时计算未来十年的发展发表意见。 有很多值得兴奋的新科技:例如无人机、物联网、自动驾驶汽车、智能家居等。一切都将依靠5G芯片,下一代无线通信,预计到2020年上市。Grob希望高通的5G芯片能更早面世。高通必须尽快从新一代产品增加收入,因为智能手机的销售已经减缓。高通预计在接下来的4年里,智能手机芯片市场每年的增长率都将少于10%。同时,来自中国大陆和台湾的低成本芯片厂商崛起,导致芯片价格降低了很多。高通最近不得不解雇了15%的员工。Grob今年49岁,1991年毕业后加入了高通圣地亚哥公司,当时它仍然是一家私人公司。由于其电气工程师的背景,他和Paul Jacobs一起工作,Jacobs后来成为了公司的CEO,和其他人一起负责重要的硬件,允许手机处理数据,而不仅仅是声音,后来又把手机处理提高到兆的速度(被称为“高数据速率”)。他还帮助开拓了把多个天线装入手机,使它们能够接受并且更快地发送数据。几乎每一次,他都会说,这种新的技术面临来自高通的客户即电子产品品牌的阻力,它们本身有时对无线运营商的需求有义务,谁也不会想到这样昂贵的升级是必要的。 在接受外媒记者采访时,Grob谈到了他的工作对商业无人机的发展,5G(即正在开发的下一代无线网络标准)以及多长时间增强现实(AR)才能击败智能手机。 外媒:在硬件方面,如无人机和自动驾驶汽车,这些市场的规模和资金将如何发展? Grob:我想把所有的硬件都和5G连接在一起。 5G将帮助这些类型的产品实现大量的用途。在物联网的成长空间,我们非常看好全局尤其无人驾驶飞机。首先,智能手机的部件在无人机上是绝对适用的:低功耗媒体,定位,传感器,陀螺仪......但也有一些更多的部件,可以方便企业使用。如果你真的想使他们的企业。无人机现在每年已经有数百万的消费者,ESPN有无人机比赛。 在美国,除非你有豁免声明否则大多数商业无人机用例是非法的。我们正在与联邦航空管理局工作合作,努力消除限制。我们正在把无人驾驶飞机与LTE连接,与运营商和美国联邦航空局合作,以开发安全,低成本的解决方案,使空中交通管制员可与航空业以这种新形式的并存,使商业无人机用例合法,像安全应用,送货等。 外媒:5G何时会上市以及它会是怎样的? Grob:标准的过程给了我们5G的时间表,其将在2020年左右上市,我们会完成这个目标,实际上我们要提前超额完成。 Verizon公司正在努力减少两年。还有2018年奥运会在韩国的活动。这些前兆,将有5G的许多元素。其将是毫米波[这比无线电波短],我们将使用更高的谱波段,28千兆赫,提供千兆更高的服务及1毫秒以下的延迟。你将体验平板电脑和手机前所未有的性能。高品质的视频将有大量用户的消费者,新的代理商应运而生。 我们应该谈谈VR、AR和头戴式显示器。如果你仔细想想,我们在2002年初设计了4G的物理层,而iPhone2007年才上市。那5G革命的形式将是怎样呢?我们认为5G的历程是从2020年到2035年这段时间里,到时候PC有50岁了,当智能手机也有30岁,问题是:届时它还会是时间的因素吗?答案是否定的,它们仍然会围绕时间但它会是其他东西了。 外媒:对于杰出的独立AR,以及 Magic Leap和谷歌所承诺的产品而言,这些设备需要怎样的计算能力?我们什么时候能看到第一个合法的主流产品上市? Grob:我们需要的是超越当前的艺术状态。想象你坐在办公室里,墙上有一个4K分辨率的监视器或显示器,即使是50、60、70英寸,也只是你的视野的一部分。如果你想要看到整个领域,4K是远远不够的。你需要8K,甚至更多。它需要全视野,当你左右移动的时候,你希望它的延迟极低。它必须能够追踪你的目光,像Magic Leap的技术一样。公司需要跟踪你的焦点,你的顶点,需要提供千兆速度,使每个人都可以在同一时间,获得内容。它需要重量轻,功耗低,所以和我们今天做的事相比,需要几倍的计算能力。因此,还没能制造这样的设备,但是以后会有的。行业需要10年的努力才能实现。我们现在所看到Oculus、HoloLens和Magic Leap都是其前兆。这是非常重要的,但就像数据业务和智能手机用了10年才称霸,我们也要耐心等待其取代智能手机。 外媒:智能手机市场呈现出了问题和停滞的迹象。而且感觉就像我们正在进入消费者硬件的寒冬,因为这些新的硬件甚至是无人机都需要时间来扩大市场。新的市场何时才能促进消费者和企业硬件的整体增长? Grob:我想指出一些公司在这方面公开的材料[这表明新的市场是“接近”智能手机的,这意味着它们依靠类似的组件,到2020年,将是一个290亿美元的潜在市场,相比之下,智能手机和平板电脑是330亿美元。说停滞,也许没错,较去年同期,智能手机的替代率的确下降了,但世界上仍然有很大的区域没有智能手机,所以这是一个非常好的事情。物联网作为一个整体,其中包括无人驾驶飞机和无数产品,已经是我们价值数十亿美元的业务,以后将和智能手机看齐,最终甚至超越智能手机。这就是我们投入到这些相邻市场、服务器和医疗保健等方面的工作的原因。 外媒:一些互联网软件领导者,如 Larry Page(谷歌母公司Alphabet的CEO)希望硬件成本变为零,这样设备可以更快到消费者手上,使用谷歌的互联网服务。 [谷歌加入到芯片设计。]请问这不会发生,你将如何应对呢? Grob:谷歌将受益于硬件的商品化。而我们作为一个供应商,希望有区别的硬件。答案是,如果我们不继续创新,一切都会商品化,这就是我们要加快5G、毫米波和机器学习等新技术的原因。我们所有的努力,都是为了防止和反击商品化。 外媒:如果最初的客户怀疑高数据速率的技术,现在会是怎样? Grob:我们正在调整和修改芯片的细胞家庭,让它们在未授权频谱工作[例如Wi-Fi的波段],这是一个积极的事情,具有降低成本、有利于消费者的潜力。它不会产生争议,但是也有一些人质疑,“为什么要这么做?这样会产生干扰[对Wi-Fi的使用]和伤害。“这是一个例子。不是所有的竞争对手都会跟得上[和发展这种技术],而且从他们的角度来看,你可以想象他们为什么会反对这个东东。 外媒:你有参与高通对OneWeb公司的投资吗? [该公司试图发射用无线电频谱连接智能手机用户和因特网的卫星] Grob:是的,我个人非常投入。我和OneWeb的创始人[Greg Wyler]非常要好,在我们的小组有一个庞大的团队参与到该项目里。我们提供无线电设计和芯片组的某些部分。 我们有与Globalstar[另一颗卫星电话公司]工作的经验。两家公司所不同的是,OneWeb最终用户设备是一个正常的电话,而不是特别的卫星电话。因此,成本非常低的可能性是存在的。这一系统可用的频谱有很多,将发射卫星的星座是非常大的。和在过去的卫星系统相比,其对无线的需求较大。因为有几十亿不具备在世界各地的卫星覆盖。 外媒:你有没有参与到摩尔定律定期的讨论,我们是否达到了一定的限度?你的看法是什么?(摩尔定律:当价格不变时,集成电路上可容纳的元器件的数目,约每隔18-24个月便会增加一倍,性能也将提升一倍。) Grob:有摩尔定律和香农定律(后者是关系到多少信号可通过噪声在无线电波进行传输。)从摩尔定律的角度来看,至少在接下来的几个迭代,我们将继续享受不断提高层次的一体化,从14纳米[晶体管]到10纳米至7纳米甚至更小。 [晶体管越小,它可以装配越多到一个芯片组里,增加的计算能力更多。]所以,至少在短期之内该机器仍在运行。现在,晶体管越来越贵,所以一个可能的情况是整合持续数个周期以上的水平,但对晶体管的成本也不会遵循相同的斜率。它仍然是积极的,你就可以把更多的表现放在每一个后续版本。它类似于香农的无线电,你会达到一个极限定理。你说,“我们用更多的频谱和天线。”我们可以有不同的[天线]架构;我们正在研究更为高效的架构。 我们仍然处于显著的性能提升的时代。这将继续多久?很难断言。我们发现创新是动力之源。我们正在努力解决成本上升的问题。但我可以告诉你:10年来我们取得了很大的进步,芯片的运行速度大大提升。很多时候,第一次尝试便已成功,工艺本身已经跟上科技的步伐。本文转自d1net(转载)

优秀的个人博客,低调大师

阿里巴巴CTO王坚:计算经济时代已经到来!

【大咖・来了 第7期】10月24日晚8点观看《智能导购对话机器人实践》 反思云计算 六年来,云栖大会***次从室外移入室内举行,这不禁让王坚多了一份担心。每年秋季的这个时候,杭州都是风和日丽的场景,历届会议也都是在室外举行的。在室内,缺少了对环境的顾虑和挑战,王坚担心离自己的梦想会遥远了一些。 王坚的担心不是没有道理的。 过去五年来,云计算一直被热炒,但是谈云的机会多了,谈计算少了。大家对互联网时代因为计算真正带来的价值有所忽视。 在阿里从事云计算的初期以及关于公司的取名,王坚是非常纠结的,因为他不认为云计算能够***地表达这个时代的发展,而应该是通用计算。回顾“妥协”的原因,王坚解释说,十年前在业界讨论云计算而以云计算的名义,是很难被人接受的。 这便是本次云栖大会以“计算,为了无法计算的价值”作为主题的原因吧。 “无论如何,云计算给了我们一次创新的机会。”王坚说:“阿里云计算的***批400家客户基本上都是中小站长,那个时候网站是互联网的全部,这次来参加云栖大会的代表,除了这些网站以外,更多的是云计算、大数据、移动互联,也意味着互联网变成了整个社会经济创新发展的基础设施。” 笔者认为,众多参展厂商把机器人搬到会场,便是这一理念的***注解。 在云栖小镇举办云栖大会让王坚感到非常自豪。只不过,云栖小镇其实是一个村镇,云栖大会实际上是在农村召开的,所有的供电设计是按照农村的标准来建设的。这是王坚的另一个巨大的担忧。当云计算成为日常生活中再普通不过的水、电以后,安全便成为巨大的风险。 担忧归担忧,这何尝又不是变革的目标呢?王坚仍然充满了希冀。 谈“大”数据是对数据的不自信 王坚认为,数据就是数据,非要在前面加个“大”字,把它叫做“大数据”,是业界对数据缺乏自信。” 任何一条乡间小道,当人走过,一定会留下数据,那就是你的脚印。乡间小路如此,高速公路更是如此。如果这些数据能够得以很好的利用,让人猜得出你是谁,收入是多少以及你的喜好,那么数据就有了价值。 在王坚看来,在世界发展的任何时候,只要有基础设施就会有数据,就像有路就会有脚印。互联网的普及和发展改变了人类的生活和生产方式,引发了***的信息革命和产业革命,互联网作为国家信息基础设施,就像公路、港口等一样,越来越成为国民经济各项事业发展的基础。 正因为互联网变成了基础设施,数据以更低的成本被自然沉淀,数据成为了生产资料。 “数据跟土地、石油一样变成了生产资料,这种变化是远远超出大家的想象。数据作为一种生产资料,能够产生巨大价值的一个前提,是因为互联网变成基础设施。”王坚说。 当然,隐私保护也成为***的挑战之一。 发掘数据的***价值,迎接数据经济时代 一直以来,数据都让人面临尴尬,王坚也不例外。 “有人问,阿里巴巴数据多么值钱,我就没有办法回答。”王坚说。但是他知道,沙里淘金便是发掘数据价值的一个形象过程,这是美国西部牛仔们一百多年前热衷的事情。今天所有人的使命和目标其实也是为了从沙子里淘到金子,或者是让沙子变成黄金。 这就是计算的真正价值,计算,可以计算出无法计算的价值。听起来有些拗口,但事实就是这样。 “阿里云上客户的实践告诉我们,在这个时代,因为有互联网作为基础设施,我们应该对数据为人和社会产生的价值有足够的信心。”王坚以阿里云上专门从事心电数据监测分析的创业公司中瑞奇为例表示,数据只有被充分计算才能释放价值。 在昨天下午举办的“技术就是公共服务”分论坛上,王坚也阐述了类似的观点。他表示,当互联网变成基础设施,数据成为很重要的生产资料的时候,计算一定要成为公共服务,才能够让每一个老百姓都能享受到计算为社会带来的价值。 阿里云在2015云栖大会发布全新品牌口号“为了无法计算的价值”,主题为“移动互联”、“金融”、“赛事直播”、“生命科学”、“新能源”的品牌系列广告也同步在全国各大机场上线,引起广泛热议。 在演讲的***,王坚告诉与会者,数据经济正在取代土地、石油经济;当数据变成最重要的生产资料,当计算变成一个公共服务,变成一个企业发展的最核心竞争力的时候,一个新的经济时代其实已经来了,那就是计算经济的时代。

优秀的个人博客,低调大师

因在Java中不会优雅地判空,被CTO屌的快哭了。。。

判空灾难 作为搬砖党的一族们,我们对判空一定再熟悉不过了,不要跟我说你很少进行判空,除非你喜欢NullPointerException。 不过NullPointerException对于很多猿们来说,也是Exception家族中最亲近的一员了。 为了避免NullPointerException来找我们,我们经常会进行如下操作。 if (data != null) { do sth. } 如果一个类中多次使用某个对象,那你可能要一顿操作,so: “世界第九大奇迹”就这样诞生了。Maybe你会想,项目中肯定不止你一个人会这样一顿操作,然后按下Command+Shift+F,真相就在眼前: What,我们有接近一万行的代码都是在判空? 好了,接下来,要进入正题了。 NullObject模式 对于项目中无数次的判空,对代码质量整洁度产生了十分之恶劣的影响,对于这种现象,我们称之为“判空灾难”。 那么,这种现象如何治理呢,你可能听说过NullObject模式,不过这不是我们今天的武器,但是还是需要介绍一下NullObject模式。 什么是NullObject模式呢? In object-oriented computer programming, a null object is an object with no referenced value or with defined neutral ("null") behavior. The null object design pattern describes the uses of such objects and their behavior (or lack thereof). 以上解析来自Wikipedia。 NullObject模式首次发表在“ 程序设计模式语言 ”系列丛书中。一般的,在面向对象语言中,对对象的调用前需要使用判空检查,来判断这些对象是否为空,因为在空引用上无法调用所需方法。 空对象模式的一种典型实现方式如下图所示(图片来自网络): 示例代码如下(命名来自网络,哈哈到底是有多懒): Nullable是空对象的相关操作接口,用于确定对象是否为空,因为在空对象模式中,对象为空会被包装成一个Object,成为Null Object,该对象会对原有对象的所有方法进行空实现… public interface Nullable { boolean isNull(); } 这个接口定义了业务对象的行为。 public interface DependencyBase extends Nullable { void Operation(); } 这是该对象的真实类,实现了业务行为接口DependencyBase与空对象操作接口Nullable。 public class Dependency implements DependencyBase, Nullable { @Override public void Operation() { System.out.print("Test!"); } @Override public boolean isNull() { return false; } } 这是空对象,对原有对象的行为进行了空实现。 public class NullObject implements DependencyBase{ @Override public void Operation() { // do nothing } @Override public boolean isNull() { return true; } } 在使用时,可以通过工厂调用方式来进行空对象的调用,也可以通过其他如反射的方式对对象进行调用(一般多耗时几毫秒)在此不进行详细叙述。 public class Factory { public static DependencyBase get(Nullable dependencyBase){ if (dependencyBase == null){ return new NullObject(); } return new Dependency(); } } 这是一个使用范例,通过这种模式,我们不再需要进行对象的判空操作,而是可以直接使用对象,也不必担心NPE(NullPointerException)的问题。 public class Client { public void test(DependencyBase dependencyBase){ Factory.get(dependencyBase).Operation(); } } 关于空对象模式,更具体的内容大家也可以多找一找资料,上述只是对NullObject的简单介绍,但是,今天我要推荐的是一款协助判空的插件NR Null Object,让我们来优雅地进行判空,不再进行一顿操作来定义繁琐的空对象接口与空独享实现类。 .NR Null Object NR Null Object是一款适用于Android Studio、IntelliJ IDEA、PhpStorm、WebStorm、PyCharm、RubyMine、AppCode、CLion、GoLand、DataGrip等IDEA的Intellij插件。其可以根据现有对象,便捷快速生成其空对象模式需要的组成成分,其包含功能如下: 1、分析所选类可声明为接口的方法; 2、抽象出公有接口; 3、创建空对象,自动实现公有接口; 4、对部分函数进行可为空声明; 5、可追加函数进行再次生成; 6、自动的函数命名规范 让我们来看一个使用范例: 怎么样,看起来是不是非常快速便捷,只需要在原有需要进行多次判空的对象中,邮件弹出菜单,选择Generate,并选择NR Null Object即可自动生成相应的空对象组件。 那么如何来获得这款插件呢? 安装方式 可以直接通过IDEA的Preferences中的Plugins仓库进行安装。 选择 Preferences → Plugins → Browse repositories 搜索“NR Null Oject”或者“Null Oject”进行模糊查询,点击右侧的Install,restart IDEA即可。 Optional 还有一种方式是使用Java8特性中的Optional来进行优雅地判空,Optional来自官方的介绍如下: A container object which may or may not contain a non-null value. If a value is present, isPresent() will return true and get() will return the value. 一个可能包含也可能不包含非null值的容器对象。如果存在值,isPresent()将返回true,get()将返回该值。 话不多说,举个例子。 有如下代码,需要获得Test2中的Info信息,但是参数为Test4,我们要一层层的申请,每一层都获得的对象都可能是空,最后的代码看起来就像这样。 public String testSimple(Test4 test) { if (test == null) { return ""; } if (test.getTest3() == null) { return ""; } if (test.getTest3().getTest2() == null) { return ""; } if (test.getTest3().getTest2().getInfo() == null) { return ""; } return test.getTest3().getTest2().getInfo(); } 但是使用Optional后,整个就都不一样了。 public String testOptional(Test test) { return Optional.ofNullable(test).flatMap(Test::getTest3) .flatMap(Test3::getTest2) .map(Test2::getInfo) .orElse(""); } 1、Optional.ofNullable(test),如果test为空,则返回一个单例空Optional对象,如果非空则返回一个Optional包装对象,Optional将test包装; public static <T> Optional<T> ofNullable(T value) { return value == null ? empty() : of(value); } 2、flatMap(Test::getTest3)判断test是否为空,如果为空,继续返回第一步中的单例Optional对象,否则调用Test的getTest3方法; public<U> Optional<U> flatMap(Function<? super T, Optional<U>> mapper) { Objects.requireNonNull(mapper); if (!isPresent()) return empty(); else { return Objects.requireNonNull(mapper.apply(value)); } } 3、flatMap(Test3::getTest2)同上调用Test3的getTest2方法; 4、map(Test2::getInfo)同flatMap类似,但是flatMap要求Test3::getTest2返回值为Optional类型,而map不需要,flatMap不会多层包装,map返回会再次包装Optional; public<U> Optional<U> map(Function<? super T, ? extends U> mapper) { Objects.requireNonNull(mapper); if (!isPresent()) return empty(); else { return Optional.ofNullable(mapper.apply(value)); } } 5、orElse("");获得map中的value,不为空则直接返回value,为空则返回传入的参数作为默认值。 public T orElse(T other) { return value != null ? value : other; } 怎么样,使用Optional后我们的代码是不是瞬间变得非常整洁,或许看到这段代码你会有很多疑问,针对复杂的一长串判空,Optional有它的优势,但是对于简单的判空使用Optional也会增加代码的阅读成本、编码量以及团队新成员的学习成本。毕竟Optional在现在还并没有像RxJava那样流行,它还拥有一定的局限性。 如果直接使用Java8中的Optional,需要保证安卓API级别在24及以上。 你也可以直接引入Google的Guava。(啥是Guava?来自官方的提示) Guava is a set of core libraries that includes new collection types (such as multimap and multiset), immutable collections, a graph library, functional types, an in-memory cache, and APIs/utilities for concurrency, I/O, hashing, primitives, reflection, string processing, and much more! 引用方式,就像这样: dependencies { compile 'com.google.guava:guava:27.0-jre' // or, for Android: api 'com.google.guava:guava:27.0-android' } 不过IDEA默认会显示黄色,提示让你将Guava表达式迁移到Java Api上。 当然,你也可以通过在Preferences搜索"Guava"来Kill掉这个Yellow的提示。 关于Optional使用还有很多技巧,感兴趣可以查阅Guava和Java8相关书籍和文档。 使用Optional具有如下优点: 将防御式编程代码完美包装 链式调用 有效避免程序代码中的空指针 但是也同样具有一些缺点: 流行性不是非常理想,团队新成员需要学习成本 安卓中需要引入Guava,需要团队每个人处理IDEA默认提示,或者忍受黄色提示 有时候代码阅读看起来可能会如下图所示: Kotlin 当然,Kotlin以具有优秀的空安全性为一大特色,并可以与Java很好的混合使用,like this: test1?.test2?.test3?.test4 如果你已经开始使用了Kotlin,可以不用再写缭乱的防御判空语句。如果你还没有使用Kotlin,并不推荐为了判空优雅而直接转向Kotlin。

优秀的个人博客,低调大师

思科公司服务器CTO指出,NVMe将由速度层转向容量层

NVMe存储正在成为一种在密度与速度方面远超其它存储介质类型的解决方案。也正因为如此,思科公司UCS首席技术官Raghunath Nambiar才认为NVMe未来将扮演容量层这一角色。 在上周于悉尼接受采访时,Nambiar解释称“就目前而言,人们主要从性能的角度看待NVMe; 但真正的游戏规则改变将体现在容量层面。” Nambiar指出,2.5英寸SSD将很快达到7 TB容量级别,但“NVMe则将在未来18个月当中达到32 TB容量水平。”这样的存储密度意味着即使是像UCS B200这样的小型思科半宽服务器,也完全能够实现每服务器64 TB数据存储容量。其它刀片机架或架构无疑将拥有更为可观的容量规模。 Nambiar表示,企业将能够把这些数据用于更为密集的即时分析处理。 他提到,“目前美国开始广泛了解消费者的购买模式”,并借此构建起强大的推荐引擎。他同时补充称,消费者可能需要在利用自动柜员机或者在线零售商店时忍耐大约一秒的滞后,但企业则可在这短短的一秒之内交付分析信息。 他指出,“目前,这类分析记录约为100条; 在未来六个月内,记录数量将达到1000条。”在他看来,不久之后企业即会利用这种分析手段提供成千上万条记录,借以提升交叉销售能力或者改善客户满意度。 作为回应,数据中心运营商则需要做好准备以立足现有机架托管更多数据。Nambiard表示,100G以太网也将很快成为决定企业成败的重要支柱。通过提升数据吞吐量来实现向外扩展——而非依赖于新型CPU、GPU、FPGA以及网络——也将变得至关重要。 Nambiar解释称,思科公司将规划多种方式为客户提供帮助,其中包括立足大数据与分析验证新型工作负载设计,并借此强化其整体架构。但他提醒称,“这并不属于即插即用型方案。要想充分利用这些功能,大家需要深入思考且直接面向数据管理平台。” 最近推出的Starship服务器自动化平台与得到进一步强化的UCS Director将抢先一步在这方面作出尝试。Nambiar指出,思科公司的目标在于确保UCS能够在机架与堆栈构建完成后立即可供客户使用,且其操作系统与应用程序能够自动安装,并根据预期工作负载进行自主优化。 他解释称,“我们将根据自身最佳实践实现这种‘可调节性’。” Nambiar总结道,“服务器即将成为运行应用程序的平台,而硬件本身的重要程度越来越低——与之对应,管理层才是真正的核心所在。” 原文发布时间为:2017年8月9日 本文作者:黄雅琦 本文来自云栖社区合作伙伴至顶网,了解相关信息可以关注至顶网。

优秀的个人博客,低调大师

网录科技CTO汪波:区块链做存证的原理及方式

编者按:本文作者汪波,网录科技联合创始人、首席技术官。汪波是原美国区块链公司公证通(Factom)工程副总裁,毕业于北京大学,后并获得美国密歇根大学信息管理硕士学位。他拥有20多年互联网及软件开发和管理经验,曾先后在中国和美国多次成功创业,对共识算法理论和代码都有精深造诣,可谓区块链共识算法和P2P网络先行实践者。雷锋网(公众号:雷锋网)已获得授权。 为什么区块链是好的存证工具 区块链所建立的是一种去中心化的共识机制,这种共识机制结合了数字加密和博弈论,使得参与者无须任何外部强制约束的情况下即自行形成了相互牵制的可信环境。这种可信的环境去除了中心化授权外部的管制的必要性,甚至恰恰建立在互不信任的基础之上,于是这种去中心化、去信任的区块链架构所解决的正是这个充满虚拟与匿名的网络世界的信用与治理问题。 存证证明这是一件很简单的事情,提供票据

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册