Streams

Java 8 Stream API学习总结

假如想象 提交于 2020-08-05 01:47:29
Java 8 API添加了一个新的抽象称为流Stream,可以让你以一种声明的方式处理数据。Stream API可以极大提高Java程序员的生产力,让程序员写出高效率、干净、简洁的代码。这种风格将要处理的元素集合看作一种流, 流在管道中传输, 并且可以在管道的节点上进行处理, 比如筛选, 排序,聚合等。元素流在管道中经过中间操作(intermediate operation)的处理,最后由最终操作(terminal operation)得到前面处理的结果。 这一次为什么要系统性的总结一下 Java 8 Stream API 呢?说得简单点,我们先不论性能,我们就是为了 装x ,而且要让这个 x 装得再优秀一些,仅此而已! Stream基础知识 流程 创建流 → 流的中间操作 → 流的最终操作 创建流 我们需要把哪些元素放入流中,常见的api有: // 使用List创建流 list.stream() // 使用一个或多个元素创建流 Stream.of(T value) Stream.of(T... values) // 使用数组创建流 Arrays.stream(T[] array) // 创建一个空流 Stream.empty() // 两个流合并 Stream.concat(Stream<? extends T> a, Stream<? extends T> b) //

Android Camera HAL3中预览preview模式下的控制流

