watermark

快服务流量之争:如何在快服务中占领一席之地

╄→尐↘猪︶ㄣ 提交于 2020-08-16 05:54:36
  兵法有云:知己知彼百战不殆。要想利用快服务去提升曝光量、引流量,就必须先了解快服务是什么,快服务的分发机制,以及如何根据其分发机制去更好地配置我们的快服务。从而提高快服务的曝光率,进而提高快服务的点击量。   首先我们来看一下华为快服务的官方解释: 快服务(Ability)是由华为快服务智慧平台接入的一种技能,为华为情景智能、智慧搜索、服务直达、智慧语音以及智慧视觉等流量入口提供服务技能。快服务以 轻量化① 的呈现形式(如卡片、语音、图标等)和智能化 分发② 方式触达合适用户,为用户提供灵活、贴心、智慧以及 跨终端④ 的一致性体验。快服务创造性地实现了两个能力:人找服务更便捷&服务找人更智能,为开发者的服务带来全新的 流量入口③ 以及更多的自然流量;为用户提供更加贴心便捷的服务体验。   关键词已经加粗,那么接下来我们细品这句话的每个关键点: 1、 轻量化服务   何为轻量化服务呢?APP一般是一个大功能集合,轻量化服务是指功能集里的某个最小功能。比如支付宝APP的收款码、乘车码等,这些就是支付宝轻量化后的功能,我们可以将其比喻为“原子”。一个应用由多个“原子”组成,基于各种“原子”,应用才能实现各种各样的功能。而若是需要接入快服务,更是必须熟悉自己产品到底由多少“原子”构成。   面对产品众多的“原子”,快服务中的直达应用可以简化操作,批量生成服务。  

微服务开发手册之GRPC

|▌冷眼眸甩不掉的悲伤 提交于 2020-08-16 01:48:20
GRPC是一个高性能、通用的开源RPC框架,基于HTTP/2协议标准和Protobuf序列化协议开发,支持众多的开发语言。 @[TOC] 1 简介 在GRPC框架中,客户端可以像调用本地对象一样直接调用位于不同机器的服务端方法,如此我们就可以非常方便的创建一些分布式的应用服务。 在服务端,我们实现了所定义的服务和可供远程调用的方法,运行一个gRPC server来处理客户端的请求;在客户端,gRPC实现了一个stub(可以简单理解为一个client),其提供跟服务端相同的方法。 gRPC使用protocol buffers作为接口描述语言(IDL)以及底层的信息交换格式,一般情况下推荐使用 proto3因为其能够支持更多的语言,并减少一些兼容性的问题。 由于gRPC涉及到几个比较重要的技术点http2、protobuf,正是这几个技术点才使得gRPC得到广泛应用,这里也顺带讲一下这几个技术点 1.1 http2 HTTP/2是最新的HTTP协议,提高了资源访问效率。通过本篇科普小文,可以了解HTTP/2协议的概念以及优势。 HTTP/2也被称为HTTP 2.0,相对于HTTP 1.1新增多路复用、压缩HTTP头、划分请求优先级、服务端推送等特性,解决了在HTTP 1.1中一直存在的问题,优化了请求性能,同时兼容了HTTP 1.1的语义。 2015年,HTTP/2 发布。HTTP

AD9371、AD9361、ADRV9009驱动开发、调试

眉间皱痕 提交于 2020-08-15 16:49:27
ADRV9361、AD9371、9009是有ADI开发的射频直采芯片。 ADI官方提供的demo都是给予总线架构的,个人认为不方便移植,下面就单独就AD9371的开发架构做一个简单的说明: ADI官方驱动是基于总线架构的,具体的架构如下图所示: 这种架构,可移植性差,比如AD9371配置可以直接用一个STM32或者其他的单片机来配置,如果用官方的这套框架,是很难移植的。 接下来说下我自己的框架: 对应的BD文件,如下图所示: 由图可以看出,基本只需要几个emio,就可以搞定,如果移植到对应的MCU上,也只是通过MCU实现一个简单的SPI时序就OK了,对于接收部分,采用的是xilinx的IP核设计(也可以自己设计JESD204B协议实现),对应的程序框架图下图所示: 最终效果: 总结:本人已经在多个平台上验证,同时具备多片同步的技术,有需要的可以联系本人 ———————————————— 版权声明:本文为CSDN博主「知芯科技」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/jingjiankai5228/article/details/102059367 来源: oschina 链接: https://my.oschina.net/u/2963604/blog/4322475

