偏移量

js调用HttpPrinter(web打印插件)

可紊 提交于 2019-12-15 09:35:29
js调用HttpPrinter(web打印插件) 对比了 康虎云报表 lodop 后 选择了 HttpPrinter (原因: 功能免费 只有源码收费) demo地址: https://www.lanzous.com/b743805 js代码如下,base64的部分已经精简: <!DOCTYPE html> <html> <head> <script src="Scripts/jquery-1.4.1.min.js" type="text/javascript"></script> <script> $(document).ready(function(){ //获取打印机列表 begin $("#btn_getprintlist").click(function(){ var ip = $("#ip").val(); var port = $("#port").val(); if(ip==""||port==""){alert("ip,port不能为空"); return false;} //$.post("http://127.0.0.1:12345/getprinterlist", $.post("http://"+ip+":"+port+"/getprinterlist", { //method:"Donald Duck", //city:"Duckburg" },

学习OpenGL ES for Android(四)

↘锁芯ラ 提交于 2019-12-15 04:37:23
在学习图形变换之前,可以先参考文档 https://learnopengl-cn.github.io/01%20Getting%20started/07%20Transformations/ 学习基本概念。我们之前的绘制的都是静态的图像,如果我们使用改变顶点坐标的方式来让图像变换起来是非常麻烦的,而且会消耗更多的处理时间和性能。我们可以使用一个或多个矩阵(Matrix)对象可以更好的变换(Transform)一个物体。这些变换包括:移动,缩放,旋转。和桌面版不同的是,在Android中可以使用Matrix类来实现各种变换矩阵(注意是android.opengl.Matrix,不要和android.graphics包下的混淆了)。 multiplyMM(float[] result, int resultOffset, float[] lhs, int lhsOffset, float[] rhs, int rhsOffset):将两个4x4矩阵相乘,并将结果存储在第三个4x4矩阵中。以矩阵表示法表示:结果=lhs x rhs。 参数 result:保存结果的浮点数组 resultOffset:保存结果的浮点数组的偏移量 lhs:包含左侧矩阵的浮点数组 lhsOffset:左侧矩阵的浮点数组的偏移量 rhs:包含右侧矩阵的浮点数组 rhsOffset:右侧矩阵的浮点数组的偏移量

RedisTemplate操作命令 - Value

纵饮孤独 提交于 2019-12-14 12:29:35
字符串操作 redis储存的字符串都是以二进制的形式存在! 命令 操作 返回值 set(K key, V value) void set(K key, V value, long timeout, TimeUnit unit) 过期时间,TimeUnit时间格式 void set(K key, V value, Duration timeout) Duration过期时间 void setIfAbsent(K key, V value) 如果不存在则设置【setnx】 Boolean setIfAbsent(K key, V value, long timeout, TimeUnit unit) Boolean setIfAbsent(K key, V value, Duration timeout) Boolean setIfPresent(K key, V value) 如果存在则设置【setex】 Boolean setIfPresent(K key, V value, long timeout, TimeUnit unit) Boolean setIfPresent(K key, V value, Duration timeout) Boolean multiSet(Map<? extends K, ? extends V> map) 设置多个键值对【mset】 void

一种短ID生成策略

