软佳科技有限公司 - 论坛

InfoQ

0 会员 以及 4 访客 正在阅读本主题.

admin

  • *****
  • 0
  • +0/-0
  • 性别: 男
  • SoftPlus 资深程序员
    • 查看个人资料
    • http://www.softplus.org
《2019胡润全球独角兽榜》发布:中国独角兽占据前三,总数量超过美国成全球第一


10月21日,胡润研究院发布首份《2019胡润全球独角兽榜》(Hurun Global Unicorn List 2019),全球共有494家独角兽企业上榜。其中,中国的独角兽企业共占据“独角兽榜单”206个席位,超美国203个席位,成为全球拥有独角兽公司最多的国家。另外,关于本次榜单的前三名,分别由中国的蚂蚁金服、字节跳动、滴滴出行获得。



独角兽佼佼者与榜单标准


榜单前十名如下图所示,其中来自中国的独角兽以蚂蚁金服为首,字节跳动排名第二、滴滴出行排名第三、陆金所排名第六,共占据前十榜单四个席位。



《2019胡润全球独角兽榜》标准:全球估值10亿美元以上的科技初创企业,上榜企业创办不超过10年,获得过私募投资且未上市。另外,榜单估值计算的截止日期为2019年6月30日。


独角兽来自何方?


《2019胡润全球独角兽榜》中有494家企业来自全球各地,中国的独角兽数量以206超过美国203获得领先,就此中美两国共拥有全球近八成多的独角兽公司。另外印度和英国分别排名第三第四,各有21家和13家。德国和以色列并列第五,各有7家。


Source: 《2019胡润全球独角兽榜》发布:中国独角兽占据前三,总数量超过美国成全球第一

InfoQ 促进软件开发领域知识与创新的传播
http://www.infoq.com/cn/
软佳科技有限公司 http://www.softplus.org
软佳医疗软件 http://www.ynhis.com
最新Linode VPS 优惠码新用户注册省10美元:Active Linode $10 Coupon

admin

  • *****
  • 0
  • +0/-0
  • 性别: 男
  • SoftPlus 资深程序员
    • 查看个人资料
    • http://www.softplus.org
InfoQ_UC 信息流推荐模型在多目标和模型优化方面的进展
« 回复 #5611 于: 十月 22, 2019, 10:16:30 pm »
UC 信息流推荐模型在多目标和模型优化方面的进展

导读:短视频已经成为信息流行业的风口,成为拉动规模增长的主要驱动力。短视频天然具有信息能量高、用户粘性大、内容丰富等优点,也有视频帧内容难以分析提取、结构化的缺点。如何提高短视频的分发效率和推荐精准度,做到千人千面的个性化推荐,是一个推荐系统的核心能力。基于深度学习的推荐模型,是业界前沿的研究课题;在短视频推荐的业务中,如何利用深度学习算法有效的提升消费点击和消费时长,是推荐模型的核心命题。此次演讲主要讲解视频推荐模型在多目标和模型优化方面的进展。包括以下几个模块:



  • 业务和系统

  • 基于 Graph Embedding 的多目标

  • 基于 WnD 的 Boosting 算法

  • 未来规划


业务和系统



  1. 短视频业务背景、系统结构



我们的业务主要是做视频推荐,嵌入到 UC 浏览器中做国内信息流:



  • UC 从工具型产品转型至内容分发平台,信息流业务成为 UC 的第二大引擎;

  • 短视频已经成为信息流行业的风口,成为拉动规模增长的主要驱动力;

  • 短视频播放时长已经超过图文,极大的增强了信息流的用户粘性;

  • 算法的持续优化与迭代提高了短视频流量分发的效率和准确度。


右图是视频推荐的界面,其背后的视频推荐系统分为三个结构,第一个是召回模块,第二个是粗排的模型,第三个是精排的模型。从召回 -> 粗排 -> 精排,Item 的数目从多到少,推荐的准确性从低到高。



  1. 技术演进史



我们在视频推荐上,尝试过多个推荐方案:



  • 最早用的是 LR ( 如图,左下角 ),LR 的缺点主要是在特征工程上会耗费很大的人力;

  • 后来我们又尝试了 GBDT 和 FM ( 如图,中间部分 ),但是这些模型在泛化性上相对较弱;

  • 最后我们采用了 Wide & Deep model ( 如图,右下角 )。


这里主要介绍的工作是:从多目标的角度优化 Loss Function。与粗排和精排使用的 WnD 对比,线上收益增幅相当,增量超过。


