很多时候会遇到一种需求,列表里面有列表,像这种需求之前一般都是用多个列表控件互相嵌套来实现,但是这样很容易出现一些问题,例如滚动冲突、数据显示不全、多余的逻辑处理等。后来发现,一个recyclerview就可以实现列表嵌套的效果,这里需要用到recyclerview的多布局功能。效果图:recyclerview的多布局涉及到的主要方法是getItemViewType,作用是设置每个item要显示的布局类型。之前不了解的时候,都是直接用数学逻辑直接去计算,多少个position后显示什么布局,这种方式适合在逻辑简单的时候,但是一旦逻辑稍微有点复杂就果断不能用,可能会自己埋下深坑不说,还不好维护,所以这边把布局类型放在数据对象中。1.定义多布局对象的基类:publicclassBaseMulDataModel{ protectedinttype; publicintgetType(){ returntype; } publicvoidsetType(inttype){ this.type=type; } }复制type是该对象对应的布局类型。2.recyclerview数据的显示放在V
一、PMM架构PerconaMonitoringandManagement是percona一款开源的用于管理和监控MySQL和MongoDB性能的开源平台,通过PMM客户端收集到的DB监控数据用第三方软件Grafana画图展示出来,包括两个部分:PMMclient:部署在每个监控数据库主机。搜集主机,数据库和查询分析数据等。PMMServer:汇集数据并展示。提供表,dashboards和graph的web界面。其架构如下图所示:PMMClient由以下部分组成:pmm-admin:提供命令行交互界面管理pmmclient,包括新增、删除数据库实例等。pmm-mysql-query-0:管理mysqlQAN代理的服务,从数据库实例搜集查询性能数据并发送到pmmserver上的QANAPI。pmm-mongdb-query-0:管理mongdbQAN代理的服务。node_exporter:搜集系统性能数据,基于prometheusexporter。更多信息查询:https://github.com/percona/node_exporter.mysqld_exporter:mysql性能
golang斐波那契数 packagemain import"fmt" /* 斐波那契数,亦称之为斐波那契数列(意大利语:SuccessionediFibonacci), 又称黄金分割数列、费波那西数列、费波拿契数、费氏数列,指的是这样一个数列: 0、1、1、2、3、5、8、13、21、……在数学上,斐波纳契数列以如下被以递归的方法定义: F0=0,F1=1,Fn=Fn-1+Fn-2(n>=2,n∈N*),用文字来说,就是斐波那契数列列由 0和1开始,之后的斐波那契数列系数就由之前的两数相加。 */ funcfibonacci1()func()int{ back1,back2:=0,1//预先定义好前两个值 returnfunc()int{ //记录(back1)的值 temp:=back1 //重新赋值(这个就是核心代码) back1,back2=back2,(back1+back2) //返回temp returntemp } } funcmain(){ f:=fibonacci1()//返回一个闭包函数 fori:=0;i<10;i
版权声明:本文为博主原创文章,欢迎交流分享,未经博主允许不得转载。 https://blog.csdn.net/HHTNAN/article/details/54571941 复制data_sample<-iris[51:150,]; m<-dim(data_sample)[1] #获取数据集记录条数 val<-sample(m,size=round(m/3),replace=FALSE,prob=rep(1/m,m)) #抽样,选取三分之二的数据作为训练集。 iris.learn<-data_sample[-val,] #选取训练集 iris.valid<-data_sample[val,] #选取验证集#调用glm函数训练逻辑斯蒂二元模型 #glm()提供正态、指数、gamma、逆高斯、Poisson、二项分布。我们的logistic回归使用的是二项分布族binomial。Binomial族默认连接函数为logit,可设置为probit。 logit.fit<-glm(Species~Petal.Width
在电影《无极》里面,百万将士来攻,倾城(张柏芝饰)站在城墙之上,轻启朱唇道,“有谁想看看我斗篷下面是神马么?”面对美女,小编还能说什么呢?只能表示默许。在21世纪,想看衣服里面是什么,已经不需要动手动脚了。如下图演示:这是小编最近在Kickstarter网站上发现的众筹项目虚拟现实体恤(Virtuali-Tee),由英国的初创企业Curiscope发起。看上去充满了黑科技,顾名思义,它的原理是时下大热的虚拟现实技术。通过结合一件贴有可识别图案的T恤以及一个APP,用户能够通过手机看到人的内部结构以及器官情况。小编看到介绍,貌似嗅到了商机,除了满足大家的好奇心,也许还可以用于医疗。不过,这件T恤并不是真正看到每个人不同的内部器官,而只是看到相应部分的虚拟图像。当你穿上这件“透视”T恤后,智能手机上的应用与T恤上的传感器相连接后,应用就会自动开启一个虚拟的”人体内部“情景,这看上去就像是活人的实际器官一样。虽然这个T恤只是一个欺骗眼睛的小把戏,不是真正的“透视”,但对那些选择临床专业的“年年高三党”来说,这件T恤也是一大福音。由于通过这个产品人体的上身就能轻易变成一个解剖学的“学习课件”。
.imageList{ overflow-x:auto; overflow-y:hidden; height:180px; white-space:nowrap; img{ width:auto; height:100%; margin-right:10px; } }复制<divclass="imageList"> <imgsrc="1.jpg"/> <imgsrc="2.jpg"/> <imgsrc="3.jpg"/> <imgsrc="4.jpg"/> <imgsrc="1.jpg"/> </div>复制这里注意,img标签不能左浮动,外层容器必须加不换行white-space:nowrap;复制
目录 Kubernetes日志架构介绍环境、软件准备启动Fluentd启动Elasticsearch启动Kibana浏览器添加证书RBAC认证模式介绍1、Kubernetes日志架构介绍 对于任何基础架构或者服务系统,日志重要性不言而喻,当然Kubernetes也少不了对Logging的支持,集群中各个资源以及服务日志如何很好的集中查看并分析,官方给出了Cluster-levelLogging的架构,其中就提供使用EFK框架作为集群日志解决方案。当然EFK/ELK在业内也是相对成熟作为日志集中分析平台,ELK在Kubernetes集群中以Pod方式运行,丝毫不影响集群中其他Pod,而且不需要修改其他Pod配置,非常方便。 Kubernetes官网给出的Cluster-levelLogging参考架构如下: 从图上可以看出,它是采用NodeLoggingAgent的方式,通过在集群每个节点上部署一个Agent代理Pod服务,收集该Node上的日志并Push到后端,当然Loggingagent是以容器方式运行,并且有权限进入该节点上所有服务容器的日志目录。上边提到的Logging-agen
大家好,又见面了,我是你们的朋友全栈君。/*此程序实现单片机”看门狗”WDT的功能*/#include”p18f458.h”unsignedlongi;/*系统初始化子程序*/voidinitial(){ TRISD=0X00;/*D口设为输出*/}/*延时子程序*/voidDELAY(){ for(i=19999;–i;)continue;}/*主程序*/main(){ initial();/*初始化,设定看门狗的相关寄存器*/PORTD=0X00;/*D口送00H,发光二极管亮*/DELAY();/*给予一定时间的延时*/PORTD=0XFF;/*D口送FFH,发光二极管灭*/while(1){ ;}/*死循环,等待看门狗溢出复位*/}——————-汇编语言版本的单片机看门狗程序—————-;此程序实现”看门狗”WDT的功能;此单片机看门狗由http://www.51hei.com独家提供LISTP=18F458INCLUDE”P18F458.INC”DEYHEQU0X20DEYLEQUDEYH+1ORG0X00GOTOMAINORG0X30;*************初始化子程序
无意间翻看之间的代码,发现了一段难以理解的代码。 byte[]bs=digest.digest(origin.getBytes(Charset.forName(charsetName))); for(inti=0;i<bs.length;i++){ intc=bs[i]&0xFF; if(c<16){ sb.append("0"); } sb.append(Integer.toHexString(c)); } returnsb.toString();复制 bs是由一段字符串经过MD5加密后,输出的byte数组。我起初难以理解为什么在接下来的循环中要将bs[i]&oxFF再复制给int类型呢? bs[i]是8位二进制,0xFF转化成8位二进制就是11111111,那么bs[i]&0xFF不是还是bs[i]本身吗?有意思吗? 后来我又写了一个demo packagejvmProject; publicclassTest{ publicstaticvoidmain(String[]args){ byte[]a=newbyte[10
说明 本文样例说明仅适用maven环境和语法,但所述内容也适用gradle 原文地址:https://www.cnblogs.com/qnlcy/p/15905544.html 一、日志 1.logback 日志默认为slf4j+logback框架,引入如下jar之后,就自动引入了logback <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-logging</artifactId> </dependency> 复制 默认配置文件名称如下,在classpath目录下存在对应文件名即可,无需额外通过配置指定 logback-spring.xml(官方推荐,可以添加springboot的springProfile配置项) logback.xml 2.log4j2 请在大流量应用当中使用log4j2而不是使用log4j,log4j在并发写文件上有严重的性能问题,而且,她已经退役了。 首先要
错误描述: Thereisnogetterforpropertynamed'delegate'in'classcom.sun.proxy.$Proxy32' 错误原因: 1、你有多个拦截器,拦截同一对象的同一行为。测试时避免其他拦截器的干扰可以先把注册的拦截器注释掉。 2、依赖包版本不对 3、拦截器配置类放置的位置不正确,导致包没找到 如果,您希望更容易地发现我的博客,不妨收藏关注一下 原创公众号:Java学习之道 个人博客:www.mmzsblog.cn 喜欢就推荐一下,因为你的参与是我在写作道路上的最强动力。 本文版权归作者淼淼之森和博客园共有,欢迎转载。 但须在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
来源:https://github.com/galad87/HandBrake-QuickSync-Mac/commit/2c1332958f7095c640cbcbcb45ffc955739d5945#diff-72d938f71df3506b8ad74530b39e7a0bR83 Skiptocontent Thisrepository Pullrequests Issues Gist 1 galad87/HandBrake-QuickSync-Mac forkedfromkallisti5/HaikuBrake QuickSyncencoderviaVideoToolbox ImplementsanewencoderinHandBrakethatusesVideoToolbox.framework
没时间扯淡了,赶紧上车吧。 在现代社会中,信息安全对于每一个人都是至关重要的,例如我们的银行账户安全、支付宝和微信账户安全、以及邮箱等等,说到信息安全,那就必须得提到加密技术,至于加密的一些相关概念,在这里就不说了。 这一次将会主要讲解.NET的加密方式,接下来将会分别介绍散列加密,对称加密,非对称加密等等加密方式在.NET中的应用,本文主要讲解散列加密在.NET中的应用实例。 一.DotNet散列算法概述: 说到散列应该都不会陌生,并且首先都会想到MD5加密,但是对于散列更加深入的了解,恐怕知道的人就不会那么多了。散列算法创建了一个散列码,也叫做“消息摘要”或“消息指纹”,看到“消息指纹”这个词,我首先想到的是可以唯一识别一个消息或者说可以唯一的标识一个人。 1.散列算法原理概述: 散列算法的核心是一个数学函数,在两个固定大小的数据块中运行它可以创建一个散列码。在散列算法中需要指定一个“种子值”,该值和第一块消息数据一同载入散列函数这就生成了第一个散列码
6的倍数1/(1-x^6) 最多9块(1-x^10)/(1-x) 最多5块(1-x^6)/(1-x) 4的倍数1/(1-x^4) 最多7块(1-x^8)/(1-x) 2的倍数1/(1-x^2) 最多1块(1-x^2)/(1-x)(=1+x) 8的倍数1/(1-x^8) 10的倍数1/(1-x^10) 最多3块(1-x^4)/(1-x) 分子1 分母(1-x)(1-x)(1-x)(1-x)(1-x) 这等于\(\sum_{i=0}^{+\infty}\pmatrix{5+i-1\\i}x^i\) 总共n块,取第n项结果为C(n+4,n)=n*(n+1)*(n+2)*(n+3)/26 二项式定理相关参见 #include<bits/stdc++.h> #definelllonglong usingnamespacestd; constintN=1e6+10; constintmod=998244353; structNum{ inta[N],len; int&operator[](constint&x){returna[x];} constint&
1、安装可能用到的依赖 yuminstall-yopenssl-develbzip2-develexpat-develgdbm-develreadline-develsqlite-devel 安装可能用到的依赖 2、下载Python3.6.8源码 wgethttps://www.python.org/ftp/python/3.6.8/Python-3.6.8.tgz3、操作python tar-xzvfPython-3.6.8.tgz 解压到当前目录 cdPython-3.6.8 进入解压后的目录 ./configure--prefix=/usr/local/python 安装到/usr/local/python目录,不用事先创建pytho
【博客园cnblogs笔者m-yb原创,转载请加本文博客链接,笔者公众号aandb7爱码一生,QQ群927113708,github:https://github.com/mayangbo666】 https://www.cnblogs.com/m-yb/p/10925688.html 这里我决定写个idea搭建项目的笔记: 首先打开idea, 选择新建项目,左侧选择Java,项目的SDKJDK我这里用的是jdk1.8,额外的libs和框架由于想键JavaWeb项目,因此选择JavaEE的WebApplicationweb应用, 下一步,填写项目名和项目文件根路径, 完成后,在新窗口新建打开新项目,我是idea2017.2.2版本,可以看到项目层次结构如下: 下一步,先来配置web应用运行在的Tomcat容器上, 分别按照1,2,3点击选择Local进入, 1,2,3,4,5分别进行检查配置操作, 看到警告,没有项目被部署,点击Fix,来到部署界面, 如果?处是空的则采取手动添加, 点击+号,选择Artifact项目, 这里填写ap
JDK各个版本发布时间 Java8是于2014年3月14号发布。从Java8开始开发代号已经弃用了,所以从Java8之后已经没有官方的开发代号了。Java8u201/202是最后一个免费的OracleJDK8版本,Oracle于2019-01-15停止免费商用更新。 新特性: JDK1.4正则表达式,异常链,NIO,日志类,XML解析器,XLST转换器JDK1.5自动装箱、泛型、动态注解、枚举、可变长参数、遍历循环JDK1.6提供动态语言支持、提供编译API和卫星HTTP服务器API,改进JVM的锁,同步垃圾回收,类加载JDK1.7提供GI收集器、加强对非Java语言的调用支持(JSR-292,升级类加载架构JDK8Lambda表达式、方法引用、默认方法、新工具、StreamAPI、DateTimeAPI、Optional类、Nashorn,JavaScript引擎JDK91、集合加强;2、私有接口方法;3、垃圾收集机制;4、I/O流加强;5、JShell工具JDK101、局部变量类型推断;2、线程本地握手;3、GC改进和内存管理;JDK111、字符串加强;2、HttC
x是看题解的。 []CF1055E 题意:给定$n$个点,以及$m$条线段,选择$s$条线段,使得至少被一个线段覆盖的点的坐标从小到大排序后,第$k$大最小,没有则输出$-1$。 二分答案$k$,则现在问题变为了选择$k$个线段使得至少覆盖$p$个点。 按照$r$排序后考虑$dp$,设$f_i$表示选择$i$的最多点数。 由于直接转移是$O(m^3)$通不过本题,则对于相交与不相交建立线段树维护即可。 时间复杂度$O(m^2\log^2n)$。 貌似可以对于点$dp$,维护每个点最右连续$1$位置。$O(1)$转移即可,时间复杂度$O(m^2\logn)$。 #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #include<cmath> #include<climits> #include<set> #definepiipair<int,int> #definefifirst