Polkadot-k8s实战教程

南楼画角 提交于 2020-08-15 14:10:27
polkadot-k8s是一个用于快速搭建安全的Polkadot或Kusama验证节点的开源项目。Polkadot是一个支持分片的采用POS共识的区块链,Kusma是Polkadot的测试网络。在这个教程中,我们将学习如何利用自动化工具在Google Kubernetes Engine上部署Polkadot验证节点,不需要编译任何Rust代码或安全任何启动脚本。 区块链开发教程链接: 以太坊 | 比特币 | EOS | Tendermint | Hyperledger Fabric | Omni/USDT | Ripple 1、Polkadot K8s安装准备 在开始之前建议你先了解下Polkadot中的 抵押概念 并通读 如何成为验证节点 。 然后创建一个 Google Cloud 账号,你可以得到价值$300的免费积分,这足够跑通本教程了。 接下来下载以下应用并安装在你的机器上。 Google Cloud SDK Kubectl Terraform 执行身份验证并创建本地的应用凭证: gcloud auth login gcloud auth application-default login 2、polkadot k8s安装部署 克隆 polkadot-k8s 仓库并执行以下命令: cd terrraform terraform init terraform plan

区块链系列教程之:比特币的世界

試著忘記壹切 提交于 2020-08-15 14:05:41
简介 2008年一个化名为中本聪的神秘人第一次以论文的形式提出了:比特币:一种点对点电子现金系统(Bitcoin:A Peer-to-Peer Electroic Cash System),从此标志着比特币的诞生。 2008年到2020年,经过12年的发展,比特币已经成为市值最高的虚拟货币,也是当之无愧的虚拟货币大当家。那么比特币的发展中有哪些有趣的事情呢?且随着本文的步伐来一步一步揭开比特币的神秘面纱吧。 更多精彩内容且看: 区块链从入门到放弃系列教程-涵盖密码学,超级账本,以太坊,Libra,比特币等持续更新 Spring Boot 2.X系列教程:七天从无到有掌握Spring Boot-持续更新 Spring 5.X系列教程:满足你对Spring5的一切想象-持续更新 java程序员从小工到专家成神之路(2020版)-持续更新中,附详细文章教程 比特币的诞生 2008年10月31日,一个署名叫Satoshi Nakamoto的人,发表了一篇论文,论文的名字叫做Bitcoin:A Peer-to-Peer Electroic Cash System,翻译过来就是比特币:一种点对点电子现金系统。这代表这比特币诞生了。 下面是这篇论文的摘要。 有兴趣的朋友可以去阅读一下论文的正文部分,正文部分不长,只有9页,而就是这短短的9页为我们打开了一个新世界的大门。 论文中并没有引入新的技术

阿里云云计算ACP实验考试之使用OSS对图片进行基本处理

白昼怎懂夜的黑 提交于 2020-08-15 11:26:47
实验概述 本实验以图片分享网站为原型。该网站拥有大量静态文件,作为一个图片分享平台,需要根据用户请求,实时地将用户的原图在线转换成需要的图片。本实验使用ECS作为Web服务端,使用OSS服务作为图片存储,解决了图片在线处理的问题。由于使用OSS的图片处理功能需要进行域名绑定,事先已将OSS bucket和指定的ECS Web服务器端进行域名绑定,并进行CNAME配置。配置完成后,即可通过ECS Web服务端域名访问OSS bucket保存的静态数据。 实验目标 完成此实验后,可以掌握的能力有: 使用OSS Java SDK上传图片到OSS bucket; 使用OSS Java SDK进行图片缩放和水印处理; 使用域名访问OSS bucket中的原始图片和处理后的图片。 第 1 章:实验背景 1.1 背景知识 本实验以图片分享网站为原型。该网站拥有大量静态文件,作为一个图片分享平台,需要根据用户请求,实时地将用户的原图在线转换成需要的图片。 本实验的架构使用ECS作为Web服务端,使用OSS服务作为图片存储,解决了图片在线处理的问题。由于使用OSS的图片处理功能需要进行域名绑定,事先已将OSS bucket和指定的ECS Web服务器端进行域名绑定,并进行CNAME配置。配置完成后,即可通过ECS Web服务端域名访问OSS bucket保存的静态数据。 使用该架构的 优势: 1)