Source: UC 信息流推荐模型在多目标和模型优化方面的进展

InfoQ 促进软件开发领域知识与创新的传播
http://www.infoq.com/cn/
软佳科技有限公司 http://www.softplus.org
软佳医疗软件 http://www.ynhis.com
最新Linode VPS 优惠码新用户注册省10美元:Active Linode $10 Coupon

admin

  • *****
  • 0
  • +0/-0
  • 性别: 男
  • SoftPlus 资深程序员
    • 查看个人资料
    • http://www.softplus.org
微软将在Surface Duo手机使用Android系统;胡润全球独角兽榜:中企数量首超美国;360全视之眼获世界级大奖 | Q资讯


微软将在Surface Duo手机使用Android系统;Pixel 4 的面部解锁能在睡眠情况下解锁; 李彦宏:AI可让人们获得永生;胡润研究院发布《2019胡润全球独角兽榜》; 苹果将iPhone 7划入“清仓产品”;OpenBSD 6.6 发布 - 类 Unix 操作系统;360再获世界级成果:“全视之眼”已发现和阻止数十起APT;库克出任清华大学经管学院顾问委员会主席。




科技公司


微软将在Surface Duo手机使用Android系统

10月21日,据Techradar报道,在伦敦举行的一次微软旗舰店活动中,微软设备部门首席产品官Panos Panay承认该公司将在其即将推出的Surface Duo手机中使用Android操作系统,原因很简单,“适合该产品的最佳操作系统是Android ”。

https://www.cnbeta.com/articles/tech/901311.htm


Pixel 4 的面部解锁能在睡眠情况下解锁

10月21日,Google 刚刚发布的旗舰手机 Pixel 4 引入了新的生物识别功能——人脸解锁。但该功能很快被发现存在漏洞,它能在用户闭着眼睛的情况下解锁手机。Google 宣称手机的人脸解锁方案非常安全,但测试发现在假装睡眠的情况下手机也能被解锁。Google 称:“目视手机可能会让手机意外解锁;长相与您相似的人也能够解锁您的手机;如果有人将手机对着您的脸,也可以解锁您的手机(即使您闭上眼睛)。”如果用户担心人脸解锁不安全,可以关闭该功能。

https://www.solidot.org/story?sid=62307


李彦宏:AI可让人们获得永生

10月20日,在2019世界互联网大会上,李彦宏表示:人工智能不仅不会毁灭人类,反而可以让人们获得“永生”。 每一个人说的每一句话,干的每一件事,甚至你的记忆、情感、意识等都可以数字化存储下来,放在网盘或者其他的云端,你的思维方式可以被机器学习出来,遇到新问题,通过技术进行现实还原,就可以与后人进行超越时空的对话。此外,他表示,目前,百度搜索的首条满足率已经达到了51%,也就是说大家现在百度一下,有一半以上的答案是唯一答案,直接给出。

https://tech.sina.com.cn/i/2019-10-20/doc-iicezuev3456525.shtml


Source: 微软将在Surface Duo手机使用Android系统;胡润全球独角兽榜:中企数量首超美国;360全视之眼获世界级大奖 | Q资讯

InfoQ 促进软件开发领域知识与创新的传播
http://www.infoq.com/cn/
软佳科技有限公司 http://www.softplus.org
软佳医疗软件 http://www.ynhis.com
最新Linode VPS 优惠码新用户注册省10美元:Active Linode $10 Coupon

admin

  • *****
  • 0
  • +0/-0
  • 性别: 男
  • SoftPlus 资深程序员
    • 查看个人资料
    • http://www.softplus.org
对抗铺天盖地的假新闻,MIT开发AI检测系统自动识别虚假消息



互联网时代,假新闻铺天盖地,而且极具迷惑性,Facebook 一度深陷虚假新闻的泥淖,不但被控影响了美国总统大选结果,甚至引发了德国政府的巨额罚款。我们不禁想到,能否利用人工智能强大的能力,来对抗假新闻呢?麻省理工学院计算机科学与人工智能实验室就为此做出了尝试。



