一.累加器API 关于累加器,前面我也写了一篇博客,顺便粘贴这儿,对比学习,Spark学习之编程进阶总结(一).Spark 2.0系列引入了一个更加简单和更高性能的累加器API,如在1.X版本中可以这样使用累加器: val sparkSession = SparkSession.builder().master("local").appName("wordcount").getOrCreate() val sc = sparkSession.sparkContext…
一.前言 回顾:基于.NetCore3.1系列 -- 认证授权方案之授权揭秘 (上篇) 在上一篇中,主要讲解了授权在配置方面的源码,从添加授权配置开始,我们引入了需要的授权配置选项,而不同的授权要求构建不同的策略方式,从而实现一种自己满意的授权需求配置要求. 在这一节中,继续上一篇的内容往下深入了解授权内部机制的奥秘以及是如何实现执行授权流程的. 二.说明 在上一篇中,我们通过定义授权策略,查看源码发现,在对授权配置AuthorizationOptions之后,授权系统通过DI的方式注册了几个核…
一.前言 在之前的使用Swagger做Api文档中,我们已经使用Swagger进行开发接口文档,以及更加方便的使用.这一转换,让更多的接口可以以通俗易懂的方式展现给开发人员.而在后续的内容中,为了对api资源的保护,我们引入了认证授权方案,利用HTTP提供了一套标准的身份验证框架,服务端可以用来针对客户端的请求发送质询(challenge),客户端根据质询提供应答身份验证凭证,进而实现对资源的保护. 因为之前在使用Swagger的系列中还没有加身份认证授权这一块,所以我们使用的接口都是没有进行资…
一.前言 对内置日志系统的整体实现进行了介绍之后,可以通过使用内置记录器来实现日志的输出路径.而在实际项目开发中,使用第三方日志框架(如: Log4Net.NLog.Loggr.Serilog.Sentry 等)来记录也是非常多的.首先一般基础的内置日志记录器在第三方日志框架中都有实现,然后第三方日志框架在功能上更加强大和丰富,能满足我们更多的项目分析和诊断的需求. 所以在这一篇中,我们将介绍第三方日志记录提供程序--Serilog 二.回顾 系统内置日志系列: 1. 基于.NetCore3.1…
原文:[Xamarin开发 Android 系列 7] Android 结构基础(下) *******前期我们不打算进行太深入的东西,省的吓跑刚进门的,感觉门槛高,so,我们一开始就是跑马灯一样,向前蹿************* 前一篇 我们从大概上知道了 Android的体系,我强调,我们的重点是Application,包括以后的开发 我们也都是开发Application,没有其他. 我们队APP有了大概了了接,知道 .apk的组成. 那么真正的app 包含哪些细节的东西呢,都是概念性的东西,…
原文:[Xamarin开发 Android 系列 6] Android 结构基础(上) 前面大家已经熟悉了什么是Android,而且在 [Xamarin开发 Android 系列 4] Android 基础知识 一文里,开篇就上图,展示了Android的架构. 大概也就4层 APP--应用程序层 Framework --公共架构层 Native Libs + Dalvik VM---系统类库+虚拟机 Linux Kernel--Linux内核 Android 是一个基于Linux开发的可以运行在…
目录 C#多线程编程系列(二)- 线程基础 1.1 简介 1.2 创建线程 1.3 暂停线程 1.4 线程等待 1.5 终止线程 1.6 检测线程状态 1.7 线程优先级 1.8 前台线程和后台线程 1.9 向线程传递参数 1.10 C# Lock关键字的使用 1.11 使用Monitor类锁定资源 1.12 多线程中处理异常 参考书籍 笔者水平有限,如果错误欢迎各位批评指正! C#多线程编程系列(二)- 线程基础 1.1 简介 线程基础主要包括线程创建.挂起.等待和终止线程.关于更多的线程的底…
 Python学习系列(八)( 面向对象基础) Python学习系列(七)( 数据库编程) 一,面向对象 1,域:属于一个对象或类的变量.有两种类型,即实例变量—属于每个实例/类的对象:类变量—属于类本身. 2,类的方法:对象也可以使用属于类的函数来具有功能,这样的函数称之为类的方法.域和方法合称为类的属性.类使用class关键字创建,类的属性被列在一个缩进块中. 3,self:类的方法与普通的函数只有一个特别的区别----他们必须有一个额外的第一个参数名称,但是在调用的时候不能为其赋值,Pyt…
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[MM系列]SAP MM模块-基础配置第一篇   前言部分 大家可以关注我的公众号,公众号里的排版更好,阅读更舒适. 正文部分 MM模块的简单基础配置 1:配置工厂plant 路径:IMG->Enterprise Structure->Definition->Logistics-General->…Plant 2:分配工厂到公司代码…
基于value-and-criterion structure方式的实现的滤波器在原理上其实比较简单,感觉下面论文中得一段话已经描述的比较清晰了,直接贴英文吧,感觉翻译过来反而失去了原始的韵味了. The value-and-criterion filter structure  is based on the geometrical structure of mathematical morphology, but allows the use of a much wider variety…
参考链接:http://spark.apache.org/docs/latest/streaming-programming-guide.html 一.Spark Streaming 介绍 Spark Streaming是核心Spark API的扩展,可实现实时数据流的可伸缩,高吞吐量,容错流处理.数据可以从Kafka.ZeroMQ等消息队列以及TCP sockets或者目录文件从数据源获取数据,并且可以使用map,reduce,join和window等高级函数进行复杂算法的处理.最后,可以将处…
一.前言 在项目的开发维护阶段,有时候我们关注的问题不仅仅在于功能的实现,甚至需要关注系统发布上线后遇到的问题能否及时的查找并解决.所以我们需要有一个好的解决方案来及时的定位错误的根源并做出正确及时的修复,这样才能不影响系统正常的运行状态. 这个时候我们发现,其实在asp.net core中已经内置了日志系统,并提供了各种内置和第三方日志记录提供程序的日志记录接口,在进行应用开发中,可以进行统一配置,并且利用第三方日志框架相结合,更加有效的实现日志记录.所以在这个系列中,主要是对内置日志记录系统…
背景 前几天接到H5开发人员那边的业务开发需求单,说想将H5接入到自动化系列中,特此记录分享一下. 环境前置准备 手机与电脑USB连接,开启USB调试模式,通过adb devices可查看到此设备. 电脑端.移动端安装chrome浏览器.(尽量保证移动端chrome版本低于电脑端) App webview开启debug模式 在电脑端Chrome浏览器地址栏输入chrome://inspect/#devices,进入调试模式: 此时页面显示了手机型号.驱动名称.APP要调试的WebView名称 点…
一.前言 回顾:日志记录之日志核心要素揭秘 在上一篇中,我们通过学习了解在.net core 中内置的日志记录中的几大核心要素,在日志工厂记录器(ILoggerFactory)中实现将日志记录提供器(ILoggerProvider)对象都可以集成到Logger对象组合中,这样的话,我们就可以通过基于ILoggerProvider自定义日志记录程序集成到Logger中,再创建写日志定义Ilogger,自定义日志记录器实现日志的输出方式,这样实现自定义日志记录工具. 在这个过程中,日志记录器ILog…
虽说,spark我也不陌生,之前一直用python跑的spark,基本的core和SQL操作用的也是比较熟练.但是这一切的基础都是在RDD上进行操作,即使是进行SQL操作也是将利用SpaekContext类中的textFile方法读取txt文件返回RDD对象,然后使用SQLContext实例化载利用函数createDataFrame将格式化后的数据转化为dataFrame或者利用createDataset将数据转换为dataset.真不是一般的麻烦...话不多说,比如以下python代码示例:…
一.前言 在上一篇中,我们已经了解了内置系统的默认配置和自定义配置的方式,在学习了配置的基础上,我们进一步的对日志在程序中是如何使用的深入了解学习.所以在这一篇中,主要是对日志记录的核心机制进行学习说明. 二.说明 在上一篇中,我们留下了两个问题 日志记录的输出可以在哪里查看?而又由什么实现决定的呢? 如何管理输出不同的日志呢?都有哪些方式呢? 第一个问题:在官方的实现有:Console .Debug .EventSource .EventLog .TraceSource .Azure App…
    深入了解mysql它BDB系列(1) ---BDB关基础知识 作者:杨万富   一:BDB体系结构 1.1.BDB体系结构 BDB总体的体系结构如图1.1所看到的.包括五个子系统(见图1.1中相关数). 1)数据存取子系统,2)事务子系统,3)锁子系统,4)内存池管理子系统,5)日志子系统. 在一个应用程序中.并不一定须要全然具备这5大子系统. 假设程序仅仅使用了数据存取子系统,它的体系结构如图1.2. 在图1.2中.我们仅仅使了两个子系统:数据存取以及内存池子系统.(备注:另外三个子系…
Microsoft .Net Remoting系列专题之一 一.Remoting基础 什么是Remoting,简而言之,我们可以将其看作是一种分布式处理方式.从微软的产品角度来看,可以说Remoting就是DCOM的一种升级,它改善了很多功能,并极好的融合到.Net平台下.Microsoft® .NET Remoting 提供了一种允许对象通过应用程序域与另一对象进行交互的框架.这也正是我们使用Remoting的原因.为什么呢?在Windows操作系统中,是将应用程序分离为单独的进程.这个进程形…
1.怎么理解spark streaming中的dstream? 它是spark streaming的基础数据结构,代表着(time,RDD)序列,有两种生成方式,一种是基于流数据创建(kafka,socket...),一种是基于已有的dstream进行转换产生.在spark streaming作业运行的时候,Dstream会根据它的duration,定期生成RDD.而且会进一步根据rdd生成作业,排入队列,调度器触发执行. 由此可以理解,为什么说spark streaming是微批处理的.它提前…
一.快速重传介绍 按照TCP协议,RTO超时重传是一个非常重要的事件,当RTO超时的时候,TCP会同时通过两种方式非常谨慎的降低发送数据包的速率,一种是基于拥塞控制削减发送窗口的大小,另外一个是通过指数回退增加每次RTO超时的时间(即karn算法的第二部分).所以RTO超时后有可能会导致网络容量的利用不足. 最开始我们介绍tcp重传的时候就介绍过TCP还有另外一种重传方式--快速重传.快速重传是RFC5681定一个的一个过程.快速重传不依赖定时器的超时,而是依靠ACK确认包来进行重传.使用快速重…
Python GUI之tkinter窗口视窗教程大集合(看这篇就够了) 一.前言 由于本篇文章较长,所以下面给出内容目录方便跳转阅读,当然也可以用博客页面最右侧的文章目录导航栏进行跳转查阅. 一.前言 二.Tkinter 是什么 三.Tkinter 控件详细介绍 1. Tkinter 模块元素简要说明 2. 常用窗口部件及简要说明: 四.动手实践学习 1. 创建主窗口及Label部件(标签)创建使用 2. Button窗口部件 3. Entry窗口部件 4. Text窗口部件 5. Listbo…
本系列我将主要通过图片和少许文字讲解通过个人自研的PowerDotNet进行快速开发平台化软件产品. PowerDotNet不仅仅是包含像Newtonsoft.Json.Dapper.Quartz.Redis.ZooKeeper.ElasticSearch.ETCD.Autofac.JWT.MyBatis.EF.RabbitMQ.ObjectPool.Hessian.Thrift.gRPC.SuperSocket等流行的类库和组件,像ABP.SpringBoot之类的开发框架套件和工具,它还是一…
一.Spring简介 1.Spring简化Java开发 Spring Framework是一个应用框架,框架一般是半成品,我们在框架的基础上可以不用每个项目自己实现架构.基础设施和常用功能性组件,而是可以专注业务逻辑.因此学习Spring Framework在架构和模式方面的结构和原理,对我们在架构和模块级别的理解帮助极大.Spring Framework(参考1)的宗旨是简化Java开发,主要的手段如下: (1)在架构上解耦:通过DI(依赖注入)管理类型依赖,通过AOP分离关注点,减少重复代码…
出于3D计算机图形学和图形渲染方面的个人兴趣,脑子里便萌生出了自己实现一个渲染器的想法,主要是借助pathtracing这种简单的算法,外加GPU加速来实现,同时也希望感兴趣的朋友们能够喜欢,也欢迎提出一些更好的看法~~. (本人水平有限,若有错误也请指正~) 首先列个提纲......: 1)局部光照与全局光照简介 2)GPU并行运算在图形渲染的应用 ————————————————————————————————————————————————— 1)pathtracing算法简介: 在利用计…
前段时间由于要管理微信群,基于itchat开发了一个简单的微信机器人 主要功能有: 图灵机器人功能 群聊昵称格式修改提示 消息防撤回功能 斗图功能 要开发一个基于itchat的最基本的聊天机器人,在github上作者已经给出基本的操作,本博文只对附加的功能进行说明总结. 确保已经了解itchat的基本操作,先对功能1和功能2进行说明: 1.图灵机器人功能 该功能也是最基础的功能之一,itchat的基础案例也有相关例子. 图灵机器人简单而言就是以一定的规则给图灵的服务器发送数据包,图灵的服务器会以…
概述 MongoDB是目前非常流行的一种非关系型数据库,作为入门系列的第一篇本篇文章主要介绍Mongdb的基础概念知识包括命名规则.数据类型.功能以及安装等. 环境: OS:Windows Version:3.4 一.安装 1.下载解压 在官网下载对应操作系统版本的安装包,然后解压:我这里使用Windows环境安装测试. 2.在D盘创建Mongodb\data\db目录 3.初始化数据 最好先将bin目录加入到环境变量,否则要到命令目录下执行. mongod --dbpath D:\mongod…
Scala基础语法 Scala与JAVA的关系 Scala是基于Java虚拟机,也就是JVM的一门编程语言,所有Scala的代码都需要经过编译为字节码,然后交由Java虚拟机来运行. 所以Scala和JAVA是可以无缝互操作的,Scala可以任意调用Java的代码,这两种语言的关系事非常紧密的. Scala解释器的使用 REPL:Scala解释器也被称为REPL,会快速编译Scala代码为字节码,然后交给JVM来执行. 计算表达式:命令行内,键入Scala代码,解释器会直接返回结果给你(附带变量…
前言 在上篇中介绍了SpringCloud Config的完美使用版本,本篇则介绍基于SpringCloud(基于SpringBoot2.x,.SpringCloud Finchley版)中的路由网关(SpringCloud Zuul)的使用教程. SpringCloud Zuul 介绍 Spring Cloud Zuul 主要的功能是提供负载均衡.反向代理.权限认证.动态路由.监控.弹性.安全等的边缘服务.其主要作用是为微服务架构提供了前门保护的作用,同时将权限控制这些较重的非业务逻辑内容迁移…
上一篇记录了一下AMQP协议,RabbitMQ是一个Erlang开发的AMQP协议的开源实现.这一篇简单的介绍一下RabbitMQ的基本原理. 一.RabbitMQ的特点 1.可靠性:RabbitMQ可以通过持久化.传输确认及发布确认来保证可靠性. 2.扩展性:多个RabbitMQ节点可以组成一个集群,也可以根据实际业务情况动态地扩展集群中节点. 3.多种协议:RabbitMQ除了原生支持AMQP协议,还支持STOMP,MQTT等多种消息中间件协议. 4.管理界面:RabbitMQ提供了一个易用…
一.废话 .net学java为何一直没入坑?其实大家都知道,语法很相似,就是使用的习惯不同 稍微的语法差异 结构体系不同 IDE不同 类库集不同 各种框架不同 对于我来说,我一直被第三道坎拦住了,所以前面的很大的篇幅,都是在说IDE. 二.对比 感知上的差异 我们从一个HelloWorld开始!不同在哪里? Console.WriteLine("Hello World"): –> System.out.println("Hello World"); 继承 :…