w1100n
This site is best viewed in Google Chrome
wiloon, 8/24/2019 18:44

https://github.com/pelletier/go-toml

wiloon, 8/23/2019 15:03

SLF4J 1.6.0 以前的版本,如果打印异常堆栈信息,必须用 log.error(String msg, Throwable t) log.info等对应方法. 如果msg含有变量,一般用String.format方法格式化msg. 如果用 error(String format, Object… arguments) 等其它方法,异常堆栈信息会丢失. 幸好,SLF4J 1.6.0以后的版本对这个不友好的异常信息log 改进了. error(String format, Object… arguments) 这个方法也会打印异常堆栈信息,只不过规定throwable对象必须为 最后一个参数.如果不遵守这个规定,异常堆栈信息不会log出来. 官方FAQ:http://www.slf4j.org/faq.html Can I log an exception without an accompanying message? In short, no. If e is an Exception, and … Continue reading

wiloon, 8/20/2019 7:31

回文,英文palindrome,指一个顺着读和反过来读都一样的字符串,比如madam

wiloon, 8/19/2019 15:31

public class DoubleUtils { private static final double DEFAULT_DELTA = 0.000001; //默认比较精度 //比较2个double值是否相等(默认精度) public static boolean considerEqual(double v1, double v2) { return considerEqual(v1, v2, DEFAULT_DELTA); } //比较2个double值是否相等(指定精度) public static boolean considerEqual(double v1, double v2, double delta) { return Double.compare(v1, v2) … Continue reading

wiloon, 8/19/2019 12:39

XM(Exotic Matter,外来能量) AP(Access Points,权限点数) Portals 直译为传送门或者据点,俗称Po 处于一个Portal的40米范围内才可以与之交互(你周围那个圈就是40米半径的圆) Hack(中译名为”入侵“)Portal是主要的物资获取方式 Links/ Fields(连接/区域或场) 收集Keys才能建立Link 持有一个Portal的Key才能从别的Portal向其发起Link(连接)(成功建立Link会消耗掉对应的Portal Key) 在几个Portals之间建立 Link构成三角形就是建成Control Field(控制区/场) 三角形,三角形,三角形。重要的事情说三遍,重点就是连成三角形 低等级升级方式 在中立Portal上面部署(Deploy)谐振器(Resonators)以占据 在友方阵营占据Portal的空槽上部署(Deploy)谐振器(Resonators) 建立大量的短距离Link和小的Control Field(控制区/场) 给己方占据的Portal充能 Hack(入侵)敌方占据的Portal也可以获得AP,但请注意,敌方Portal会反击造成你的XM损失 申请po 需要升级到 L10,po 申请的审批工作同样由玩家完成,所需等级为 L12 Portal Key Portal Key(钥匙),保存着对应Portal的信息。可以使用key进行充能或建立link。 虽然key被标注了等级,但是这实际上是对应Portal的等级。任何等级的agent都可以使用任何等级的key。 Key可以被放置在Key Locker中而不占用库存。 用处 Key可以用来远程观察Portal的resonator状态,mod状态,周围环境等,请参看Portal。 Key可以用来远程为Portal补充能量,请参看充能。 Key可以用来建立link,请参看Link。 … Continue reading

wiloon, 8/19/2019 10:40

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/qq_33642117/article/details/52040345 一,Set Set:注重独一无二的性质,该体系集合可以知道某物是否已近存在于集合中,不会存储重复的元素 用于存储无序(存入和取出的顺序不一定相同)元素,值不能重复。 对象的相等性    引用到堆上同一个对象的两个引用是相等的。如果对两个引用调用hashCode方法,会得到相同的结果,如果对象所属的类没有覆盖Object的hashCode方法的话,hashCode会返回每个对象特有的序号(java是依据对象的内存地址计算出的此序号),所以两个不同的对象的hashCode值是不可能相等的。 如果想要让两个不同的Person对象视为相等的,就必须覆盖Object继下来的hashCode方法和equals方法,因为Object  hashCode方法返回的是该对象的内存地址,所以必须重写hashCode方法,才能保证两个不同的对象具有相同的hashCode,同时也需要两个不同对象比较equals方法会返回true 该集合中没有特有的方法,直接继承自Collection。 —| Itreable 接口 实现该接口可以使用增强for循环 —| Collection 描述所有集合共性的接口 —| List接口 可以有重复元素的集合 —| ArrayList —| LinkedList —| Set接口 不可以有重复元素的集合 案例:set集合添加元素并使用迭代器迭代元素。 public class Demo4 { public static void main(String[] … Continue reading

wiloon, 8/17/2019 14:58

数字 和JavaScript一样,TypeScript里的所有数字都是浮点数。 这些浮点数的类型是number。 除了支持十进制和十六进制字面量,TypeScript还支持ECMAScript 2015中引入的二进制和八进制字面量。 let decLiteral: number = 6; let hexLiteral: number = 0xf00d; let binaryLiteral: number = 0b1010; let octalLiteral: number = 0o744; https://zhongsp.gitbooks.io/typescript-handbook/content/doc/handbook/Basic%20Types.html

wiloon, 8/17/2019 14:47

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/honey199396/article/details/80750408 一、数组的声明 let array1:Array; let array2:number[]; 1 2 二、数组初始化 let array1:Array = new Array(); let array2:number[] = [1,2,3]; 1 2 三、数组元素赋值、添加、更改 let array:Array = [1,2,3,4]; console.log(array) // [1, 2, 3, 4] array[0] = 20; // … Continue reading

wiloon, 8/6/2019 19:08

一、概述 要让集群正常工作至少需要3个主节点,在这里我们要创建6个redis节点,其中三个为主节点,三个为从节点,对应的redis节点的ip和端口对应关系如下 127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005     二、准备环境   安装ruby 集群环境需要ruby,所以需要安装下 yum install ruby  yum install ruby-rdoc ruby setup.rb   安装完毕后启动依然报错 需要安装redis库 gem install redis 问题解决   下载最新redis版本 3.06 并进行构建       创建用户 useradd redis passwd … Continue reading

wiloon, 8/6/2019 18:43

stream是一个看起来比pubsub可靠多的消息队列。pubsub不靠谱? 很不靠谱,网络一断或buffer一大就会主动清理数据。stream的设计参考了kafka的消费组模型,redis作者antirez也专门写了篇短文描述了这个过程。 说起新鲜的redis streams,其实Antirez在几年前开了一个新项目叫做disque, 也是用来做消息队列的,奈何没怎么有人关注。我作为antirez的粉丝,肯定是用过了,还tmd改过disque python的库。现在redis5的stream里有一些disque的影子。 更多streams的信息 https://redis.io/topics/streams-intro Redis5.0最近被作者突然放出来了,增加了很多新的特色功能。而Redis5.0最大的新特性就是多出了一个数据结构Stream,它是一个新的强大的支持多播的可持久化的消息队列,作者坦言Redis Stream狠狠地借鉴了Kafka的设计。 Redis Stream的结构如上图所示,它有一个消息链表,将所有加入的消息都串起来,每个消息都有一个唯一的ID和对应的内容。消息是持久化的,Redis重启后,内容还在。 每个Stream都有唯一的名称,它就是Redis的key,在我们首次使用xadd指令追加消息时自动创建。 每个Stream都可以挂多个消费组,每个消费组会有个游标last_delivered_id在Stream数组之上往前移动,表示当前消费组已经消费到哪条消息了。每个消费组都有一个Stream内唯一的名称,消费组不会自动创建,它需要单独的指令xgroup create进行创建,需要指定从Stream的某个消息ID开始消费,这个ID用来初始化last_delivered_id变量。 每个消费组(Consumer Group)的状态都是独立的,相互不受影响。也就是说同一份Stream内部的消息会被每个消费组都消费到。 同一个消费组(Consumer Group)可以挂接多个消费者(Consumer),这些消费者之间是竞争关系,任意一个消费者读取了消息都会使游标last_delivered_id往前移动。每个消费者者有一个组内唯一名称。 消费者(Consumer)内部会有个状态变量pending_ids,它记录了当前已经被客户端读取的消息,但是还没有ack。如果客户端没有ack,这个变量里面的消息ID会越来越多,一旦某个消息被ack,它就开始减少。这个pending_ids变量在Redis官方被称之为PEL,也就是Pending Entries List,这是一个很核心的数据结构,它用来确保客户端至少消费了消息一次,而不会在网络传输的中途丢失了没处理。 http://xiaorui.cc/2018/06/07/%E6%B5%85%E5%85%A5%E6%B5%85%E5%87%BAredis5-0%E7%9A%84streams%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84/ https://toutiao.io/posts/2agvp3/preview

wiloon, 8/6/2019 12:57

“浮点型”的长度是用来限制数字存储范围的. 比如 float(3,2) 只能够写入 0.00~999.99. “整型”的长度并不会限制存储的数字范围. 比如, int 和 int(3) 的存储范围都是 -2147483648 ~ 2147483647, int unsigned 和 int(3) unsigned 的存储范围都是0 ~ 4294967295. “整型”的长度实际上可以理解为”显示长度”, 如果该字段开启 “Zerofill/补零”就能很明显地知道它的作用. 参考 “高性能MySQL” 的说明 “高性能MySQL” 书中在”4.1 选择优化的数据类型”中提到: MySQL 可以为整数类型指定宽度, 例如 INT(11), 对大多数应用这是没有意义的: 它不会限制值的合法范围, 只是规定了 MySQL 的一些交互工具(例如 … Continue reading

wiloon, 8/4/2019 22:55

google pixel Announced 2016, October DISPLAY Type AMOLED capacitive touchscreen, 16M colors Resolution 1080 x 1920 pixels, 16:9 ratio (~441 ppi density) WLAN Wi-Fi 802.11 a/b/g/n/ac, dual-band, Wi-Fi Direct, DLNA, hotspot Bluetooth 4.2, A2DP, LE, aptX USB 3.0, Type-C 1.0 … Continue reading

wiloon, 8/2/2019 13:17

敏捷实践之Desk Check 开发人员在完成需求之后,快速在本地开发环境建立功能验证条件。 开发人员要做的具体工作是:需要测试数据的,建立mock data;然后对照Acceptance Criteria给团队的BA、QA展示完成的功能。这里需要注意的是,开发人员最好自己先完成一遍测试。自测能够发现一些问题,提高deskcheck的成功率,也吻合越早发现问题修复的代价越小的原理,否则不但耽误了自己的时间也耽误了BA和QA的时间。 BA的职责是:验证开发之前提出的需求是否实现,是否有跟开发人员理解不一致的地方,是否有遗漏的需求。 QA的职责是:从测试人员的视角评估这个功能有没有“ready for testing”,并且做一个快速的测试,验证是否有Sad Path没有考虑周全。 不管怎么说Desk Check还是处于developing的阶段,在这个阶段矫正一下需求,修复一些快速的defects,这样才能让功能ready进入下一个阶段:测试环境的测试。 之前一直错误地理解Desk Check是我们开发流程的一部分,是流程上的一个要求。但是结合最近项目的实践和敏捷宣言的理论,意识到Desk Check实际上是践行了宣言的第一条:个体之间的合作,而且合作比流程更重要。Desk Check同时也体现了反馈在敏捷开发中的作用,及时的反馈能够尽早的纠正工作的偏差,让我们一直向正确的方向前进。 https://www.techwalla.com/articles/what-is-desk-checking

辽ICP备14012896