假新闻是一种威胁,假新闻的大致定义为,通过传统媒体或社交媒体故意散布虚假信息的一种宣传。皮尤研究中心(Pew Research Center)在 2016 年 12 月的一项调查显示,有 23% 的美国成年人有意无意地与朋友和其他人分享过假新闻。研究显示,假新闻已经开始削弱公众对主要电视和报纸媒体的信任。Monmouth University 的一项调查显示,77% 的受访者称,他们认为媒体报道的全都是假新闻。在一个特别令人震惊的例子中,关于华盛顿特区一家披萨店的一则不真实的报道(但像病毒一样广为传播),导致在一项 1244 人参与的民意调查中,有 9% 的美国选民表示,他们认为前国务卿 Hillary Clinton 与一个儿童色情团伙有牵连。


为了引起人们对这一问题的关注,最近,麻省理工学院计算机科学与人工智能实验室(Computer Science and Artificial Intelligence Laboratory,CSAIL)的研究人员调查了所谓的假新闻探测器被真实文章愚弄的方式。与这项工作同时进行的是,同一个团队还使用了世界上最大的事实核查数据集之一来开发能够检测虚假陈述的自动化系统。


它是建立在麻省理工学院计算机科学与人工智能实验室去年进行的一项研究的基础上,该研究开发了一种人工智能系统,可以判断消息来源是准确的,还是带有政治偏见的。


Source: 对抗铺天盖地的假新闻,MIT开发AI检测系统自动识别虚假消息

InfoQ 促进软件开发领域知识与创新的传播
http://www.infoq.com/cn/
软佳科技有限公司 http://www.softplus.org
软佳医疗软件 http://www.ynhis.com
最新Linode VPS 优惠码新用户注册省10美元:Active Linode $10 Coupon

admin

  • *****
  • 0
  • +0/-0
  • 性别: 男
  • SoftPlus 资深程序员
    • 查看个人资料
    • http://www.softplus.org
InfoQ_微软推出Microsoft.Data.SqlClient,替代System.Data.SqlClient
« 回复 #5614 于: 十月 22, 2019, 10:16:30 pm »
微软推出Microsoft.Data.SqlClient,替代System.Data.SqlClient

背景


在 .NET创建之初,System.Data框架是一个重要的组件。它为创建 .NET数据库驱动程序提供了一种方式,类似Visual Basic的ActiveX Data Objects。虽然API不一样,但重用了它的名称,所以才有了ADO .NET这个绰号。


ADO和ADO .NET(即System.Data)之间的一个关键区别是对象模型。在ADO中,通常只需要使用ConnectionCommandRecordset对象,OleDB/ODBC驱动程序隐藏掉了其他东西。这提高了代码复用率,但开发人员难以将一些数据库特性暴露出来。


在ADO .NET中,你也可以使用OleDB/ODBC,但在大多数情况下会使用一系列特定于数据库的类。这些类派生自DBConnection、DBCommand和DBDataReader,可以保持原来的代码复用性。但因为它们是强命名类型,需要显式地作为 .NET库的一部分。


可能是为了简化开发,SQL Server、OleDB和ODBC驱动程序同时作为System.Data框架的一部分。这种方式在当时是可以接受的,但却给现在的SQL Server开发周期带来了问题。


实际上,SQL Server的发布周期已经从3年到5年变成了几乎每年一次。发布的新版本通常需要更新 .NET驱动程序,如果它被绑定到 .NET标准发布周期中,这就不可能及时发布。


Source: 微软推出Microsoft.Data.SqlClient,替代System.Data.SqlClient

InfoQ 促进软件开发领域知识与创新的传播
http://www.infoq.com/cn/
软佳科技有限公司 http://www.softplus.org
软佳医疗软件 http://www.ynhis.com
最新Linode VPS 优惠码新用户注册省10美元:Active Linode $10 Coupon

admin

  • *****
  • 0
  • +0/-0
  • 性别: 男
  • SoftPlus 资深程序员
    • 查看个人资料
    • http://www.softplus.org
已配置4000+页面,携程前端组件化探索之“乐高”运营系统

一、前言


市场部活动组主要负责各种运营活动的相关开发,分为常规运营活动和定制运营活动。常规运营活动因为组件(模块)具有复用性,并且配置化需求非常多,因此我们建设了一个可视化页面搭建平台——乐高(legao)活动平台。乐高平台将活动页面拆分为各种组件模块,运营人员通过自主的配置就能快速上线各种运营页面


组件承载页面交互和业务。最近的携程20周年系列营销活动涉及营销页面近百张,如果都是人工开发,要花费大量人力,几乎不可能完成。