查看Keil编译代码大小

痴心易碎 提交于 2020-08-15 10:08:03
在Keil中编译代码,超出单片机的存储容量,会弹出以下错误。 Error: L6406E: No space in execution regions with .ANY selector matching xxx.o. 那么,如何得知编译出来的代码,占用了多大的空间? 在Keil中按Rebuild(不是Build)。 没有错误的话,会得到下图所示。 在工程目录下,打开Listings目录,如下图所示。 这里,Libraries存放STM32的固件库,Listings存放映射表,Objects存放.o的中间文件以及.hex下载文件,USER存放源代码。 编译的过程,简单来说是Keil读取Libraries和USER中的源代码,编译成.o中间文件并存放在Objects目录,最后通过链接脚本,把若干个.o文件链接成.hex文件。 其中链接生成的报告在Listings目录中,打开它,可以看到.map文件。 用记事本打开.map文件,拉到最后几行。 这里的Code、RO Data、RW Data、ZI Data是和前面Keil编译的结果相一致的。 Code是代码占用的空间。 RO data是 (Read Only )只读常量的大小,如const。 RW data是(Read Write) 初始化了的可读写变量的大小。 ZI data是(Zero Initialize)

图片加水印自动缩放的三种方式, 支持jpg, png, gif

牧云@^-^@ 提交于 2020-08-15 06:35:54
JAVA 自带图片处理, 不支持gif, png 会变黑, 需要处理 /** * 添加图片水印 * 水印固定为 @xxxxxx 角标 * @param srcFile * @return */ public static File addWaterMark (File srcFile) { OutputStream os = null; try { // 源图片 String formatName = FileType. getSuffixByFilename (srcFile.getName()).substring( 1 ) ; if (!FileType. JPG .equalsIgnoreCase(formatName)) { // 暂不支持其他类型的图片 return srcFile ; } Image srcImg = ImageIO. read (srcFile) ; BufferedImage buffImg = new BufferedImage(srcImg.getWidth( null ) , srcImg.getHeight( null ) , BufferedImage. TYPE_INT_RGB ) ; int srcImgWidth = buffImg.getWidth() ; // 图片宽 int srcImgHeight = buffImg

链接MySQL数据库做好自动备份文件路径的操作

放肆的年华 提交于 2020-08-15 04:42:35
我们在接触到了MySQL数据库之后,能用到实战方面的自然也是多多少少会有些,轻轻松松的一次过程,都是一种都市感受带来的滋润感。 1.当我们开始时时刻刻能够打开Navicat,进入计划菜单,设置计划任务,然后选中!! 2.测试一下设置是否成功,进入备份中查看,如果有自己设置指定时间做的备份,那就表示成功了。 调整备份存储路径: 第一步,数据库选中的一个链接,适当的养生SPA体验都会显著增强很多都市情感体验,渐渐地找到不同养生娱乐带来的运动,选择编辑链接,如果有在使用会弹出提示,不要管它,点击确认就好。 第二步,选择高级,修改存储路径,设置成功。 来源: oschina 链接: https://my.oschina.net/u/4477637/blog/4282112

存储过程的使用(二)条件语句和循环语句

坚强是说给别人听的谎言 提交于 2020-08-15 04:03:35
条件语句部分 循环语句:有 **1.** REPEAT 直至条件表达式为True时执行的语句 UNTIL 条件表达式 END REPEAT; **2.** WHILE 条件表达式 DO 系列语句 END WHILE while 循环语句与repeat循环控制语句的区别是前者条件不符合一次循环体都不会执行,而后者无论条件是否符合,至少执行一次循环体,这点从前面的案例可以看出来。while循环语句语法如下: 针对变量和声明变量的定义最上面有,可以一看 来源: oschina 链接: https://my.oschina.net/u/3649200/blog/4454575