删除回忆录丶 提交于 2019-12-11 04:16:29
一种短ID生成策略 一、背景 最近公司一个项目中存在一个业务场景,类似在美团上下单,去商户消费确认消费时,用户需要向商家提供一串编码来作为用户到店消费凭证,这个码我们称之为“核销码”。这个核销码需要具有这样特性:1.不能太长;2.具有一定随机性;3.具有一定的复杂度以免被太容易被伪造 4.不能重复。Snowflake算法可以在分布式环境下生成不重复的ID,百度改造后的Snowflake生成的Long型ID,转化为([0-9A-Z]数据一般不区分大小写,因此去除[a-z]26个字符)36个字符表示也需要11位,而我们要求是8位,因此Snowflake被排除在外。 二、算法设计 1. 初步设计 a)编码字符 数据库存储环境采用mysql,mysql默认是不区分大小写的,为了保证编码唯一性,采用[0-9A-Z]编码,但是核销码除了扫码识别外,还存在商户手动输入的情况,0、O、I、L四个易被输错或混淆的字符去除,共剩余32位字符,分别是: { ‘1’ , ‘2’ , ‘3’ , ‘4’ , ‘5’ , ‘6’ , ‘7’ , ‘8’ , ‘9’ , ‘A’ , ‘B’ , ‘C’ , ‘D’ , ‘E’ , ‘F’ , ‘G’ , ‘H’ , ‘J’ , ‘K’ , ‘M’ , ‘N’ , ‘P’ , ‘Q’ , ‘R’ , ‘S’ , ‘T’ , ‘U’ , ‘V’ , ‘W’ , ‘X

[iOS]详解调整UIButton的title和image的位置

↘锁芯ラ 提交于 2019-12-08 03:25:48
很多次,系统默认的UIButton不能满足需求,每次都是查了很多资料,最后还是用最复杂的方式来修改button的标题和图片的位置,今天,花些时间来梳理一下这方面的知识... UIButton的默认布局是:title在右,image在左; 很多时候我们需要的是title在左边,或者title在下面,这时就需要调整UIButton的TitleLabel和ImageView的位置了,查了很多资料,要么零零散散的介绍,要么就是特别复杂的实现;经过一段时间的学习,在这里总结一下实现的方式; 一种是设置UIButton的以下两个属性: @property(nonatomic) UIEdgeInsets titleEdgeInsets; // default is UIEdgeInsetsZero @property(nonatomic) UIEdgeInsets imageEdgeInsets; // default is UIEdgeInsetsZero 还有一种就是,自定义button,继承自UIButton,重写UIButton的以下两个方法: - (CGRect)titleRectForContentRect:(CGRect)contentRect; - (CGRect)imageRectForContentRect:(CGRect)contentRect; 下面来介绍这两种实现方式:

8.1.12直接引用

…衆ロ難τιáo~ 提交于 2019-12-06 10:59:09
8.1.12直接引用 •常量池解析的最终目标是把符号引用替换为直接引用。符号引用的格式在第6章中详细定义了,但是直接引用应该是什么格式呢?你可能认为,直接引用的格式也是由不同的java虚拟机实现的设计者决定的。然而,在大多数实现中,总会有一些通用的特征。 指向类型、类变量和类方法的直接引用可能是指向方法区的本地指针。类型的直接引用可 能简单地指向保存类型数据的方法区中的与实现相关的数据结构。类变量的直接引用可以指向方法区中保存的类变量的值。类方法的直接引用可以指向方法区中的一段数据结构方法区中包含调用方法的必要数据)。比如,类方法的数据结构可能包含方法是否为本地方法的标志信息。 如果方法是本地的,数据结构可能包含一个指向动态连接的本地方法实现的函数指针。如果方法不是本地的,数据结构可能包含方法的字节码、max_stack、max_local等信息。如果有—个该方法的即时编译版本,数据结构可能包含指向即时编译的本地代码的指针。 指向实例变量和实例方法的直接引用都是偏移量。实例变量的直接引用可能是从对象的映像开始算起到这个实例变量位置的偏移量。实例方法的直接引用可能是到方法表的偏移量。 使用偏移量来表示实例变量和实例方法的直接引用,取决于类的对象映像中字段的顺序和 类方法表中方法的顺序的预先决定。尽管不同实现的设计者可以选择在对象映像中存放实例变量的方式,以及在方法表中存放方法的方式

python类型-序列

点点圈 提交于 2019-12-06 08:47:44
注:本文档主要是学习《Python核心编程(第二版)》时做的资料整理。 1.序列 序列的成员是有序排列的,并且可以通过下标偏移量访问到它的一个或者几个成员,包括 字符串 (普通字符串和Unicode字符串)、 列表和元组 类型。下标偏移量从0开始到总元素-1结束。 1.1操作符 1.1.1成员关系操作符 成员关系操作符:用来判断一个元素是否属于一个序列。in/not in操作符返回值一般就是True/False,语法为: 对象 [not] in 序列 >>> list = [1, 2, 3] >>> 1 in list True >>> 4 in list False 1.1.2连接操作符 允许把一个序列和另一个相同类型的序列做连接sequence1 + sequence2,这种方法不是最高效的; >>> str1 = 'hello' >>> str2 = 'world' >>> str1 + str2 'helloworld' 对于字符串,可将所有的子字符串放在一个列表或可迭代对象中,然后调用join方法来把所有的内容连接在一起以节约内存;对列表来说,可用列表的extend()方法来把两个或者多个列表对象合并。 >>> str3 = '' >>> str3.join([str1, str2]) 'helloworld' 1.1.3重读操作符(*) sequence *