里面包含了各种业务定制组件(能量入口,大牌订阅模块,定制逻辑导航等),各种“乐高”组件(大促,产品,抽奖,多banner,机票es等等),各种新开发“乐高”组件(秒杀,售卖,对接基础瀑布流sdk等),各种新定制snippets组件等,正是因为能分别开发这些能配置在“乐高”上的组件,才能在有限的开发资源下保证这么多的页面和配置需求能快速保质的上线,更重要的是能够持续配置运营。


因而建设平台的重点之一就是建设组件,在这个过程中,我们针对“乐高”的组件(模块)做了一些探索。


首先是如何丰富组件库。组件库的不断丰富(尤其是包含业务逻辑的组件模块)是为了满足运营方更多且更加灵活的配置需求。我们除了开发产品推出的组件外,从开发的角度推出了更多增强页面配置功能的组件,另外通过协同BU开发同学定制业务组件,也期望能够建设一种面向更多运营人员的“业务模块”中台性质的平台,从而使得更多组件能够配合使用。


Source: 已配置4000+页面,携程前端组件化探索之“乐高”运营系统

InfoQ 促进软件开发领域知识与创新的传播
http://www.infoq.com/cn/
软佳科技有限公司 http://www.softplus.org
软佳医疗软件 http://www.ynhis.com
最新Linode VPS 优惠码新用户注册省10美元:Active Linode $10 Coupon

admin

  • *****
  • 0
  • +0/-0
  • 性别: 男
  • SoftPlus 资深程序员
    • 查看个人资料
    • http://www.softplus.org
InfoQ_Flutter 原理与闲鱼深度实践
« 回复 #5616 于: 十月 22, 2019, 10:16:30 pm »
Flutter 原理与闲鱼深度实践

01 Flutter 原理



当我们谈到跨平台框架时,可能会想到很多备选方案。包括早期的 HTML 和 Cordova , 后来的 React Native , Weex ,以及这两年很是流行的 Flutter ,它们都在不同阶段不同程度上解决了我们对跨平台的诉求。如果我们从一些关键指标包括动态性、性能来观察,他们的区别还比较明显。


HTML 和 Cordova 具有最好的动态性,但他们的性能却是最差的,RN / Weex 具有良好的动态性。Flutter 则是一个纯原生的设计,其设计使它天生具有很好的性能与跨端一致性。



Flutter 是如何实现优秀的性能和跨端一致性的呢?从设计上可以看出 Flutter 在操作系统之上包含了三个层次。最下面是平台相关的嵌入层,其向上提供一个 Surface 用以绘制,建立了相关的线程模型和事件循环机制。在此之上则是一个平台无关的引擎,包括用于绘制的 Skia ;Dart 的运行时,开发模式下包括一个解释器;还有一部分是文本绘制相关内容。最上面就是用 Dart 语言编写的 Flutter 框架,也是我们最常接触到的内容。Flutter 框架包含一个完整分层的 UI 框架,从基础的 Foundation 库,到动画手势,再到渲染,之上又提供了各种丰富的 Widget 库。为了方便开发者使用, Flutter 还提供了两套不同风格的组件库,针对安卓的 Material Design 的组件库和针对 iOS 的 Cupertino 风格的组件库。


Source: Flutter 原理与闲鱼深度实践

InfoQ 促进软件开发领域知识与创新的传播
http://www.infoq.com/cn/
软佳科技有限公司 http://www.softplus.org
软佳医疗软件 http://www.ynhis.com
最新Linode VPS 优惠码新用户注册省10美元:Active Linode $10 Coupon

admin

  • *****
  • 0
  • +0/-0
  • 性别: 男
  • SoftPlus 资深程序员
    • 查看个人资料
    • http://www.softplus.org
InfoQ_梁胜:Rancher的Kubernetes思考及云原生实践
« 回复 #5617 于: 十月 22, 2019, 10:16:30 pm »
梁胜:Rancher的Kubernetes思考及云原生实践


对于云原生化改造,大部分传统企业可能还在初步摸索阶段,但围绕着Kubernetes的技术生态已经越来越丰富和完善,可应用的场景也逐渐增多。本文,InfoQ有幸采访了Rancher Labs联合创始人及CEO梁胜,探讨Rancher在云原生时代的技术思考。




云原生


2017 年末,Google 在过去十年编织全世界最先进的容器化基础设施经验,最终帮助 Kubernetes 项目取得关键领导地位,并将 CNCF 这个以“云原生”为关键词的组织和生态推向巅峰。根据 CNCF 的定义(V1.0),云原生技术有利于各组织在公有云、私有云和混合云等新型动态环境中,构建和运行可弹性扩展的应用。云原生的代表技术包括容器、服务网格、微服务、不可变基础设施和声明式 API。