对着背影说爱祢 提交于 2020-08-04 22:40:53
文均属自己阅读源码的点滴总结,转账请注明出处谢谢。 欢迎和大家交流。qq:1037701636 email:gzzaigcn2009@163.com Software:系统源码Android5.1 Camera3研读前沿: 当初在研读Camera1.0相关的内容时,主要围绕着CameraClient、CameraHardwareInterface等方面进行工作的开展,无论是数据流还是控制流看起来都很简单、明了,一系列的流程化操作使得整个框架学起来特别的容易。因为没有Camera2.0相关的基础,所以这次直接看3.0相关的源码时,显得十分的吃紧,再加上底层高通HAL3.0实现的过程也是相当的复杂,都给整个研读过程带来了很多的困难。可以说,自身目前对Camera3.0框架的熟悉度也大概只有70%左右,希望通过总结来进一步梳理他的工作原理与整个框架,并进一步熟悉与加深理解。 1.Camera3下的整体架构图。 整个CameraService建立起一个可用操作底层Camera device大致需要经过Camera2Client、Camera3Device以及HAL层的camera3_device_t三个部分。 从上图中可以发现Camera3架构看上去明显比camera1来的复杂,但他更加的模块化。对比起Android4.2.2 Camer系统架构图(HAL和回调处理

Kafka源码分析(一)

烂漫一生 提交于 2020-08-04 18:00:12
Apache Kafka® 是 一个分布式流处理平台. 这到底意味着什么呢? 我们知道流处理平台有以下三种特性: 可以让你发布和订阅流式的记录。这一方面与消息队列或者企业消息系统类似。 可以储存流式的记录,并且有较好的容错性。 可以在流式记录产生时就进行处理。 Kafka适合什么样的场景? 它可以用于两大类别的应用: 构造实时流数据管道,它可以在系统或应用之间可靠地获取数据。 (相当于 message queue ) 构建实时流式应用程序,对这些流数据进行转换或者影响。(就是流处理,通过 kafka stream topic 和 topic 之间内部进行变化) 为了理解Kafka是如何做到以上所说的功能,从下面开始,我们将深入探索Kafka的特性。. 首先是一些概念: Kafka 作为一个集群,运行在一台或者多台服务器上. Kafka 通过 topic 对存储的流数据进行分类。 每条记录中包含一个 key ,一个 value 和一个 timestamp (时间戳)。 Kafka有四个核心的API: The Producer API 允许一个应用程序发布一串流式的数据到一个或者多个Kafka topic。 The Consumer API 允许一个应用程序订阅一个或多个 topic ,并且对发布给他们的流式数据进行处理。 The Streams API

5.1. PHP

只愿长相守 提交于 2020-08-04 17:37:46
内容索引: 5.1. PHP 5.1.1. 后门 5.1.1.1. php.ini构成的后门 5.1.1.2. .user.ini文件构成的PHP后门 5.1.2. 反序列化 5.1.2.1. PHP序列化实现 5.1.2.2. PHP反序列化漏洞 5.1.2.3. 相关CVE 5.1.2.3.1. CVE-2016-7124 5.1.3. Disable Functions 5.1.3.1. 机制实现 5.1.3.2. Bypass 5.1.4. Open Basedir 5.1.4.1. 机制实现 5.1.5. 安全相关配置 5.1.5.1. 函数与类限制 5.1.5.2. 目录访问限制 5.1.5.3. 远程引用限制 5.1.5.4. Session 5.1.5.4.1. Session.Save 5.1.5.4.2. Session.Upload 5.1.6. PHP流 5.1.6.1. 简介 5.1.6.2. 封装协议 5.1.6.3. PHP支持流 5.1.6.3.1. 输入输出流 5.1.6.3.2. fd 5.1.6.3.3. memory与temp 5.1.6.3.4. input 5.1.6.4. filter 5.1.6.4.1. 过滤器列表 5.1.6.4.2. 过滤器利用tricks 5.1.7. htaccess injection payload 5

微服务海量日志监控平台

安稳与你 提交于 2020-07-28 10:14:05
前面几章蜻蜓点水的介绍了elasticsearch、apm相关的内容。本片主要介绍怎么使用ELK Stack帮助我们打造一个支撑起日产TB级的日志监控系统 背景 在企业级的微服务环境中,跑着成百上千个服务都算是比较小的规模了。在生产环境上,日志扮演着很重要的角色,排查异常需要日志,性能优化需要日志,业务排查需要业务等等。然而在生产上跑着成百上千个服务,每个服务都只会简单的本地化存储,当需要日志协助排查问题时,很难找到日志所在的节点。也很难挖掘业务日志的数据价值。那么将日志统一输出到一个地方集中管理,然后将日志处理化,把结果输出成运维、研发可用的数据是解决日志管理、协助运维的可行方案,也是企业迫切解决日志的需求。 我们的解决方案 通过上面的需求我们推出了日志监控系统。 日志统一收集、过滤清洗。 生成可视化界面、监控,告警,日志搜索。 功能流程概览 在每个服务节点上埋点,实时采集相关日志。 统一日志收集服务、过滤、清洗日志后生成可视化界面、告警功能。 我们的架构 日志文件采集端我们使用filebeat,运维通过我们的后台管理界面化配置,每个机器对应一个filebeat,每个filebeat日志对应的topic可以是一对一、多对一,根据日常的日志量配置不同的策略。除了采集业务服务日志外,我们还收集了mysql的慢查询日志和错误日志,还有别的第三方服务日志,如:nginx等

FFMpeg.AutoGen(1)讲解官方example代码:Main函数、 解码

时光怂恿深爱的人放手 提交于 2020-07-27 04:25:24
FFMpeg 是一套C编译的开源工具集。主要用于视频处理,可以编解码视频,建立流媒体服务器等等。官方网站: http://ffmpeg.org/ FFMpeg.AutoGen 封装方法以方便C#调用FFmpeg。项目地址: https://github.com/Ruslan-B/FFmpeg.AutoGen 。可以使用NuGet安装。 AutoGen只是封装调用FFmpeg,程序还是需要下在FFmpeg工具放在程序目录里,且版本要对应。 笔者用FFMpeg.AutoGetn的官方example代码介绍一下FFMpege如何使用(源代码在其github库里)。 example是一个命令行程序,mian函数里面的代码如下。我将通过此函数调用顺序介绍ffmpeg.AutoGet的用法。 目录: 1.注册FFmpeg库。实际就将ffmpeg库的地址告诉autogen 2.ffmpeg 一些调用其的配置(可选) 2.1 配置日志输出 2.2配置硬件解码器ffmpeg是支持硬解的.具体支持类型可以参考ffmpeg官方文档。转载网友摘录的ffmpeg支持硬解编码的枚举。 3.解码函数DecodeAllFramesToImages 3.1 VideoStreamDecoder类 3.2 VideoFrameConverter类 3.3 相关数据结构AVPacket,AVFrame

微服务海量日志监控平台

心不动则不痛 提交于 2020-07-24 12:28:02
前面几章蜻蜓点水的介绍了elasticsearch、apm相关的内容。本片主要介绍怎么使用ELK Stack帮助我们打造一个支撑起日产TB级的日志监控系统 背景 在企业级的微服务环境中,跑着成百上千个服务都算是比较小的规模了。在生产环境上,日志扮演着很重要的角色,排查异常需要日志,性能优化需要日志,业务排查需要业务等等。然而在生产上跑着成百上千个服务,每个服务都只会简单的本地化存储,当需要日志协助排查问题时,很难找到日志所在的节点。也很难挖掘业务日志的数据价值。那么将日志统一输出到一个地方集中管理,然后将日志处理化,把结果输出成运维、研发可用的数据是解决日志管理、协助运维的可行方案,也是企业迫切解决日志的需求。 我们的解决方案 通过上面的需求我们推出了日志监控系统。 日志统一收集、过滤清洗。 生成可视化界面、监控,告警,日志搜索。 功能流程概览 在每个服务节点上埋点,实时采集相关日志。 统一日志收集服务、过滤、清洗日志后生成可视化界面、告警功能。 我们的架构 日志文件采集端我们使用filebeat,运维通过我们的后台管理界面化配置,每个机器对应一个filebeat,每个filebeat日志对应的topic可以是一对一、多对一,根据日常的日志量配置不同的策略。除了采集业务服务日志外,我们还收集了mysql的慢查询日志和错误日志,还有别的第三方服务日志,如:nginx等

MyDLNote

回眸只為那壹抹淺笑 提交于 2020-05-09 16:11:36
MyDLNote - Attention: [2020 CVPR] Exploring Self-attention for Image Recognition [PAPER] Exploring Self-attention for Image Recognition 目录 MyDLNote - Attention: [2020 CVPR] Exploring Self-attention for Image Recognition Abstract Introduction Related Work Self-attention Networks Pairwise Self-attention Patchwise Self-attention Self-attention Block Comparison Abstract Recent work has shown that self-attention can serve as a basic building block for image recognition models. We explore variations of self-attention and assess their effectiveness for image recognition. We consider two forms of self

简单概括下MongoDB 4.0 新特性

那年仲夏 提交于 2020-05-08 06:37:02
4.0 版本 (1)跨文档事务支持 (ACID) 首个支持跨文档事务的NoSQL云数据库,将文档模型的速度,灵活性和功能与ACID保证相结合。现在,使用MongoDB解决各种用例变得更加容易。 (4.0 的事务存在最大修改 16MB、事务执行时间不能过长的限制) (2)40%迁移速度提升 并发的读取和写入,使得新增分片shard迁移性能提升了约 40%, 新增节点能更快的承载业务压力。 (3)读性能大幅扩展 4.0版本借助事务特性,使得备节点不再因为同步日志而阻塞读取请求。 (4)Change Stream 增强 在MongoDB3.6之前,如果我们希望对MongoDB数据库中的数据变动进行监听,通常是通过 “监听并回放oplog”。从MongoDB3.6开始支持的 Change Streams打破了这个僵局。 Change Streams使得数据的变动监听变得简单易用。如果你只需要针对某一个collection进行变动监听,MongoDB3.6就可以满足你的需求。在4.0版本中我们可以针对若干个数据库或者整个实例(复制集或者sharding)进行变动监听。与 watch() 某一个collection不同,4.0中我们可以 watch() 某个数据库或者整个实例。 4.2 版本 (1)分布式事务 4.2 支持分布式事务,MongoDB 采用二阶段提交的方式,实现在多个 Shard

使用helm在k8s上部署kafka

不羁岁月 提交于 2020-05-08 03:40:57
https://blog.frognew.com/2019/07/use-helm-install-kafka-on-k8s.html 1.配置helm chart repo kafka的helm chart还在孵化当中,使用前需要添加incubator的repo: helm repo add incubator http://storage.googleapis.com/kubernetes-charts-incubator 。 肉身在国内需要设置azure提供的镜像库地址: 1 2 3 4 5 6 7 8 helm repo add stable http://mirror.azure.cn/kubernetes/charts helm repo add incubator http://mirror.azure.cn/kubernetes/charts-incubator helm repo list NAME URL stable http://mirror.azure.cn/kubernetes/charts local http://127.0.0.1:8879/charts incubator http://mirror.azure.cn/kubernetes/charts-incubator 2.创建Kafka和Zookeeper的Local PV 2.1