afka入门介绍

佐手、 提交于 2019-12-06 06:12:45
K afka入门介绍 https://www.cnblogs.com/swordfall/p/8251700.html最近在看hdoop的hdfs 以及看了下kafka的底层存储,发现分布式的技术基本上都是相同的。 都是通过增加一个coordinator的节点作为存储元数据, 将实体数据放到datanode 里面来提高容量。而且也跟微服务类似,将一个单体应用拆开分多份,放到不同的node节点中来 并且通过replication 来保证高可用。通过服务注册中心统一进行管理。 微服务 hadoop kafka 都是通过分而治之的办法来提高容量和性能和安全性。包含现在比较多的Greenplum和华为的高斯数据库,以及nginx的负责均衡工作原理 其实也是类似,都是通过增加一个服务注册中心类似的协调中心,然后增加datanode来存储具体的数据。 如果数量就行增大,就在协调中心上面再增加一层入口控制。而且像是nginx的底层的master和worker node 的进程模式也是如此。master负责协调 node干具体的工作redis的cluster也是 只不过通过hash算法作为服务注册或者是协调中心的工作。然后每个redis服务作为每一个datanode来提供服务,增加扩展性。然后redis的sentry模式就相当于replication模式来保证数据的安全性了

IP协议

梦想的初衷 提交于 2019-12-06 02:12:43
IP协议 IPv4首部 版本: 包含IP数据报的版本号:ipv4为4,ipv6为6 首部长度: 其中保存的是整个首部中的“32位字”的数量。 这个字段正常的值为:5(假设“可选字段长度为0”) 该字段最大值为:15(可选字段长度全满加上原有字段) 区分服务: 优先级(3位)和数据链路层的QoS机制有关,定义了8个服务级别。当Qos选择了某种服务模型后,优先级越高,字段越优先传输。 D、T、R分别表示延时、吞吐量、可靠性。当这些值都为1时,分别表示低延时、高吞吐量、高可靠性。 ECN: 用于为数据报标记“拥塞标识符”。 当一个带有ECN标记的分组发送后,如果接收端“持续拥塞”且“具有感知ECN的能力”(如TCP),那么接收端会通知发送端降低发送速度。 总长度: 该字段指的是IPv4数据报的总长度(以字节为单位)。 通过该字段和“首部长度”字段,我们可以推测出ip数据报中“数据部分”从哪开始以及长度。 标识、标志、分偏移: 该字段帮助标识由IPv4主机发送的数据报。 这个字段对实现分片很重要,大多数数据链路层不支持过长的ip数据报,所以要把ip数据报分片,每一片都是一个独立的ipv4数据报。 发送主机每次发送数据报都讲一个“内部计数器”加1,然后将数值复制“标识”字段中。 生存时间: 该字段用于设置一个“数据报可经过的路由器数量”的上限。 发送方在初始发送时设定某个值(建议为64,

深入理解Kafka必知必会(2)

故事扮演 提交于 2019-12-05 05:28:19
深入理解Kafka必知必会(1) Kafka目前有哪些内部topic,它们都有什么特征?各自的作用又是什么? __consumer_offsets:作用是保存 Kafka 消费者的位移信息 __transaction_state:用来存储事务日志消息 优先副本是什么?它有什么特殊的作用? 所谓的优先副本是指在AR集合列表中的第一个副本。 理想情况下,优先副本就是该分区的leader 副本,所以也可以称之为 preferred leader。Kafka 要确保所有主题的优先副本在 Kafka 集群中均匀分布,这样就保证了所有分区的 leader 均衡分布。以此来促进集群的负载均衡,这一行为也可以称为“分区平衡”。 Kafka有哪几处地方有分区分配的概念?简述大致的过程及原理 生产者的分区分配是指为每条消息指定其所要发往的分区。可以编写一个具体的类实现org.apache.kafka.clients.producer.Partitioner接口。 消费者中的分区分配是指为消费者指定其可以消费消息的分区。Kafka 提供了消费者客户端参数 partition.assignment.strategy 来设置消费者与订阅主题之间的分区分配策略。 分区副本的分配是指为集群制定创建主题时的分区副本分配方案,即在哪个 broker 中创建哪些分区的副本。kafka-topics.sh