通俗理解,所谓“云原生”,实际上就是在定义一条能够让应用最大程度利用云的能力、发挥云的价值的最佳路径。在这条路径上,脱离了“应用”这个载体,“云原生”就无从谈起;容器技术,则是将这个理念落地、将软件交付的革命持续进行下去的重要手段之一。


然而,即便如今的Kubernetes项目获得了如此多关注,但以此为基础的云原生整个生态体系还没有得到开发者的广泛青睐,梁胜在采访中表示,从概念上来说,云原生已经被广大开发者普遍接受,但总体而言,开发者对于技术的成熟度及稳定性仍存在信心不足等问题,还需要一段时间的发展以及推广。从今年的情况看来,KubeCon的参会者逐年累增,侧面反映了技术成长很快,关注的开发者也越来越多。


Source: 梁胜:Rancher的Kubernetes思考及云原生实践

InfoQ 促进软件开发领域知识与创新的传播
http://www.infoq.com/cn/
软佳科技有限公司 http://www.softplus.org
软佳医疗软件 http://www.ynhis.com
最新Linode VPS 优惠码新用户注册省10美元:Active Linode $10 Coupon

admin

  • *****
  • 0
  • +0/-0
  • 性别: 男
  • SoftPlus 资深程序员
    • 查看个人资料
    • http://www.softplus.org
InfoQ_五种拥有光明发展前景的新兴编程语言
« 回复 #5618 于: 十月 22, 2019, 10:16:30 pm »
五种拥有光明发展前景的新兴编程语言

在软件项目与具体实现层面,我们需要考虑众多具体因素。但无论从哪种角度出发,技术栈的选择永远是决定项目成功与否的核心因素之一。根据您的实际应用需求、站点或者产品设计思路,不同的编程语言往往能够带来不同的效果甚至左右项目的最终命运。


更重要的是,当下针对不同需求侧重的出色编程语言多种多样。无论市场如何变化,实际要求似乎永远能够在某些语言、特别是新兴编程语言当中得到满足。在今天的文章中,我们将纵览行业中的开发新趋势、对五种新兴编程语言做出点评,同时概括其强大功能。


五大新兴语言


首先聊聊目前最为主流的几种编程语言,具体包括 JavaJavaScriptPythonPHPC#C++ 以及 Ruby。这些可以说是开发领域见证最高的编程语言选项。然而,ScalaSwiftGo 以及 Clojure 也在不同方向上带来突破。虽然在使用范围方面,这几种语言的影响力还比较有限,但已经有众多企业开始将其引入生产环境,预计未来几年中编程语言市场还将迎来新一轮更迭。我们闲言少叙,马上进入今天的新兴语言汇总环节。


Elm



Elm 在今天的榜单上名列首位当然不是偶然,而是凭借自身出色的功能与核心优势。作为函数编程的支持者,Elm 一直强调面向 JavaScript 代码的转换能力,因此非常适合大部分实际需求。这款编程语言专注于可用性,且能够在配合或者无需 JavaScript 的前提下构建 Web UI。除此之外,您还能够通过 Elm 获得以下收益:


Source: 五种拥有光明发展前景的新兴编程语言

InfoQ 促进软件开发领域知识与创新的传播
http://www.infoq.com/cn/
软佳科技有限公司 http://www.softplus.org
软佳医疗软件 http://www.ynhis.com
最新Linode VPS 优惠码新用户注册省10美元:Active Linode $10 Coupon

admin

  • *****
  • 0
  • +0/-0
  • 性别: 男
  • SoftPlus 资深程序员
    • 查看个人资料
    • http://www.softplus.org
InfoQ_向左还是向右?聊聊中台建设中的那些纠结事
« 回复 #5619 于: 十月 22, 2019, 10:16:30 pm »
向左还是向右?聊聊中台建设中的那些纠结事


今年参加了云栖大会,作为中台的践行者,我也更关注中台架构实施的行业状况,学习了其他公司中台的思想和经验。云栖大会上,我和做中台实践的同学,以及在阿里做中台的朋友进行了深入的交流和探讨,对做中台过程中遇到的比较纠结的问题进行了思考和总结。




在探讨中台哪些让人纠结不定烦心事之前,我们依然要谈谈我们为什么要做中台(注:本文中台局限于企业IT架构的中台,非广义上的中台),做中台到底给我带来哪些好处,想不清楚这些就去深入到中台的细节里也无意义。 中台概念这几年特别火,就像90年代不做ERP是等死一样,现在做不做中台也好像能定企业生死一样,弄得大家都在搞中台。但是不是所有的企业都适合做中台,只有符合以下条件的企业,才有实施中台的必要,切莫乱搞。


企业适合做中台的条件


所以,如果您是创业团队,或者业务线比较单一,建议不要盲目尝试中台架构,否则将拖累你业务发展的速度 。另外,我们也要清晰的知道实施中台的目的,以及中台会给企业带来的价值,没有实际利益的推动中台就很难落地,或者有形而无神。


Source: 向左还是向右?聊聊中台建设中的那些纠结事

InfoQ 促进软件开发领域知识与创新的传播
http://www.infoq.com/cn/
软佳科技有限公司 http://www.softplus.org
软佳医疗软件 http://www.ynhis.com
最新Linode VPS 优惠码新用户注册省10美元:Active Linode $10 Coupon

admin

  • *****
  • 0
  • +0/-0
  • 性别: 男
  • SoftPlus 资深程序员
    • 查看个人资料
    • http://www.softplus.org
阿里又有大动作:平头哥宣布开源MCU芯片设计平台,迎接AIoT时代


10月21日,在第六届乌镇互联网大会上,阿里巴巴平头哥官方宣布:正式开源低功耗微控制芯片(MCU)设计平台。这是平头哥继玄铁910无剑SoC含光800一系列动作之后,在芯片领域又一“落子”。对此,平头哥表示,此次开源的MCU芯片设计平台面向AIoT时代的定制化芯片设计需求,目标群体包括芯片设计公司、IP供应商、高校、科研院所等



MCU芯片设计平台



平头哥的MCU芯片设计平台

MCU芯片设计平台是平头哥的首个开源平台,平台针对的目标群体包括芯片设计公司、IP供应商、高校及科研院所等。开发者能够基于该平台设计面向细分领域的定制化芯片,IP供应商可以研发原生于该平台的核心IP,高校和科研院所则可开展芯片相关的教学及科研活动。


平台提供基于MCU的定制芯片的基础共性技术,包含处理器、基础的接口IP、操作系统、软件驱动和开发工具等模块,能让用户快速集成、快速验证,减少基础模块开发成本。平台还搭载了玄铁902处理器,提供UART、SPI、I2C、Timer、PWM等多种IP以及驱动。据了解,平头哥后续还将开放更多IP和玄铁处理器。


平头哥表示,希望通过开源方式,把基础共性能力共享给整个行业。用户不需要斥巨资作前期投入去设计基础组件IP,要做的是专心定义好碎片化的场景和需求,把面向领域的功能IP设计好、验证好,快速完成芯片量产。


Source: 阿里又有大动作:平头哥宣布开源MCU芯片设计平台,迎接AIoT时代

InfoQ 促进软件开发领域知识与创新的传播
http://www.infoq.com/cn/
软佳科技有限公司 http://www.softplus.org
软佳医疗软件 http://www.ynhis.com
最新Linode VPS 优惠码新用户注册省10美元:Active Linode $10 Coupon

admin

  • *****
  • 0
  • +0/-0
  • 性别: 男
  • SoftPlus 资深程序员
    • 查看个人资料
    • http://www.softplus.org
上云容易出站难:AWS发出5000万美元的巨额数据传输费用账单

业界有句口口相传的话:推动企业上云的第一动力是省成本。2019 年,是企业上云的关键一年,更多的企业掀起了“上云”的热潮,同时云计算的支出也开始备受关注。


有很多方式导致云计算的费用高昂,甚至高的出乎意料。其中有一项支出是将数据从A云提供商迁移到B云提供商或自己的数据中心所产生的成本,这个成本通常被叫作”数据传输费用“。


the information给出了一张图,汇总了Amazon Web Service上“数据传输费用”最高的10家企业。



这张图显示了这10家企业在2017和2018年的“数据传输费用”。其中Apple在2017年的费用达到5000万美元,约占当年云服务总账单7.75亿美元的6.5%。与前一年相比,10家中有7家“数据传输费用”增长了50%以上。无法得知为什么这些公司会有这么高的数据传输费用。对于公有云的用户来说,这些高额费用是长期以来一直存在的问题。


Source: 上云容易出站难:AWS发出5000万美元的巨额数据传输费用账单

InfoQ 促进软件开发领域知识与创新的传播
http://www.infoq.com/cn/
软佳科技有限公司 http://www.softplus.org
软佳医疗软件 http://www.ynhis.com
最新Linode VPS 优惠码新用户注册省10美元:Active Linode $10 Coupon

admin

  • *****
  • 0
  • +0/-0
  • 性别: 男
  • SoftPlus 资深程序员
    • 查看个人资料
    • http://www.softplus.org
InfoQ_Kafka-Clients源码学习:KafkaProducer篇
« 回复 #5622 于: 十月 22, 2019, 10:16:30 pm »
Kafka-Clients源码学习:KafkaProducer篇

前言


本文基于Kafka-clients:1.1.0版本。


KafkaProducer的发送流程


调用流程图



此图描述的是用户启动一个线程使用KafkaProducer进行消息发送的大概流程。除了用户主线程,KafkaProducer在新建实例时还会启动一个设置为daemon的Sender线程。


user线程


图中红线画出的用户主线程调用栈。当调用send方法发送record后会经历如下流程:



  1. 确认元数据可用

  2. 序列化

  3. 将数据append进缓存


下面由代码分析一下,为了清晰起见省略了部分内容。


确认元数据可用(waitOnMetadata)


    private ClusterAndWaitTime waitOnMetadata(String topic, Integer partition, long maxWaitMs) throws InterruptedException {
        // 将topic放入metadata中,如果已存在就刷新过期时间
        metadata.add(topic);
        // 从内存中fetch cluster元数据
        Cluster cluster = metadata.fetch();
        Integer partitionsCount = cluster.partitionCountForTopic(topic); // 找到了直接return
        if (partitionsCount != null && (partition == null || partition < partitionsCount))
            return new ClusterAndWaitTime(cluster, 0);

        long begin = time.milliseconds();
        long remainingWaitMs = maxWaitMs;
        long elapsed;
        // 标识需要进行元数据更新,并且等待至更新完成或抛出超时异常
        do {
            metadata.add(topic);
            int version = metadata.requestUpdate();
            sender.wakeup();
            try {
                metadata.awaitUpdate(version, remainingWaitMs);
            } catch (TimeoutException ex) {
                throw new TimeoutException("Failed to update metadata after " + maxWaitMs + " ms.");
            }
            //省略部分超时、权限异常检测代码
            ......
            partitionsCount = cluster.partitionCountForTopic(topic);
        } while (partitionsCount == null);

        if (partition != null && partition >= partitionsCount) {
            throw new KafkaException(
                    String.format("Invalid partition given with record: %d is not in the range [0...%d).", partition, partitionsCount));
        }

        return new ClusterAndWaitTime(cluster, elapsed);
    }   

序列化


    private Future<RecordMetadata> doSend(ProducerRecord<K, V> record, Callback callback) {
        TopicPartition tp = null;
        try {
            //省略部分
            //......
            byte[] serializedKey;
            try {
                //序列化key
                serializedKey = keySerializer.serialize(record.topic(), record.headers(), record.key());
            } catch (ClassCastException cce) {
                throw new SerializationException("Can't convert key of class " + record.key().getClass().getName() +
                        " to class " + producerConfig.getClass(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG).getName() +
                        " specified in key.serializer", cce);
            }
            byte[] serializedValue;
            try {
                //序列化value
                serializedValue = valueSerializer.serialize(record.topic(), record.headers(), record.value());
            } catch (ClassCastException cce) {
                throw new SerializationException("Can't convert value of class " + record.value().getClass().getName() +
                        " to class " + producerConfig.getClass(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG).getName() +
                        " specified in value.serializer", cce);
            }
           
            Header[] headers = record.headers().toArray();
            int serializedSize = AbstractRecords.estimateSizeInBytesUpperBound(apiVersions.maxUsableProduceMagic(), compressionType, serializedKey, serializedValue, headers);
            //估算序列化后大小,确保不会超过max_request_size或者total_memory_size
            ensureValidRecordSize(serializedSize);
        }
        //省略部分
        //......
    }

将数据append进缓存(RecordAccumulator.append)


消息会被append进accumulator缓存结构中的双端队列,下面用一张图解释一下这个缓存结构。消息会从对应双端队列的尾部batch被写入。在Sender线程中每次会从头部batch拉取。


Source: Kafka-Clients源码学习:KafkaProducer篇

InfoQ 促进软件开发领域知识与创新的传播
http://www.infoq.com/cn/
软佳科技有限公司 http://www.softplus.org
软佳医疗软件 http://www.ynhis.com
最新Linode VPS 优惠码新用户注册省10美元:Active Linode $10 Coupon

admin

  • *****
  • 0
  • +0/-0
  • 性别: 男
  • SoftPlus 资深程序员
    • 查看个人资料
    • http://www.softplus.org
InfoQ_技术进化论是一个巨大的谎言
« 回复 #5623 于: 十月 22, 2019, 10:16:30 pm »
技术进化论是一个巨大的谎言

想象一下,你正在上一门在线商务课程——就是那种先让你看视频再要你回答问题的课程。不过,这次不是普通的课程,不只是你在听课,他们也在“看”你。当面部识别系统认为你感觉到无聊、心烦意乱或心不在焉时,就会把这些瞬间记录下来。在课程结束后,它只会问你在这些瞬间教授的内容。


这个系统不是凭空假设出来的,一家叫作Nestor的公司正式推出了这个系统。相信不只是你不喜欢它,其他学生也不喜欢。


我问法国发明家Marcel Saucet(也就是这个系统的发明人):上这些课的学生对被监视有什么感觉?他说那些学生也不喜欢这样。他说,学生们感觉受到了侵犯,受到了监视,但他不认为这是他的错。“所有人都在这么做。虽然现在做得还不好,甚至还有点令人感到厌恶,但我们不能违背自然进化的规律”。


作为一名主要报道技术与未来发展的记者,我经常听到这样的说法:技术专家试图将达尔文的生物进化论应用到自己的工作中。他们说,技术在进步,其重要性超过了任何一个发明家或CEO。他们认为,人类现在处于一个无法抵挡的潮流中,所以会不可避免地出现这些东西:面部识别(现在甚至被应用到儿童身上)、录下亲密对话的智能音箱,以及可以监视邻居的门铃。他们说,我们不能因为侵犯隐私、民主或信任而指责这些公司——这一切迟早都会发生。


他们说,“我们能把妖怪关在瓶子里吗”?他们认为,人们之所以买这些东西,是因为他们需要,企业只是在回应消费者的“自然选择”。他们说,这不能怪任何人,它就像重力一样自然存在。


Source: 技术进化论是一个巨大的谎言

InfoQ 促进软件开发领域知识与创新的传播
http://www.infoq.com/cn/
软佳科技有限公司 http://www.softplus.org
软佳医疗软件 http://www.ynhis.com
最新Linode VPS 优惠码新用户注册省10美元:Active Linode $10 Coupon

admin

  • *****
  • 0
  • +0/-0
  • 性别: 男
  • SoftPlus 资深程序员
    • 查看个人资料
    • http://www.softplus.org
InfoQ_千呼万唤始出来,苹果预计2020年发布AR眼镜
« 回复 #5624 于: 十月 23, 2019, 10:01:25 am »
千呼万唤始出来,苹果预计2020年发布AR眼镜


2019年10月21日,彭博社消息:苹果AR智能眼镜有望在2020年推出,该设备将实现与用户的iPhone同步,在用户的​​视场上显示诸如文本,电子邮件,地图和游戏之类的内容。



苹果或将于2020年推出AR眼镜


苹果终于要发布AR产品了。


对于一直以来关注苹果的用户来说,这绝对是一个重磅的好消息,因为他们等的实在太辛苦了。


彭博社报道,苹果大概率会在2020年推出AR眼镜,这款眼镜不仅可以将iPhone的信息同步过来,还可以将这些信息在用户眼前直接呈现,不论不是文本邮件还是图片、游戏,苹果公司甚至已考虑在AR眼镜中设置一个App Store,就像在Apple TV和Apple Watch上一样,苹果方面表示:已经聘请了图形和游戏开发方面的专家,以将眼镜确立为新产品类别的领导者,如果一切顺利的话,它将最终成为iPhone的继任者(甚至可能会是替代者)。


苹果专利设计图


不过,这样的决定势必会带来技术上的挑战,考虑到这一障碍和完善AR技术的挑战,如果高管们认为在实验室中需要更多时间,那么该产品可能会跳票。


Source: 千呼万唤始出来,苹果预计2020年发布AR眼镜

InfoQ 促进软件开发领域知识与创新的传播
http://www.infoq.com/cn/
软佳科技有限公司 http://www.softplus.org
软佳医疗软件 http://www.ynhis.com
最新Linode VPS 优惠码新用户注册省10美元:Active Linode $10 Coupon

 

Sitemap 1 2 3 4 5 6 7 8 9